- 04 Jul, 2002 6 commits
-
-
Andrew Morton authored
Having just fiddled with the refcounts of blockdev buffers, I want some way of assuring that the code is correct and is not leaking buffer_heads. There's no easy way to do this: if a blockdev page has pinned buffers then truncate_complete_page just cuts it loose and we leak memory. The patch adds a bit of debug code to catch these leaks. This code, PF_RADIX_TREE and buffer_error() need to be removed later on.
-
Andrew Morton authored
Removes ext3's open-coded inode and allocation bitmap LRUs. This patch includes a cleanup to ext3_new_block(). The local variables `bh', `bh2', `i', `j', `k' and `tmp' have been renamed to something more palatable.
-
Andrew Morton authored
Remove ext2's open-coded bitmap LRUs. Core kernel does this for it now.
-
Andrew Morton authored
ext2 and ext3 implement a custom LRU cache of buffer_heads - the eight most-recently-used inode bitmap buffers and the eight MRU block bitmap buffers. I don't like them, for a number of reasons: - The code is duplicated between filesystems - The functionality is unavailable to other filesystems - The LRU only applies to bitmap buffers. And not, say, indirects. - The LRUs are subtly dependent upon lock_super() for protection: without lock_super protection a bitmap could be evicted and freed while in use. And removing this dependence on lock_super() gets us one step on the way toward getting that semaphore out of the ext2 block allocator - it causes significant contention under some loads and should be a spinlock. - The LRUs pin 64 kbytes per mounted filesystem. Now, we could just delete those LRUs and rely on the VM to manage the memory. But that would introduce significant lock contention in __find_get_block - the blockdev mapping's private_lock and page_lock are heavily used. So this patch introduces a transparent per-CPU bh lru which is hidden inside __find_get_block(), __getblk() and __bread(). It is designed to shorten code paths and to reduce lock contention. It uses a seven-slot LRU. It achieves a 99% hit rate in `dbench 64'. It provides benefit to all filesystems. The next patches remove the open-coded LRUs from ext2 and ext3. Taken together, these patches are a code cleanup (300-400 lines gone), and they reduce lock contention. Anton tested these patches on the 32-way and demonstrated a throughput improvement of up to 15% on RAM-only dbench runs. See http://samba.org/~anton/linux/2.5.24/dbench/ Most of this benefit is from avoiding find_get_page() on the blockdev mapping. Because the generic LRU copes with indirect blocks as well as bitmaps.
-
Andrew Morton authored
Fix from Rahul Karnik and Donald Becker - some new 3c566B mini-PCI NICs refuse to power up the transceiver unless we tickle an undocumented bit in an undocumented register. They worked this out by before-and-after diffing of the register contents when it was set up by the Windows driver.
-
Andrew Morton authored
If allocation of a BIO for swap writeout fails, mark the page dirty again to save it from eviction.
-
- 20 Jun, 2002 34 commits
-
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Andi Kleen authored
The last changes did trigger another latent bug in the inline assembly. akpm noticed it because he compiles his kernels with frame pointers.
-
http://gkernel.bkbits.net/irda-2.5Linus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Jens Axboe authored
Uninline elv_next_request() and move it to elevator.c, where it belongs. Because of CURRENT declaration, this actually saves lots of space. From Andrew.
-
Robert Kuebel authored
init_rootfs() (from ramfs) doesn't appear in any header file. I didn't see any that looked like a good home, so lets put a prototype at the top of fs/namespace.c. This only use of this function is in namespace.c.
-
Robert Kuebel authored
This patch makes sure the 3c509 module license is always GPL. Currently the MODULE_LICENSE() marco is only used when CONFIG_ISAPNP or CONFIG_ISAPNP_MODULE is defined. I have moved MODULE_LICENSE() to the #ifdef MODULE section at the bottom of 3c509.c. Same is true for the MODULE_DEVICE_TABLE() macro.
-
William Lee Irwin III authored
Not sure why I forgot to do this, but here is a small bit of tidying up of some leftover parentheses from the memlist macro removal. The parentheses are just noise and should go.
-
William Lee Irwin III authored
page_alloc.c does not use either slab.h or swapctl.h. This removes the inclusion of those headers from page_alloc.c
-
William Lee Irwin III authored
nr_free_pages() is overly verbose. The following is perhaps clearer and gets to the point with fewer lines of code and inside of 80 columns.
-
William Lee Irwin III authored
-
William Lee Irwin III authored
-
Stephen Rothwell authored
14 of our 17 architectures define sys_pause exactly the same way. The other three don't define it at all. I assume glibc translates pause() into sigsuspend() or something.
-
Rusty Russell authored
In favour of those now in kernel.h..
-
Rusty Russell authored
-
James Mayer authored
-
James Mayer authored
-
James Mayer authored
-
Greg Banks authored
Three arch-determining symbols in drivers/mtd/maps/Config.in are wrong. They have apparently been generated using the sensible pattern "CONFIG_FOO" for an architecture "foo"; unfortunately the architectures are not sensible. CONFIG_SPARC should be CONFIG_SPARC32 CONFIG_I386 should be CONFIG_X86 CONFIG_SH should be CONFIG_SUPERH
-
Greg Banks authored
Removed a spurious menu definition which was both a duplicate and had no matching "endmenu".
-
Greg Banks authored
Removed an "endmenu" for which there was no opening "mainmenu_option".
-
Greg Banks authored
The config language is *not* shell. The construct "[ foo ] || [ bar ]" is legal in shell but not in the config language, where we should use the equivalent "[ foo -o bar ]"
-
Greg Banks authored
The format for the "choice" statement is: choice 'prompt' "{sub-prompt sub-symbol}*" default-value and the following is *not* legal config language (note the positioning of the closing double quote): choice 'prompt' "{sub-prompt sub-symbol}* default-value" It only happens to work because of a combination of accidental side effects of the current parsers: * unpaired sub-words inside the 2nd word are silently ignored * the missing last word is silently treated as if empty
-
Greg Banks authored
Two symbols used in drivers/net/wan/Config.in are misspelled. CONFIG_PPP_MULTLINK should be CONFIG_PPP_MULTILINK CONFIG_PPP_SYNCTTY should be CONFIG_PPP_SYNC_TTY
-
Greg Banks authored
1/2 definitions of CONFIG_PC_KEYB have trivially different banners.
-
Greg Banks authored
1/3 definitions of CONFIG_PARPORT_1284 have trivially different banners.
-
Greg Banks authored
1/2 definitions of CONFIG_NUMA have trivially different banners.
-
Greg Banks authored
1/16 definitions of CONFIG_NETDEVICES have trivially different banners.
-
Greg Banks authored
1/3 definitions of CONFIG_MODVERSIONS have trivially different banners.
-
Greg Banks authored
1/11 definitions of CONFIG_HOTPLUG have trivially different banners.
-
Greg Banks authored
2/10 definitions of CONFIG_CD_NO_IDESCSI have trivially different banners.
-
Greg Banks authored
1/3 definitions of 64-bit CONFIG_BINFMT_ELF have trivially different banners. 1/3 definitions of CONFIG_BINFMT_ELF32 have trivially different banners.
-
Greg Banks authored
1/17 definitions of CONFIG_SCSI have trivially different banners.
-
Greg Banks authored
1/14 definitions of CONFIG_SOUND have trivially different banners.
-