|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Lentsov 2:4615/71.10 28 Jun 2001 17:11:08 To : All Subject : URL: http://lwn.net/2001/0628/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 still 2.4.5. The [15]2.4.6pre6 prepatch came out on June 27, just as this page was going to "press." Sometimes we think Linus does it on purpose. In any case, this prepatch contains another set of fixes, and the resumption of merging from the "ac" patch series (which is currently at [16]2.4.5ac19). The 2.2.20 prepatch is up to [17]2.2.20pre6. 2.5 is coming soon. In [18]a message on page locking, Linus let slip the following: I don't have any objections to the patch in that case, although it does end up being a 2.5.x issue as far as I'm concerned (and don't worry, 2.5.x looks like it will open in a week or two, so we're not talking about long timeframes). That message was posted on June 21, meaning that the new development series can be expected anytime. The 2.4 kernel has had an especially long settling period - a full six months if it lasts until July 4. The kernel hackers (and others) are more than ready to have a bleeding edge to live on once again. It's certainly time. Transitioning to the new kbuild system. The approach of 2.5 has motivated the developers of the new kernel build subsystem to think about how they will effect the transition. The current plans, as last heard from Linus, call for that transition to happen somewhere around the 2.5.2 release. So it's not too soon to be wondering how it will happen. A [19]draft transition plan has been posted to the kbuild list. The developers have decided that the first step will be to replace the configuration system with CML2. That code is stable, and it appears that an important enhancement will not be implemented soon: For you CML2 Adventure fans, Eric has decided not to implement monster combat at this time. On the other hand, the dungeon walls may soon develop graffiti. The new Makefile scheme implemented by Keith Owens is just about ready, but there are a couple of loose ends yet to be taken care of. So the Makefiles will come second, as a large patch of their own. A third, cleanup patch will follow later. Of course, all this is subject to acceptance by Linus... Memory management I: the early flush patch. Linux, like most Unix-like systems (and most systems in general), does not immediately flush data written by processes to the disk. Data, instead, is cached in order to improve performance. By delaying writes, the system can fold multiple operations into a single write to the disk. Performance can also be improved by allowing writes to consecutive disk sectors to accumulate, so that they can all happen at once. In general, this approach works well. Recently, however, some developers have begun to question one aspect of write caching: how the system decides that it is time to write cached data to disk. Currently, the decision to write comes about in two ways: (1) the system needs memory for other purposes, or (2) the data has been sitting in memory for too long. Neither case is optimal, as it turns out. Using memory for cache until the system needs it for something else seems like a sensible policy, and it often is. In the real world, however, memory pressure is often associated with a high disk I/O load. So if the system waits until memory is short to write cache to disk, it ends up increasing the load on memory just when it's already at a high point. The result can be even worse memory pressure, an overheating disk, and possibly a thrashing system. Writing out cache on a regular basis (the second case, above) may or may not create I/O at a bad time. It can, however, create suboptimal behavior on laptops, or any other system where disks have been set to spin down after an idle period. Activity which generates data to write to disk has a good chance of having already caused the disk to spin up. If the actual write of the data is delayed up to 30 seconds, the spindown of the disk will be delayed accordingly. Both cases suggest that it might often make sense to write out cached data quickly, especially if the disks are not doing much at the time. Daniel Phillips has put together [20]a patch which attempts to do just that. Daniel's patches are always interesting to read, since he includes a detailed and clear description of what he is doing; this one is no exception. Essentially, the patch sets up a new polling loop within the kernel which runs every 100ms. At each poll, if the I/O backlog is small, a flush of cached data will be initiated. That flush may not write out absolutely everything; it tries to fill up the I/O queues while still leaving some slack, in case a burst of activity comes along. The patch is relatively small and simple, but it has the potential of improving performance for a number of different types of workloads. And getting data written to disk sooner doesn't hurt either. (Those who want to try out the patch should see [21]the updated version which contains a few improvements.) Memory management II: the VM requirements document. Jason McMullan recently posted [22]a rant (his word) on how work with the VM subsystem is going. According to him, people have been bashing on virtual memory without a strong idea of just what they are trying to accomplish. He would like to see a summary of the motivations behind the VM work. What if the VM were your little Tuxigachi. A little critter that lived in your computer, handling all the memory, swap, and cache management. What would be the positive and negative feedback you'd give him to tell him how well he's doing VM? The ensuing conversation remained calm, despite the fact that the VM hackers did not entirely agree with his summary of their work. Jason followed up a few days later with [23]a draft VM requirements document analyzing the constraints on memory management for a number of system types, from embedded systems to servers. In particular, he looked at caching and swapping behavior. It boils down to a few rules of thumb, including: * Do not write to slow "packeted" devices until memory is needed for processes on the system. These devices include flash memory and laptop disk drives. The purposes here are to get the best performance out of the devices, to avoid excessive wear on flash memory, and to keep laptop drives spun down as long as possible. * Keep "packeted" devices idle for as long as possible. This is an extension of the previous point; laptop disks should be kept spun down until you really need to bring them up. * Never cache reads from very fast devices. On embedded systems with flash memory, for example, reads are almost immediate, and caching them is a waste of RAM. * Keep running processes as fully in memory as possible, thus avoiding swap traffic. Idle processes, instead, can be forced out to make room. There were also a couple of points regarding cache size which were controversial and are likely to be revisited. This sort of analysis, of course, is just a first step. Turning the above items into actual strategies for the VM subsystem, and from there into code, will take some time. But it is a useful exercise in the ongoing effort to improve Linux memory management. (See also: Rik van Riel's FREENIX paper on Linux memory management, available in PDF format from [24]his lectures page). Other patches and updates released this week include: * Eric Raymond has posted [25]a proposed change to the kernel COPYING file which makes the tolerance of binary-only loadable modules explicit. * Alan Cox posted [26]a document describing how Linux uses the PC BIOS. * The FOLK patch (covered [27]last week) has [28]grown to 27 distinct patches, including JFS and Andrew Morton's low-latency patches. * James Simmons has [29]announced the creation of a secondary MIPS kernel tree, which is intended to function much like the "ac" kernel patches. * IBM has released [30]JFS 0.3.6. * Andrew Morton has posted [31]a set of ext3 patches for those wanting to use this filesystem with the 2.4 kernel. * Michael Kerrisk has created [32]updated man pages for the clone() and wait() system calls. * Andries Brouwer has released [33]util-linux-2.11g. * Jeff Garzik has proposed [34]a reorganization of the network driver hierarchy for 2.5. * Jens Axboe posted [35]a new high memory zero-bounce patch which eliminates, for now, the new DMA32 memory zone. (See also [36]the update if you're considering trying out this patch). * Jari Ruusu has [37]announced a new version of his file encryption module. * Amusement of the week: Rick Hohensee posted a message titled [38]The Joy of Forking proposing a radical fork of the Linux kernel. This branch would, among other things, drop POSIX compatibility, forget about SMP, support only x86, and feature an in-kernel interpreter. Section Editor: [39]Jonathan Corbet June 28, 2001 For other kernel news, see: * [40]Kernel traffic * [41]Kernel Newsflash * [42]Kernel Trap Other resources: * [43]Kernel Source Reference * [44]L-K mailing list FAQ * [45]Linux-MM * [46]Linux Scalability Project * [47]Kernel Newbies [48]Next: Distributions [49]Eklektix, Inc. Linux powered! Copyright Л 2001 [50]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/0628/ 4. http://lwn.net/2001/0628/security.php3 5. http://lwn.net/2001/0628/dists.php3 6. http://lwn.net/2001/0628/desktop.php3 7. http://lwn.net/2001/0628/devel.php3 8. http://lwn.net/2001/0628/commerce.php3 9. http://lwn.net/2001/0628/press.php3 10. http://lwn.net/2001/0628/announce.php3 11. http://lwn.net/2001/0628/history.php3 12. http://lwn.net/2001/0628/letters.php3 13. http://lwn.net/2001/0628/bigpage.php3 14. http://lwn.net/2001/0621/kernel.php3 15. http://lwn.net/2001/0628/a/2.4.6pre6.php3 16. http://lwn.net/2001/0628/a/2.4.5ac19.php3 17. http://lwn.net/2001/0628/a/2.2.20pre6.php3 18. http://lwn.net/2001/0628/a/2.5-coming.php3 19. http://lwn.net/2001/0628/a/kbuild-transition.php3 20. http://lwn.net/2001/0628/a/early-flush.php3 21. http://lwn.net/2001/0628/a/early-flush2.php3 22. http://lwn.net/2001/0628/a/tuxigachi.php3 23. http://lwn.net/2001/0628/a/vm-requirements.php3 24. http://www.surriel.com/lectures/ 25. http://lwn.net/2001/0628/a/esr-modules.php3 26. http://lwn.net/2001/0628/a/bios.php3 27. http://lwn.net/2001/0621/kernel.php3 28. http://lwn.net/2001/0628/a/folk-update.php3 29. http://lwn.net/2001/0628/a/mips.php3 30. http://lwn.net/2001/0628/a/jfs.php3 31. http://lwn.net/2001/0628/a/ext3.php3 32. http://lwn.net/2001/0628/a/man-clone.php3 33. http://lwn.net/2001/0628/a/util-linux.php3 34. http://lwn.net/2001/0628/a/net-driver-reorg.php3 35. http://lwn.net/2001/0628/a/zero-bounce.php3 36. http://lwn.net/2001/0628/a/zero-bounce2.php3 37. http://lwn.net/2001/0628/a/file-crypto.php3 38. http://lwn.net/2001/0628/a/joy-of-forking.php3 39. mailto:lwn@lwn.net 40. http://kt.zork.net/ 41. http://www.atnf.csiro.au/~rgooch/linux/docs/kernel-newsflash.html 42. http://www.kerneltrap.com/ 43. http://lksr.org/ 44. http://www.tux.org/lkml/ 45. http://www.linux.eu.org/Linux-MM/ 46. http://www.citi.umich.edu/projects/linux-scalability/ 47. http://www.kernelnewbies.org/ 48. http://lwn.net/2001/0628/dists.php3 49. http://www.eklektix.com/ 50. http://www.eklektix.com/ --- ifmail v.2.14.os7-aks1 * Origin: Unknown (2:4615/71.10@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/203089f4e9d76.html, оценка из 5, голосов 10
|