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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Lentsov                       2:4615/71.10   31 May 2001  17:11:37
 To : All
 Subject : URL: http://lwn.net/2001/0531/kernel.php3
 -------------------------------------------------------------------------------- 
 
    [1][LWN Logo] 
    
                                [2]Click Here 
    [LWN.net]
    
    Sections:
     [3]Main page
     [4]Security
     Kernel
     [5]Distributions
     [6]On the Desktop
     [7]Development
     [8]Commerce
     [9]Linux in the news
     [10]Announcements
     [11]Linux History
     [12]Letters
    [13]All in one big page
    
    See also: [14]last week's Kernel page.
    
 Kernel development
 
    The current kernel release is 2.4.5, which was [15]released by Linus
    on May 25, just before he boarded a plane headed for Japan. The
    details of what's in this release can be found in [16]the changelog;
    it consists almost entirely of bug fixes and cleanups.
    
    Alan Cox's current release is [17]2.4.5ac4. This patch is, as usual,
    rather larger than the Linus patch. Happily, while merging with 2.4.5,
    Alan separated out the list of patches which are unique to the "ac"
    series. There are still hundreds of them - the merging process has a
    while to go. Interesting stuff in there includes an important fix for
    a problem that causes crashes for 2.4.5 ReiserFS users, a number of
    fixes to bugs recently found by the Stanford checker (see below),
    user-mode Linux, the CMS filesystem, a version of the JFFS filesystem
    with compression, threaded core dumps and a tremendous number of bug
    fixes.
    
    Andrea Arcangeli, meanwhile, has released [18]2.4.5aa1, which contains
    a long and different set of fixes, many of which are performance
    related.
    
    The return of the Stanford checker. We first covered Dawson Engler's
    global analysis tools in the [19]March 22 LWN kernel page; thereafter,
    that group got quiet for a while. Now that final exams are presumably
    over, the checker group has resurfaced with a whole new set of bug
    reports. They include:
      * [20]Use of floating-point arithmetic, which is not allowed in
        kernel code (10 occurrences).
      * [21]Use of memory which has been freed (24 occurrences).
      * [22]Memory leaks in error returns from functions (23 occurrences).
      * [23]Use of user-space pointers that are known to be bad (10
        occurrences).
      * [24]Overly-large stack variables - the stack used for kernel code
        is quite small, and overflows can bring down the whole system (37
        occurrences).
      * [25]Failure to check for null pointers returned from routines
        which can fail (103 occurrences).
      * [26]Dereferencing of pointers known to be null (84 occurrences).
      * [27]Dereferencing user-space pointers without checking (4
        occurrences).
        
    Once again, the response from the kernel hackers has been
    [28]immediate and positive. This kind of tool can help greatly with
    the code auditing problem in general, and will certainly lead to
    higher-quality code.
    
    Unfortunately, the checker still is not generally available, though
    Mr. Engler has told us in the past that he intends to release it when
    development is complete. In the mean time, the group has [29]announced
    a web site which provides access to the bug database. Have a look for
    a view into the sorts of problems that can be found with sufficiently
    sophisticated tools.
    
    Stabilizing memory performance in 2.4. One of the remaining problem
    areas in the 2.4 kernel is its virtual memory subsystem. Not only are
    there simple performance problems, but there are also still situations
    that can cause the kernel to deadlock. Not quite what one wants to see
    in a stable series. The kernel hackers are working on dealing with
    these problems, however; with luck, VM difficulties will not be with
    us for much longer.
    
    One problem that users of recent 2.4 kernels are likely to have
    noticed is heavy use of swap space. It is not unusual for a kernel to
    be running heavily in swap even when there is not that much going on
    with the system. This problem seems to have only gotten worse with
    recent kernels. It is, of course, the same old bug where the kernel
    fails to recover swap space for pages which have been brought back
    into memory (covered in the [30]May 3 kernel page). This problem will
    get fixed, but not quite yet. Alan Cox [31]phrased it well:
    
      That is a giant size special edition stupid design flaw that is on
      the VM hackers list. But there are only a finite number of patches
      you can do in a day, and things like sucking completely came first
      I believe.
      
    Alan didn't spell out what "sucking completely" meant, but most would
    probably agree that system deadlocks could be fairly described with
    that term. Rik van Riel this week managed to stir things up a bit with
    [32]this patch which attempted to fix a couple of deadlock problems.
    
    One deadlock problem happens on high-memory systems. "High memory," in
    this context, means memory beyond that which can be directly mapped
    into the kernel's address space, and often beyond that which can be
    addressed with 32-bit pointers. High memory is useful for many things,
    but it brings with it some special problems; one such problem is the
    fact that it can not, usually, be used for I/O operations. Since most
    peripheral devices can only address 32 bits of memory, the high memory
    zone tends to be beyond their reach.
    
    That means, in turn, that any data that moves between a high memory
    page and, say, a disk drive must be copied by way of a "bounce buffer"
    in low memory. On systems with a lot of high memory and a lot of I/O,
    a large number of bounce buffers will be required. If the bounce
    buffers succeed in taking up enough low memory, buffer allocations
    will hang, and the system will no longer be able to allocate the
    memory needed to free other memory. At that point, the system locks
    up.
    
    Similar problems can happen with buffer allocations even in the
    absence of high memory, though they are more rare.
    
    Rik's patch attempts to fix these deadlocks by simply allowing certain
    memory allocation operations to fail. It is, in the end, better to
    fail an operation than lock up the system. Ben LaHaise, instead, has
    posted [33]a patch which addresses the problem through a memory
    reservation mechanism. In this scheme, a set of pages is set aside
    just for critical tasks like bounce buffer allocation. By prioritizing
    these allocations, deadlocks can hopefully be prevented.
    
    Linus, however, doesn't like any of these approaches; he [34]thinks
    they are attacking symptoms. Rather than try to deal with very
    low-memory situations, he says it is better to try to figure out how
    those situations come about in the first place. A fix can then deal
    with the original problem.
    
    That fix may be a little while in coming, still. Until then, 2.4
    virtual memory will not be all that Linux users would like it to be.
    
    The Advanced Linux Sound Architecture project has moved, to
    SourceForge, of course. Subscribers to the old ALSA lists will need to
    go to [35]the ALSA mailing lists page and sign up again. ALSA is
    getting increasingly interesting as it heads toward a stable release
    and, presumably, a bid for inclusion in the 2.5 kernel.
    
    Other patches and updates released this week include:
    
      * Marek Zelem has released a new tool called [36]e2salvage, which
        attempts to recover data from badly damaged ext2 filesystems.
      * Alexander Viro has posted [37]a new namespace patch, and is
        looking for testers.
      * [38]Version 1.1.15 of the NT filesystem patch was released by
        Anton Altaparmakov. It fixes a number of bugs, but still does not
        properly support write access.
      * IBM has released [39]version 0.3.3 of its Journaled Filesystem.
      * Eric Mouw has written [40]a guide to the /proc API.
      * A new [41]devfs patch was posted by Richard Gooch.
      * Steve Whitehouse has released [42]a zero-copy network block device
        implementation.
        
    Section Editor: [43]Jonathan Corbet
    May 31, 2001
    
    For other kernel news, see:
      * [44]Kernelnotes
      * [45]Kernel traffic
      * [46]Kernel Newsflash
      * [47]Kernel Trap
    
    Other resources:
      * [48]Kernel Source Reference
      * [49]L-K mailing list FAQ
      * [50]Linux-MM
      * [51]Linux Scalability Project
      * [52]Kernel Newbies
    
    
    
                                                   [53]Next: Distributions
    
    [54]Eklektix, Inc. Linux powered! Copyright Л 2001 [55]Eklektix, Inc.,
    all rights reserved
    Linux (R) is a registered trademark of Linus Torvalds
 
 References
 
    1. http://lwn.net/
    2. http://ads.tucows.com/click.ng/pageid=001-012-132-000-000-003-000-000-012
    3. http://lwn.net/2001/0531/
    4. http://lwn.net/2001/0531/security.php3
    5. http://lwn.net/2001/0531/dists.php3
    6. http://lwn.net/2001/0531/desktop.php3
    7. http://lwn.net/2001/0531/devel.php3
    8. http://lwn.net/2001/0531/commerce.php3
    9. http://lwn.net/2001/0531/press.php3
   10. http://lwn.net/2001/0531/announce.php3
   11. http://lwn.net/2001/0531/history.php3
   12. http://lwn.net/2001/0531/letters.php3
   13. http://lwn.net/2001/0531/bigpage.php3
   14. http://lwn.net/2001/0524/kernel.php3
   15. http://lwn.net/2001/0531/a/lt-japan.php3
   16. http://lwn.net/2001/0531/a/2.4.5.php3
   17. http://lwn.net/2001/0531/a/2.4.5ac4.php3
   18. http://lwn.net/2001/0531/a/2.4.5aa1.php3
   19. http://lwn.net/2001/0322/kernel.php3
   20. http://lwn.net/2001/0531/a/sc-fp.php3
   21. http://lwn.net/2001/0531/a/sc-use-free.php3
   22. http://lwn.net/2001/0531/a/sc-leaks.php3
   23. http://lwn.net/2001/0531/a/sc-bad-user-pointer.php3
   24. http://lwn.net/2001/0531/a/sc-stack-variables.php3
   25. http://lwn.net/2001/0531/a/sc-null-check.php3
   26. http://lwn.net/2001/0531/a/sc-null-dereference.php3
   27. http://lwn.net/2001/0531/a/sc-unchecked-user.php3
   28. http://lwn.net/2001/0531/a/ac-user-pointer.php3
   29. http://lwn.net/2001/0531/a/mc-web.php3
   30. http://lwn.net/2001/0503/kernel.php3
   31. http://lwn.net/2001/0531/a/ac-swap.php3
   32. http://lwn.net/2001/0531/a/rvr-deadlocks.php3
   33. http://lwn.net/2001/0531/a/bcrl-reservation.php3
   34. http://lwn.net/2001/0531/a/lt-deadlocks.php3
   35. http://www.alsa-project.org/mailing-lists.php3
   36. http://lwn.net/2001/0531/a/e2salvage.php3
   37. http://lwn.net/2001/0531/a/namespace.php3
   38. http://lwn.net/2001/0531/a/ntfs.php3
   39. http://lwn.net/2001/0531/a/jfs.php3
   40. http://lwn.net/2001/0531/a/procfs-guide.php3
   41. http://lwn.net/2001/0531/a/devfs.php3
   42. http://lwn.net/2001/0531/a/zerocopy-nbd.php3
   43. mailto:lwn@lwn.net
   44. http://www.kernelnotes.org/
   45. http://kt.zork.net/
   46. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html
   47. http://www.kerneltrap.com/
   48. http://lksr.org/
   49. http://www.tux.org/lkml/
   50. http://www.linux.eu.org/Linux-MM/
   51. http://www.citi.umich.edu/projects/linux-scalability/
   52. http://www.kernelnewbies.org/
   53. http://lwn.net/2001/0531/dists.php3
   54. http://www.eklektix.com/
   55. http://www.eklektix.com/
 
 --- ifmail v.2.14.os7-aks1
  * Origin: Unknown (2:4615/71.10@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 URL: http://lwn.net/2001/0531/kernel.php3   Sergey Lentsov   31 May 2001 17:11:37 
Архивное /ru.linux/20308f0cd9b71.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional