Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   21 Mar 2002  17:25:27
 To : All
 Subject : URL: http://www.lwn.net/2002/0321/kernel.php3
 -------------------------------------------------------------------------------- 
 
    [1][LWN Logo] 
    [LWN.net]
 
    Sections:
     [2]Main page
     [3]Security
     Kernel
     [4]Distributions
     [5]Development
     [6]Commerce
     [7]Linux in the news
     [8]Announcements
     [9]Letters
    [10]All in one big page
 
    See also: [11]last week's Kernel page.
 
 Kernel development
 
    The current development kernel release is 2.5.7, which was
    [12]released on March 18. This will be the last such release for a
    while, since Linus has headed off for a two-week vacation. This
    release contains some fairly big patches, including:
      * The current ACPI patch from Andrew Grover and company. ACPI did
        not work particularly well in the prepatches, but a number of the
        problems have been dealt with for the 2.5.7 final release.
      * The NAPI work by Jamal Hadi Salim, Robert Olsson, and Alexey
        Kuznetsov. NAPI changes the way the kernel handles network
        traffic, with the intent of greatly improving performance on
        high-performance systems. It was discussed on this page [13]back
        in October. (See also [14]the NAPI HOWTO document that was merged
        into the kernel source).
 
    Also included is a bunch of USB work, an ALSA update, more reworking
    of the IDE code, some NFS work (including Alexander Viro's new "nfsd"
    filesystem), the fast user-space mutex ("futexes") patch, a VLAN code
    thrashup, and no end of other fixes. It's a big patch.
 
    The latest from Dave Jones is [15]2.5.6-dj2, which adds a number of
    fixes and updates to the 2.5.7-pre2 kernel.
 
    Guillaume Boissiere updated [16]his 2.5 status summary on March 20.
 
    The current stable kernel release is 2.4.18. The current 2.4.19
    prepatch is [17]2.4.19-pre4; it includes a massive m68k update, the
    new video device code, and a great many other fixes.
 
    Alan Cox's latest 2.4.19 patch is [18]2.4.19-pre3-ac4.
 
    For those of you who aren't into all that bleeding-edge 2.4 stuff,
    David Weinehall has released [19]2.0.40-rc4 which should, with luck,
    turn into a real 2.0.40 soon.
 
    Note that other kernel tree announcements now appear with the rest of
    the patches at the bottom of the page.
 
    Kernel compilation benchmark update. When we last checked in with the
    fast-kernel-compile benchmark crowd (in [20]last week's LWN Kernel
    Page) they had managed to get a kernel compilation down to just over
    10 seconds. The record has fallen, however: Anton Blanchard has
    [21]announced that he was able, through use of a 32-way PowerPC64
    system, to build the benchmark kernel in 7.52 seconds. "...not a bad
    result for something running under a hypervisor."
 
    Watch for sub-second kernel compilations, coming soon to a
    million-dollar machine near you...
 
    The obligatory BitKeeper update. Marcelo Tosatti has [22]announced
    that he is now using BitKeeper to manage the 2.4 code. See [23]this
    note for information on how to access his tree.
 
    "Discussions" of BitKeeper's licensing continue, not helped by [24]the
    discovery of a temporary file race vulnerability in the BitKeeper
    installer. Readers of this page are more than familiar with the
    licensing arguments, though; we'll not repeat them this time.
 
    Reworking the 2.4 VM patches. The word on the net for some time has
    been that the 2.4.x virtual memory subsystem almost works as it
    should; all that remains is to incorporate the last set of patches
    from Andrea Arcangeli. 2.4 maintainer Marcelo Tosatti has not yet
    integrated those patches, however; he has wanted to see them split up
    and documented so that he actually understands what he is putting in.
    This seems like a not unreasonable approach for a stable kernel
    maintainer to take. Thus far, however, Andrea has not found the time
    to rework his patches as requested, so they remain unapplied.
 
    Andrew Morton has [25]decided to try to break this logjam by reworking
    the patch and splitting it up into a form suitable for submission to
    Marcelo. Andrew has, in consultation with Linus, annotated the patches
    and made his own changes (including leaving a few patches out
    entirely). The result is an interesting view into what still needs to
    be fixed with the 2.4 virtual memory implementation; it's worth a
    detailed look.
 
    Andrea's 10_vm-32 patch was split into 24 individual pieces. Andrew
    has dropped eight of those, leaving 16 patches for consideration:
      * [26]aa-020-sync_buffers changes the way throttling of memory
        allocators is done. Throttling is done to slow down tasks to the
        point where the disk can keep up with their memory activity; this
        patch can cause memory allocators to wait until disk I/O initiated
        elsewhere in the system (as well as I/O they initiate themselves)
        has completed.
      * [27]aa-030-writeout_scheduling improves how the "bdflush" kernel
        thread flushes dirty buffers to disk. Rather than try to write out
        every dirty buffer in the system in a single run, bdflush now
        stops partway through. The VM is also made less likely to block
        writing processes while their dirty buffers are flushed to disk;
        more of that work is now done asynchronously in bdflush. "This
        code works well. Fixes the problem where copying a large file
        between two disks only exercises one disk at a time."
      * [28]aa-093-vm_tunables add some knobs for run-time tweaking of VM
        performance. They consist of a set of ratios controlling just how
        much scanning will be done at any given time, and how much memory
        should be put to different uses.
      * [29]aa-096-swap_out is, according to Andrew, "probably the most
        important patch." It includes much more aggressive shrinking of
        kernel caches when memory is tight, and a tweak which keeps the
        system from repeatedly trying to swap things out when it isn't
        working. This patch also gets rid of the "out-of-memory killer,"
        taking the approach of simply failing memory allocations instead.
        The "init" task gets some special protection; its memory
        allocations will succeed, by spinning and waiting for memory if
        need be.
      * [30]aa-100-local_pages deals with an interesting fairness issue: a
        process may go off freeing memory to satisfy an allocation, only
        to find that, when it's done, other processes have stolen all the
        pages it freed. Andrea's code kept a whole list of freed pages
        that the freeing process could use first; Andrew has simplified it
        to only set aside a single page.
      * [31]aa-110-zone_accounting increases the resolution of the
        system's memory accounting, and changes the locking rules as well.
      * Small tweaks. A number of the patches perform relatively simple
        housekeeping or other such tasks; these include
        [32]aa-010-show_stack, [33]aa-040-touch_buffer,
        [34]aa-120-try_to_free_pages_nozone, [35]aa-140-misc_junk,
        [36]aa-150-read_write_tweaks, [37]aa-160-lru_release_check,
        [38]aa-170-drain_cpu_caches, [39]aa-180-activate_page_cleanup,
        [40]aa-190-block_flushpage_check, and
        [41]aa-200-active_page_swapout.
 
    Together, these patches represent a great deal of work by both Andrea
    and Andrew. With luck, they'll find their way into a better VM in the
    near future.
 
    Exit sections and monolithic kernels. The kernel has had, for some
    time, the ability to mark functions and data with an "exit" flag. The
    traditional use for this marker is to flag functions which are used at
    module unload time. Modules need cleanup functions so that they can be
    gracefully removed from the kernel. When those modules are linked
    statically into the kernel, however, they will never be removed. In
    this case, functions and data marked with the "exit" flag are simply
    discarded, making the kernel image smaller.
 
    It's a worthwhile optimization. Anybody who has tried building a
    kernel with a modern binutils distribution, however, will have
    experienced the annoying, useless "undefined reference to `local
    symbols in discarded section .text.exit'" message that accompanies a
    failed link. The problem is simple: the kernel has numerous pointers
    to exit functions and data. Usually a human can determine that, in
    cases where the exit section has been discarded, those pointers will
    never be used; they are thus harmless. The linker doesn't see things
    that way, though, and newer versions refuse to complete the link when
    dangling exit pointers exist.
 
    The workaround has been to define a devexit_p macro which causes exit
    pointers to disappear in non-modular code. It's a bit of a hack, but
    it gets the job done. The devexit_p calls have been slowly working
    their way into the kernel code.
 
    But now Linus has [42]come up with a different approach. Rather than
    discard all that exit code, why not keep it in the kernel and use it
    to gracefully shut down the hardware at system shutdown time? The code
    is there, one might as well make use of it, even if the kernel gets a
    bit bigger. devexit_p's days in the kernel may be numbered.
 
    Other patches and updates released this week include:
 
    Alternate kernel trees:
      * Andrea Arcangeli's [43]2.4.19-pre3-aa2 includes the VM-32 patch
        and a number of performance-oriented fixes.
      * Joerg Prante has released [44]2.4.19-pre3-jp8, which adds a large
        set of patches to 2.4.19-pre3.
 
    Core kernel code:
      * Hubertus Franke has posted [45]a well documented patch which
        speeds up assignment of new process IDs.
      * Neil Schemenauer has released [46]capwrap, a kernel module
        allowing an administrator to run executables with specific
        (restricted) capabilities.
      * [47]Version 12h of Rik van Riel's reverse mapping VM code is
        available.
 
    Development tools:
      * [48]ksymoops 2.4.5 was released by Keith Owens.
      * Karim Yaghmour has [49]released version 0.9.5pre6 of the Linux
        Trace Toolkit.
 
    Device drivers
      * David Miller has [50]released the eighth beta of the new Tigon3
        driver.
      * Joerg Prante has [51]posted instructions for backporting the 2.5
        ALSA code to 2.4 kernels.
 
    Kernel building:
      * Roman Zippel has [52]announced a new kernel configuration
        mechanism. It is designed to be simpler and faster than CML2. See
        [53]the followup posting for the latest version. "So far I hadn't
        very much feedback. What's up? Is everyone suddenly completely
        happy with cml2? Now is your chance to evaluate the alternatives
        or does this require too much work before you can start flaming?"
 
    Miscellaneous:
      * Paul Mackerras has released [54]a fix for the zlib vulnerability
        which fixes all three (!) versions of zlib in the 2.4 kernel.
        (Note that 2.5, which has only one zlib implementation, is not
        vulnerabile).
      * The [55]2002_03_14 Linux security module patch was posted by Chris
        Wright.
      * Riley Williams has [56]announced that he is once again able to
        sell Linux kernel archive CDs.
      * Here's the latest [57]maintainers file from Denis Vlasenko.
      * [58]Kernel Traffic issue 158 is available.
 
    Networking:
      * Jean Tourrilhes has [59]released a version of the new wireless
        driver API for the 2.4 kernel series.
      * This week's Affix BlueTooth stack release from Dmitry Kasatkin is
        [60]version 0_96.
      * The Netfilter team has released [61]iptables 1.2.6.
 
    Section Editor: [62]Jonathan Corbet
    March 21, 2002
 
    For other kernel news, see:
      * [63]Kernel traffic
      * [64]Kernel Newsflash
      * [65]Kernel Trap
      * [66]Linux 2.5.x Porting help
      * [67]2.5 Status
    
    Other resources:
      * [68]Kernel Source Reference
      * [69]L-K mailing list FAQ
      * [70]Linux-MM
      * [71]Linux Scalability Effort
      * [72]Kernel Newbies
      * [73]Linux Device Drivers
    
    
 
                                                   [74]Next: Distributions
 
    [75]Eklektix, Inc. Linux powered! Copyright Л 2002 [76]Eklektix, Inc.,
    all rights reserved
    Linux (R) is a registered trademark of Linus Torvalds
 
 References
 
    1. http://lwn.net/
    2. http://lwn.net/2002/0321/
    3. http://lwn.net/2002/0321/security.php3
    4. http://lwn.net/2002/0321/dists.php3
    5. http://lwn.net/2002/0321/devel.php3
    6. http://lwn.net/2002/0321/commerce.php3
    7. http://lwn.net/2002/0321/press.php3
    8. http://lwn.net/2002/0321/announce.php3
    9. http://lwn.net/2002/0321/letters.php3
   10. http://lwn.net/2002/0321/bigpage.php3
   11. http://lwn.net/2002/0314/kernel.php3
   12. http://lwn.net/2002/0321/a/2.5.7.php3
   13. http://lwn.net/2001/1004/kernel.php3
   14. http://lwn.net/2002/0321/a/napi-howto.php3
   15. http://lwn.net/2002/0321/a/2.5.6-dj2.php3
   16. http://lwn.net/2002/0321/a/2.5-status.php3
   17. http://lwn.net/2002/0321/a/2.4.19-pre4.php3
   18. http://lwn.net/2002/0321/a/2.4.19-pre3-ac4.php3
   19. http://lwn.net/2002/0321/a/2.0.40-rc4.php3
   20. http://lwn.net/2002/0314/kernel.php3
   21. http://lwn.net/2002/0321/a/7.5-second-compile.php3
   22. http://lwn.net/2002/0321/a/mt-bk.php3
   23. http://lwn.net/2002/0321/a/2.4-bk-tree.php3
   24. http://lwn.net/2002/0321/a/bk-tmpfile.php3
   25. http://lwn.net/2002/0321/a/aa-vm-splitup.php3
   26. http://lwn.net/2002/0321/a/aa-020-sync_buffers.php3
   27. http://lwn.net/2002/0321/a/aa-030-writeout_scheduling.php3
   28. http://lwn.net/2002/0321/a/aa-093-vm_tunables.php3
   29. http://lwn.net/2002/0321/a/aa-096-swap_out.php3
   30. http://lwn.net/2002/0321/a/aa-100-local_pages.php3
   31. http://lwn.net/2002/0321/a/aa-110-zone_accounting.php3
   32. http://lwn.net/2002/0321/a/aa-010-show_stack.php3
   33. http://lwn.net/2002/0321/a/aa-040-touch_buffer.php3
   34. http://lwn.net/2002/0321/a/aa-120-try_to_free_pages_nozone.php3
   35. http://lwn.net/2002/0321/a/aa-140-misc_junk.php3
   36. http://lwn.net/2002/0321/a/aa-150-read_write_tweaks.php3
   37. http://lwn.net/2002/0321/a/aa-160-lru_release_check.php3
   38. http://lwn.net/2002/0321/a/aa-170-drain_cpu_caches.php3
   39. http://lwn.net/2002/0321/a/aa-180-activate_page_cleanup.php3
   40. http://lwn.net/2002/0321/a/aa-190-block_flushpage_check.php3
   41. http://lwn.net/2002/0321/a/aa-200-active_page_swapout.php3
   42. http://lwn.net/2002/0321/a/lt-exit.php3
   43. http://lwn.net/2002/0321/a/2.4.19-pre3-aa2.php3
   44. http://lwn.net/2002/0321/a/2.4.19-pre3-jp8.php3
   45. http://lwn.net/2002/0321/a/getpid.php3
   46. http://lwn.net/2002/0321/a/capwrap.php3
   47. http://lwn.net/2002/0321/a/rmap.php3
   48. http://lwn.net/2002/0321/a/ksymoops.php3
   49. http://lwn.net/2002/0321/a/ltt.php3
   50. http://lwn.net/2002/0321/a/tigon.php3
   51. http://lwn.net/2002/0321/a/alsa-backport.php3
   52. http://lwn.net/2002/0321/a/lc.php3
   53. http://lwn.net/2002/0321/a/lc2.php3
   54. http://lwn.net/2002/0321/a/zlib-fix.php3
   55. http://lwn.net/2002/0321/a/lsm.php3
   56. http://lwn.net/2002/0321/a/kernel-archive-cds.php3
   57. http://lwn.net/2002/0321/a/maintainers.php3
   58. http://kt.zork.net/kernel-traffic/kt20020318_158.html
   59. http://lwn.net/2002/0321/a/wireless-api.php3
   60. http://lwn.net/2002/0321/a/affix.php3
   61. http://lwn.net/2002/0321/a/iptables.php3
   62. mailto:lwn@lwn.net
   63. http://kt.zork.net/
   64. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
   65. http://www.kerneltrap.com/
   66. http://www.osdl.org/archive/rddunlap/linux-port-25x.html
   67. http://kernelnewbies.org/status/
   68. http://lksr.org/
   69. http://www.tux.org/lkml/
   70. http://www.linux.eu.org/Linux-MM/
   71. http://lse.sourceforge.net/
   72. http://www.kernelnewbies.org/
   73. http://www.xml.com/ldd/chapter/book/index.html
   74. http://lwn.net/2002/0321/dists.php3
   75. http://www.eklektix.com/
   76. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2002/0321/kernel.php3   Sergey Lentsov   21 Mar 2002 17:25:27 
Архивное /ru.linux/19861fb2d666e.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional