|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/19861fb2d666e.html, оценка из 5, голосов 10
|