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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   03 Mar 2002  15:39:31
 To : All
 Subject : URL: http://www.lwn.net/2002/0221/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.5, which was
    [12]released on February 20. It incorporates a fair number of changes
    since the last prepatch, including a bunch of ALSA fixes, more VFS
    work from Al Viro, a number of USB updates, some big NFS server fixes,
    and the first (small) bit of merging from Rik van Riel's virtual
    memory work.
 
    The latest patch from Dave Jones is [13]2.5.4-dj3; it is caught up to
    2.4.18-rc2 and 2.5.5-pre1, and adds a number of small fixes as well.
 
    The current stable kernel release is 2.4.17. The 2.4.18 release is
    getting closer; Marcelo released [14]the second release candidate on
    February 18.
 
    Alan Cox's latest patch is [15]2.4.18-rc2-ac1; it adds version 12f of
    the reverse mapping VM, an address space accounting system, IBM's JFS
    journaling filesystem, and a number of fixes.
 
    Other recent 2.4-based kernel trees include [16]2.4.18-rc1-shawn6 from
    Shawn Starr (adding rmap, the new IDE code, and the XFS filesystem),
    and Michael Cohen's [17]2.4.18-pre9-mjc2, which adds no end of stuff.
 
    For the 2.0 users out there, David Weinehall has released
    [18]2.0.40-rc3, which adds one fix to the previous release candidates.
 
    The beginnings of the rmap merge. Rik van Riel's reverse mapping
    virtual memory implementation was examined on this page [19]one month
    ago. As of this writing, that patch is still only available for 2.4
    kernels; that is a situation that Rik plans to fix soon. Meanwhile,
    some small parts of the patch have begun to find their way into the
    2.5 series.
 
    [20]The patch that Linus included in 2.5.5 is the part that reduces
    the size of the page structure. The kernel maintains one such
    structure for every physical page in the system, so its size matters.
    The patch submitted by Rik (containing mostly work by William Lee
    Irwin and Christoph Hellwig) shrinks struct page with a hashed page
    wait queue scheme, the merging of a couple of fields, and the removal
    of the virtual pointer on systems that do not need it.
 
    The hashed wait queue code was discussed with the rest of the rmap
    patch back in January. Of course, now that it is in the kernel,
    William Lee Irwin has come out with [21]a new version based on
    "operator-sparse Fibonacci hashing." William posted [22]a brief
    explanation (with [23]an important correction) on how it works:
 
      In my own opinion, this stuff borders on numerology, but it seems
      to be a convenient supply of hash functions that pass chi^2 tests
      on the bucket distributions, so I sort of tolerate it
 
    The removal of the virtual pointer is a different sort of
    optimization. That pointer holds the virtual address (in kernel space)
    for the physical page. It is needed on systems with high memory since
    that memory, by definition, does not have a static kernel-space
    mapping. Most systems, however, do not have high memory. For low
    memory, the kernel virtual address of a page is easily calculated, so
    a dedicated virtual is wasted. Thus its removal.
 
    This patch does not go near the core of the rmap VM, of course, but it
    is a step in that direction. Rik [24]does plan to start submitting the
    rest for inclusion before too long - once he has a working 2.5 kernel
    on his system again.
 
    The shared page table patch by Daniel Phillips has also been
    [25]covered on this page. Several versions of this patch have been
    released over the last week (here's [26]the latest announcement). The
    patch has some distinct advantages: memory is saved through the
    sharing of page tables, and the fork() system call can happen in as
    little as 1/5 the time.
 
    On the other hand, sharing page tables seems to bring in no end of
    complicated locking problems, especially when pages are being swapped
    out. [27]As Linus puts it:
 
      The only problem is swapout. And "swapout()" is always a problem,
      in fact. It's always been special, because it is quite
      fundamentally the only VM operation that ever is "nonlocal". We've
      had tons of races with swapout over time, it's always been the
      nastiest VM operation by _far_ when it comes to page table
      coherency.
 
    This problems will get worked out, but it won't be surprising if the
    shared page table patch doesn't get into the kernel right away.
 
    The net gods are not entirely without mercy. To understand this, one
    need only look at the unpleasant CML2 flamewar on linux-kernel, which
    was brought to a none-too-soon end when the mailing list went down.
    This fight begins to look like the interminable devfs battle, which
    only ended (sort of) when Linus included devfs into the 2.3
    development series. Many of the points in the most recent fight (i.e.
    use of Python) have been seen before, and we stopped reporting on them
    a while back. There were a couple of interesting arguments that came
    out this time around, though, that are worth a look. They strike at
    the core of how kernel development is done.
 
    It all started with [28]this note from Eric Raymond on the kbuild
    list. Dirk Hohndel, says Eric, was going to "have a chat with Linus"
    about the new kbuild scheme and Eric's new CML2 configuration
    subsystem. Eric, of course, is frustrated that CML2 has not yet been
    integrated into the 2.5 kernel, and he was hoping that Dirk's talk
    with Linus could help make things happen.
 
    The reaction to this move was fierce - it was perceived as an effort
    to circumvent the normal linux-kernel peer review and pressure Linus
    directly. Herein lies one of the interesting questions: just what are
    the appropriate ways of trying to get a patch into the kernel? It is
    not uncommon to try to push Linus; for example, Andre Hedrick's
    transparent efforts to get users to complain about the IDE patch gave
    the appearance (at least) of being highly effective. It's not clear if
    the problem was accepting Dirk's offer to talk to Linus, looking for
    feedback on the kbuild list (rather than linux-kernel), or something
    else.
 
    Then, there are those who criticize the CML2 work because it is a
    single, large patch. The kernel way of doing things, it is said, is to
    evolve the code in small, simple steps that everybody can scrutinize
    and see are correct. See, for example, [29]Alexander Viro's posting on
    the subject. Mr. Viro does practice what he preaches, having massively
    reworked the virtual filesystem layer through hundreds of small
    patches.
 
    But must all kernel development be done in baby steps? It's hard to
    imagine introducing ALSA in tiny pieces. Andrea Arcangeli's VM rewrite
    went in as one big chunk - in a stable series at that. Netfilter was
    not introduced as a set of incremental patches. CML2 represents a
    change in both configuration and implementation languages; how does
    one make that kind of change gradually? The evolutionary approach to
    development clearly makes sense much of the time, and it may yet be
    the best way to fixing the configuration subsystem. But there are
    times when exceptions need to be made.
 
    Some people criticize Eric's code for changing the way configuration
    is done - their claim is that the first version of CML2 to be
    integrated should make no user-visible changes. Others complain that
    Eric has failed to implement desired changes, such as the splitting of
    global configuration information into smaller, local files. Satisfying
    both camps is bound to be hard (thus Eric has encountered [30]the
    violence inherent in the system). This is a case where small patches
    help: each step can be considered on its own merits and has fewer
    problems with conflicting goals. Still, nobody insisted that the first
    ALSA patch look exactly like the old OSS drivers.
 
    Eric's case is also hurt by the fact that a number of people seem to
    not like him for one reason or other. His presentation of himself as a
    "hacker of social systems" while he is having such trouble with the
    kernel development social system doesn't help. And the simple fact is
    that most people who work with kernel code configure and build kernels
    every day and don't have a great deal of trouble with the process.
    There is a real technical discussion of CML2 and its merits going on,
    and some version may yet get into the 2.5 kernel tree. But the path to
    that conclusion does not seem entirely clear now.
 
    Other patches and updates released this week include:
 
    Core kernel code:
      * Michael Sinz has posted [31]a patch allowing control over the
        placement and naming of core dump files.
 
    Development tools:
      * The Linux Test Project has [32]announced a mailing list for the
        discussion of test results.
      * Rusty Russell has [33]set up a "trivial patch monkey" - an address
        where small patches may be sent. He will make a reasonable effort
        to get patches sent there included into the kernel.
      * A tool for the logging of preemption events has been [34]announced
        by Nigel Gamble.
      * A port of the dynamic probes debugging tool to the S/390 was
        [35]announced by S Vamsikrishna.
 
    Device drivers
      * A set of patches implementing a new video device API has been
        [36]released by Gerd Knorr.
      * [37]EVMS 0.9.1, a beta release of the enterprise volume management
        system, has been announced by Kevin Corry.
      * Doug Gilbert has [38]released version 1.58 of the SCSI debug
        driver.
      * Richard Gooch has released [39]devfsd-v1.3.24.
      * Jaroslav Kysela has [40]announced the ALSA 0.9.0beta11 release.
        This patch is also incorporated into 2.5.5.
 
    Filesystems:
      * Alexander Viro has [41]pointed out that the 2.5.5 kernel has [42]a
        new document on porting filesystems to 2.5. "It WILL be kept
        up-to-date. IOW, submit an API change that may require filesystem
        changes without a corresponding patch to that file and I will hunt
        you down and hurt you. Badly."
      * Britt Park has [43]released version 0.4 of the UVFS user-space
        filesystem kit.
      * Release 1.0.15 of the IBM journaling filesystem was [44]announced
        by Steve Best.
      * Heinz J. Mauelshagen has [45]announced version 1.0.3 of the
        logical volume manager system.
      * Randy Dunlap has updated his [46]Linux filesystems internals
        documentation page.
 
    Kernel building:
      * Eric Raymond has [47]announced CML2 2.3.0.
 
    Miscellaneous:
    [48][packet handling] 
      * Here is [49]the latest maintainers file from Denis Vlasenko.
      * For those who would like an overview of how the kernel handles
        network packets: Mathieu Lafon has [50]made a diagram describing
        the major steps.
 
    Networking:
      * [51]Version 0.92 of the affix BlueTooth stack has been announced
        by Dmitry Kasatkin.
      * Mike Phillips has [52]announced the availability of a 3c359 token
        ring adaptor driver.
 
    Section Editor: [53]Jonathan Corbet
    February 21, 2002
 
    For other kernel news, see:
      * [54]Kernel traffic
      * [55]Kernel Newsflash
      * [56]Kernel Trap
      * [57]Linux 2.5.x Porting help
      * [58]2.5 Status
    
    Other resources:
      * [59]Kernel Source Reference
      * [60]L-K mailing list FAQ
      * [61]Linux-MM
      * [62]Linux Scalability Effort
      * [63]Kernel Newbies
      * [64]Linux Device Drivers
    
    
 
                                                   [65]Next: Distributions
 
    [66]Eklektix, Inc. Linux powered! Copyright Л 2002 [67]Eklektix, Inc.,
    all rights reserved
    Linux (R) is a registered trademark of Linus Torvalds
 
 References
 
    1. http://lwn.net/
    2. http://lwn.net/2002/0221/
    3. http://lwn.net/2002/0221/security.php3
    4. http://lwn.net/2002/0221/dists.php3
    5. http://lwn.net/2002/0221/devel.php3
    6. http://lwn.net/2002/0221/commerce.php3
    7. http://lwn.net/2002/0221/press.php3
    8. http://lwn.net/2002/0221/announce.php3
    9. http://lwn.net/2002/0221/letters.php3
   10. http://lwn.net/2002/0221/bigpage.php3
   11. http://lwn.net/2002/0214/kernel.php3
   12. http://lwn.net/2002/0221/a/2.5.5.php3
   13. http://lwn.net/2002/0221/a/2.5.4-dj3.php3
   14. http://lwn.net/2002/0221/a/2.4.18-rc2.php3
   15. http://lwn.net/2002/0221/a/2.4.18-rc2-ac1.php3
   16. http://lwn.net/2002/0221/a/2.4.18-rc1-shawn6.php3
   17. http://lwn.net/2002/0221/a/2.4.18-pre9-mjc2.php3
   18. http://lwn.net/2002/0221/a/2.0.40-rc3.php3
   19. http://lwn.net/2002/0124/kernel.php3
   20. http://lwn.net/2002/0221/a/struct-page-shrinkage.php3
   21. http://lwn.net/2002/0221/a/fibonacci-hashing.php3
   22. http://lwn.net/2002/0221/a/fibonacci-hashing-expl.php3
   23. http://lwn.net/2002/0221/a/fibonacci-hashing-expl2.php3
   24. http://lwn.net/2002/0221/a/rmap-future.php3
   25. http://lwn.net/2002/0131/kernel.php3
   26. http://lwn.net/2002/0221/a/shared-pt.php3
   27. http://lwn.net/2002/0221/a/lt-swapout.php3
   28. http://lwn.net/2002/0221/a/the-beginning.php3
   29. http://lwn.net/2002/0221/a/evolution.php3
   30. http://lwn.net/2002/0221/a/violence.php3
   31. http://lwn.net/2002/0221/a/coredump.php3
   32. http://lwn.net/2002/0221/a/ltp-list.php3
   33. http://lwn.net/2002/0221/a/trivial-monkey.php3
   34. http://lwn.net/2002/0221/a/preemption-logging.php3
   35. http://lwn.net/2002/0221/a/dprobes-s390.php3
   36. http://lwn.net/2002/0221/a/videodev.php3
   37. http://lwn.net/2002/0221/a/evms.php3
   38. http://lwn.net/2002/0221/a/scsi-debug.php3
   39. http://lwn.net/2002/0221/a/devfsd.php3
   40. http://lwn.net/2002/0221/a/alsa.php3
   41. http://lwn.net/2002/0221/a/vfs-documentation.php3
   42. http://lwn.net/2002/0221/a/porting.php3
   43. http://lwn.net/2002/0221/a/uvfs.php3
   44. http://lwn.net/2002/0221/a/jfs.php3
   45. http://lwn.net/2002/0221/a/lvm.php3
   46. http://www.osdl.org/archive/rddunlap/linux-fs.html
   47. http://lwn.net/2002/0221/a/cml2.php3
   48. http://open-source.arkoon.net/kernel/kernel_net.png
   49. http://lwn.net/2002/0221/a/maintainers.php3
   50. http://lwn.net/2002/0221/a/kernel-net.php3
   51. http://lwn.net/2002/0221/a/affix.php3
   52. http://lwn.net/2002/0221/a/3c359.php3
   53. mailto:lwn@lwn.net
   54. http://kt.zork.net/
   55. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
   56. http://www.kerneltrap.com/
   57. http://www.osdl.org/archive/rddunlap/linux-port-25x.html
   58. http://kernelnewbies.org/status/
   59. http://lksr.org/
   60. http://www.tux.org/lkml/
   61. http://www.linux.eu.org/Linux-MM/
   62. http://lse.sourceforge.net/
   63. http://www.kernelnewbies.org/
   64. http://www.xml.com/ldd/chapter/book/index.html
   65. http://lwn.net/2002/0221/dists.php3
   66. http://www.eklektix.com/
   67. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 URL: http://www.lwn.net/2002/0221/kernel.php3   Sergey Lentsov   03 Mar 2002 15:39:31 
Архивное /ru.linux/1986186078b59.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional