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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   01 Feb 2002  14:56:27
 To : All
 Subject : URL: http://www.lwn.net/2002/0131/kernel.php3
 -------------------------------------------------------------------------------- 
 
    [1][LWN Logo] [No ads right now]
    [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.3, which was released on
    January 30 ([12]changelog). The biggest change in the more recent
    prepatches has been the split of the massive (> 1MB) Configure.help
    file into multiple, smaller files spread out over the source tree.
    This change will make those files easier to maintain (it is hoped); in
    the mean time, however, it has broken a number of the configuration
    tools. Other changes include a large ReiserFS update and the inclusion
    of Nathan Scott's extended attribute patch, which paves the way for
    access control lists and other useful stuff in the future.
 
    Dave Jones's latest is [13]2.5.2-dj7, which is caught up to 2.5.3-pre6
    and 2.4.18-pre7. It adds a number of small fixes, and, of course, the
    input layer changes (which require some configuration changes - see
    [14]last week's LWN kernel page).
 
    Guillaume Boissiere's [15]2.5 status summary has been updated to
    reflect the current and near-future state of affairs.
 
    The current stable kernel release is still 2.4.17; Marcelo has not
    released any new prepatches over the last week. Alan Cox has released
    [16]2.4.18-pre7-ac1, which he describes as "a standing still release;"
    it mostly just catches up to the -pre7 prepatch.
 
    For those with more modest hardware, SnapGear has [17]announced the
    release of a new uClinux kernel based on 2.4.17. Your processor may
    not have a memory management unit, but now you can run things like
    ext3 anyway.
 
    Alternate kernel tree of the week: Marcus Grando has announced
    [18]2.4.18-pre7-mg1, which adds the reverse mapping VM patch and some
    netfilter fixes to the 2.4.18 prepatch.
 
    ACPI followup. Andy Grover, Linux ACPI developer, [19]took exception
    with the discussion of ACPI, and its problems, in [20]last week's LWN
    kernel page. His note challenges the complaints that have been made
    against ACPI, and states:
 
      My hope is, the more people gain familiarity of Linux's ACPI code
      by testing and helping in its development, the more we all can
      accept it on its merits, and start improving Linux's PnP and power
      management by using the improved functionality ACPI provides.
 
    His note is worth a read. The simple fact is that ACPI is in our
    future, whether we like it or not, and we will have to deal with it.
    The concerns remain, however, and those will have to be dealt with
    too.
 
    The patch penguin debate. This discussion has been covered widely,
    from [21]News.com to [22]Slashdot, so we'll try to go over the main
    points without getting too far into the depths of it.
 
    It all started, of course, with [23]Rob Landley's 'modest proposal'
    calling for a "patch penguin" to help Linus manage patches from
    developers.
 
      Okay everybody, this is getting rediculous. Patches FROM
      MAINTAINERS are getting dropped on the floor on a regular basis.
      This is burning out maintainers and is increasing the number of
      different kernel trees (not yet a major fork, but a lot of cracks
      and fragmentation are showing under the stress). Linus needs an
      integration lieutenant, and he needs one NOW.
 
    Rob points out that there have been unofficial "patch penguins" in the
    past. Alan Cox filled that role through much of the 2.3 and 2.4
    series, and Dave Jones is doing it in 2.5. In general, the "ac" or
    "dj" trees have indeed served as a useful staging area for patches on
    their way to Linus; Rob claims that there should be one such tree with
    some sort of official blessing from Linus.
 
    The complaints are echoed by a number of developers who feel that
    their patches have been ignored for too long. Alan Cox goes far enough
    to [24]suggest that Linus could find himself replaced: "Think gcc,
    think egcs. History is merely beginning to repeat itself."
 
    Linus, for his part, [25]feels that there is no real problem in how
    kernel development works. Adding a patch penguin would not help, since
    said penguin would scale no better than Linus does. The solution to
    dropped patches is to route them through the appropriate maintainers:
 
      In short: don't try to come up with a "patch penguin". Instead try
      to help existing maintainers, or maybe help grow new ones. THAT is
      the way to scalability.
 
    A number of high-profile kernel developers seem to agree with Linus
    that the system still works.
 
    That is the core of the dispute. The more interesting part, perhaps,
    is what changes might result from the discussion. It appears that
    there might actually be a few:
      * Part of the problem seems to be a misunderstanding of Linus's view
        of a "maintainer." Linus sees "maintainers" as the 10-20 people he
        trusts to send him good patches - far short of the full list in
        the kernel maintainers file. He has, however, never spelled out
        just who the trusted people are, so there is confusion about where
        patches should really be sent. Linus did [26]post a partial list
        of developers with "good taste," but it seems incomplete.
        One necessary result, if the existing system is to continue to
        work, will be a clearer definition of the protocol for getting
        patches to Linus. The "trusted" people, and their areas of
        expertise, need to be made explicit.
      * The issue of small patches was recognized, [27]even by Linus, as a
        problem. Linus tends to lack the time to look over the large
        number of "one-liner" fixes that get sent in. But these fixes tend
        to be important, and should not get dropped. So Linus agrees that
        there may be a place for a "small stuff" patch penguin. Again,
        Alan Cox has served in that capacity in the past, and Dave Jones
        is doing it now.
        The addition of a bug-tracking system, and somebody to keep up
        with it, could only help as well.
      * Linus may actually start using a system to help with patch
        management - most likely BitKeeper. BitKeeper and its possible use
        in kernel development was first covered in LWN [28]back in 1999;
        its adoption has been hindered by a lack of time on Linus's part,
        and its not-quite-free license. BitKeeper has some seriously nice
        features, though, and a number of kernel developers are using it
        for their own work. There are reasons to believe that it could be
        quite helpful in the management of kernel patches.
        Linus has never taken the time to get good at BitKeeper, but that
        may change. In one message he [29]promised "to use bk exclusively
        for two months" if he gets one more feature added.
      * There is a resurgence in interest in online systems ("patchbots")
        that will help with the submission of patches. Two new development
        efforts have sprung up to try to develop such systems; the nascent
        projects can be found [30]here and [31]here.
 
    Much of the coverage of this discussion has portrayed it as a major
    rift among kernel developers, with ominous overtones of an impending
    "fork" of the kernel project. The truth of the matter is that no
    large, collaborative project can continue to function without
    occasionally taking a look at how its processes work. Kernel
    development is certainly not without its challenges; with luck, this
    discussion will help bring about changes that will keep the kernel
    project sustainable into the future.
 
    rmap, fork, and COW. Last week's discussion of the reverse mapping VM
    patch omitted a couple of important things that are worth a mention.
    First and easiest is the fact that the hashed page wait queues
    discussed as part of the rmap patch were actually implemented by
    William Lee Irwin. Credit where credit is due.
 
    The discussion of the costs of the rmap patch concentrated on memory
    use, but (as Daniel Phillips pointed out) we overlooked one other
    important factor. When a child process is created with the fork()
    system call, one task that must be performed is the copying of the
    parent's page tables. When the rmap patch is applied, fork() must also
    copy all of the reverse mapping entries. The computational cost of
    this copying is not small; with rmap, the time required for a fork
    increases by a factor between 10% (for small applications) up to 400%
    for something large. A fast fork() implementation is important for
    overall system performance; a 400% increase is likely to be seen as
    unacceptible.
 
    There is a fix in the works, however, as [32]described by Daniel
    Phillips: copy-on-write page tables. The COW idea has the potential to
    speed up fork() with or without rmap; it can also lead the way to
    other interesting page table optimizations in the future.
 
    Under the COW scheme, a call to fork() does not result in the copying
    of the parent process's page tables. Instead, the tables are marked
    read-only, and their reference count is increased. Both processes then
    go off and execute with the (now shared) page tables. When either
    process makes a write access, it will be trapped with a page fault. At
    that point, the kernel copies the relevant page table (as well as the
    page being written to) and decreases its reference count. The process,
    which now has its own page table, is then allowed to continue with its
    write operation.
 
    Forks become very fast, since page tables are no longer copied at that
    time. If a process eventually accesses much of its memory, those
    copies will happen, but they will be more evenly spread out over the
    life of the process. The usual pattern, however, is for a fork() call
    to be quickly followed by an exec() call, which wipes out the page
    tables entirely. In this case, the overhead of copying most of the
    page tables is avoided altogether.
 
    So COW page tables are a win even in the absence of the rmap patch,
    and a bigger win when reverse mapping is used. The patch (which has
    not yet been released) is perhaps even more significant, however, in
    that it creates the first structure in the Linux kernel for the
    sharing of page tables. Linux processes can share mappings of memory
    or files (i.e. shared libraries), but they each have their own page
    tables for that shared memory. Private page tables are easier to
    manage, but there are some inefficiencies that result.
 
    Example: most Linux processes have a shared mapping of the C library
    which occupies just over 1MB of address space (on the author's Debian
    'sid' system). This mapping requires almost 300 page table entries (on
    an i386 system) for every process - and all of them live in
    unswappable kernel memory. KDE and GNOME applications tend to have
    many such library mappings, many of which are substantially larger.
    There would be a real performance advantage in being able to share the
    page tables for these mappings. The initial COW patch will probably
    not include support for sharing page tables in this manner, but it is
    a step in the right direction.
 
    Much of this is speculative, however, until the COW page table patch
    is posted and benchmarked. If it works as expected, and frees the rmap
    patch of its fork() penalty, the whole mess may well make its way into
    the 2.5 series. As [33]Linus told Rik van Riel:
 
      You may not believe me when I say so, but I personally _really_
      hope your rmap patches will work out. I may not have believed in
      your patches in a 2.4.x kind of timeframe, but for 2.6.x I'm more
      optimistic.
 
    If we're really lucky, the 2.6 (or, perhaps, 3.0?) kernel will have a
    top-quality VM implementation before it's released.
 
    Asynchronous I/O patch writup. Writing up Ben LaHaise's asynchronous
    I/O patch has been on the "todo" list for this page for some time. It
    is an interesting patch; it provides capabilities that some users seem
    to really need, but it also makes some fundamental changes to the I/O
    subsystem. We may still take a shot at the AIO patch, but, for now,
    Suparna Bhattacharya has [34]beat us to it. Have a look for a
    thorough, detailed look at the patch and the reasons for it existence.
 
    Other patches and updates. This section has gotten steadily longer
    over the years; we're experimenting a bit with its formatting in an
    attempt to make it more readable.
 
    Core kernel code:
      * The latest preemptive kernel patch is [35]available from Robert
        Love.
      * A new software suspend patch for 2.4.17 was [36]posted by Pavel
        Machek.
      * Rusty Russell has [37]updated his per-cpu data patch for
        2.5.3-pre6.
      * William Lee Irwin's hashed page waitqueue patch has been
        [38]ported to 2.5.3-pre6 by Christoph Hellwig.
      * Momchil Velikov has [39]posted a version of his radix tree page
        cache patch for inclusion into 2.5.3.
 
    Development tools:
      * Karim Yaghmour has [40]released version 0.9.5pre5 of the Linux
        Trace Toolkit.
      * Jim Houston has [41]posted a patch which adds a kernel trace
        mechanism to the kdb debugger.
 
    Device drivers
      * Greg Kroah-Hartman has [42]posted a driverfs implementation for
        the USB core code. Greg has also updated [43]the USB 2.5 TODO
        list.
      * Andrew Morton has [44]released a patch which enables DMA transfers
        of audio data from CDROM drives. (Here's [45]the latest version
        for those who want to apply the patch).
      * Richard Gooch has posted [46]a new version of his patch which
        enables a 2.4.18-pre system to handle up to 2080 SCSI disks.
      * Also from Richard are [47]devfs-v199.9 (for 2.4.18-pre7) and
        [48]devfs-v208 (for 2.5.3-pre6).
      * Jaroslav Kysela has [49]released a set of documentation for the
        ALSA library API.
 
    Filesystems:
      * [50]LVM 1.0.2 was announced by Heinz J. Mauelshagen.
      * For the more daring, there is [51]a complete reimplementation of
        LVM (called "device mapper") available from Sistina. This is the
        beta device mapper release, and the developers are looking for
        feedback.
      * [52]UVFS 0.2, a user-space filesystem kit, was announced by Britt
        Park.
      * Steve Best has [53]announced version 1.0.13 of the JFS journaling
        filesystem.
      * Christoph Hellwig has [54]announced version 0.0.92 of the OpenGFS
        filesystem.
 
    Kernel building:
      * Justin Piszcz has sent us [55]a detailed description of his
        "Install Kernel" utility, which helps with kernel builds and
        installation.
      * Anuradha Ratnaweera has released [56]version 0.1.2 of the
        kernelconf utility. "Don't use it unless you are really
        adventurous."
      * [57]CML2 2.2.0 is available from Eric Raymond.
      * Eric W. Biederman has posted [58]a patch which enables the
        building of a bootable, ELF-formatted kernel. Such a kernel is
        useful for booting directly from Linux, for network booting, or
        for use with LinuxBIOS.
 
    Miscellaneous:
      * [59]Kernel Traffic for January 28 is available.
 
    Networking:
      * Dmitry Kasatkin has [60]announced version 0_9pre10 of the Affix
        BlueTooth stack.
      * An [61]updated wireless extensions patch was announced by Jean
        Tourrilhes.
 
    Section Editor: [62]Jonathan Corbet
    January 31, 2002
 
    For other kernel news, see:
      * [63]Kernel traffic
      * [64]Kernel Newsflash
      * [65]Kernel Trap
      * [66]Linux 2.5.x Porting help
    
    Other resources:
      * [67]Kernel Source Reference
      * [68]L-K mailing list FAQ
      * [69]Linux-MM
      * [70]Linux Scalability Effort
      * [71]Kernel Newbies
      * [72]Linux Device Drivers
    
    
 
                                                   [73]Next: Distributions
 
    [74]Eklektix, Inc. Linux powered! Copyright Л 2002 [75]Eklektix, Inc.,
    all rights reserved
    Linux (R) is a registered trademark of Linus Torvalds
 
 References
 
    1. http://lwn.net/
    2. http://lwn.net/2002/0131/
    3. http://lwn.net/2002/0131/security.php3
    4. http://lwn.net/2002/0131/dists.php3
    5. http://lwn.net/2002/0131/devel.php3
    6. http://lwn.net/2002/0131/commerce.php3
    7. http://lwn.net/2002/0131/press.php3
    8. http://lwn.net/2002/0131/announce.php3
    9. http://lwn.net/2002/0131/letters.php3
   10. http://lwn.net/2002/0131/bigpage.php3
   11. http://lwn.net/2002/0124/kernel.php3
   12. http://lwn.net/2002/0131/a/2.5.3.php3
   13. http://lwn.net/2002/0131/a/2.5.2-dj7.php3
   14. http://lwn.net/2002/0124/kernel.php3
   15. http://lwn.net/2002/0131/a/2.5-status.php3
   16. http://lwn.net/2002/0131/a/2.4.18-pre7-ac1.php3
   17. http://lwn.net/2002/0131/a/snapgear.php3
   18. http://lwn.net/2002/0131/a/2.4.18-pre7-mg1.php3
   19. http://lwn.net/2002/0131/a/acpi.php3
   20. http://lwn.net/2002/0124/kernel.php3
   21. http://news.com.com/2100-1001-826093.html
   22. http://slashdot.org/article.pl?sid=02/01/29/1322238&mode=thread
   23. http://lwn.net/2002/0131/a/patch-penguin.php3
   24. http://lwn.net/2002/0131/a/history-repeats.php3
   25. http://lwn.net/2002/0131/a/lt-no-problem.php3
   26. http://lwn.net/2002/0131/a/lt-trust.php3
   27. http://lwn.net/2002/0131/a/small-stuff.php3
   28. http://lwn.net/1999/features/BitKeeper.php3
   29. http://lwn.net/2002/0131/a/lt-bitkeeper.php3
   30. http://killeri.net/cgi-bin/alias/ezmlm-cgi
   31. http://sourceforge.net/projects/lk-pms/
   32. http://lwn.net/2002/0131/a/cow-pt.php3
   33. http://lwn.net/2002/0131/a/lt-rmap.php3
   34. http://lse.sourceforge.net/io/aionotes.txt
   35. http://lwn.net/2002/0131/a/preemptive-kernel.php3
   36. http://lwn.net/2002/0131/a/swsusp.php3
   37. http://lwn.net/2002/0131/a/per-cpu.php3
   38. http://lwn.net/2002/0131/a/hashed-page-waitqueues.php3
   39. http://lwn.net/2002/0131/a/radix-tree-pagecache.php3
   40. http://lwn.net/2002/0131/a/ltt.php3
   41. http://lwn.net/2002/0131/a/kdb-trace.php3
   42. http://lwn.net/2002/0131/a/usb-driverfs.php3
   43. http://www.linux-usb.org/2.5_todo.php
   44. http://lwn.net/2002/0131/a/cd-audio-dma.php3
   45. http://lwn.net/2002/0131/a/cd-audio-dma2.php3
   46. http://lwn.net/2002/0131/a/sd-many.php3
   47. http://lwn.net/2002/0131/a/devfs-v199.9.php3
   48. http://lwn.net/2002/0131/a/devfs-v208.php3
   49. http://lwn.net/2002/0131/a/alsa-lib.php3
   50. http://lwn.net/2002/0131/a/lvm.php3
   51. http://lwn.net/2002/0131/a/lvm2.php3
   52. http://lwn.net/2002/0131/a/uvfs.php3
   53. http://lwn.net/2002/0131/a/jfs.php3
   54. http://lwn.net/2002/0131/a/opengfs.php3
   55. http://lwn.net/2002/0131/a/ik.php3
   56. http://lwn.net/2002/0131/a/kernelconf.php3
   57. http://lwn.net/2002/0131/a/cml2.php3
   58. http://lwn.net/2002/0131/a/elf-kernel.php3
   59. http://kt.zork.net/kernel-traffic/kt20020128_152.html
   60. http://lwn.net/2002/0131/a/affix.php3
   61. http://lwn.net/2002/0131/a/wireless-api.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://lksr.org/
   68. http://www.tux.org/lkml/
   69. http://www.linux.eu.org/Linux-MM/
   70. http://lse.sourceforge.net/
   71. http://www.kernelnewbies.org/
   72. http://www.xml.com/ldd/chapter/book/index.html
   73. http://lwn.net/2002/0131/dists.php3
   74. http://www.eklektix.com/
   75. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2002/0131/kernel.php3   Sergey Lentsov   01 Feb 2002 14:56:27 
Архивное /ru.linux/19861ce8b1011.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional