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