- 04 Feb, 2003 29 commits
-
-
Andrew Morton authored
Truncates can take a very long time. Especially if there is a lot of writeout happening, because truncate must wait on in-progress I/O. And sys_unlink() is performing that truncate while holding the parent directory's i_sem. This basically shuts down new accesses to the entire directory until the synchronous I/O completes. In the testing I've been doing, that directory is /tmp, and this hurts. So change sys_unlink() to perform the actual truncate outside i_sem. When there is a continuous streaming write to the same disk, this patch reduces the time for `make -j4 bzImage' from 370 seconds to 220.
-
Andrew Morton authored
When a throttled writer is performing writeback, and it encounters an inode which is already under writeback it is forced to wait on the inode. So that process sleeps until whoever is writing it out finishes the writeout. Which is OK - we want to throttle that process, and another process is currently pumping data at the disk anyway. But in one situations the delays are excessive. If one process is performing a huge linear write, other processes end up waiting for a very long time indeed. It appears that this is because the writing process just keeps on hogging the CPU, returning to userspace, generating more dirty data, writing it out, sleeping in get_request_wait, etc. All other throttled dirtiers get starved. So just remove the wait altogether if it is just a memory-cleansing writeout. The calling process will then throttle in balance_dirty_pages()'s call to blk_congestion_wait().
-
Andrew Morton authored
We do not need to pass the `wait' argument down to __sync_single_inode(). That information is now present at wbc->sync_mode.
-
Andrew Morton authored
- Fix dead comment in load_elf_interp() (Dave Airlie) - Add some (hard-won) commentary around the early SET_PERSONALITY() in load_elf_binary(). - Remove dead hugetlb prototype. - Fix some silliness in hugetlbpage.c
-
Andrew Morton authored
Patch from Pavel Machek <pavel@ucw.cz> scsi_eh_* needs to run even during suspend because suspend does not prevent a hard disk from reporting an error.
-
Andrew Morton authored
Patch from miles@lsi.nec.co.jp (Miles Bader) Otherwise it won't compile. I guesss this used to work because <asm/page.h> was included somewhere to get the BUG macros, but now with the advent of <asm/bug.h> that's changed.
-
Andrew Morton authored
Patch from john stultz <johnstul@us.ibm.com> Adds some lost-tick compensation code, which handles the case where time accounting goes wrong due to interrupts being disabled for longer than two ticks. This patch solves the problem by checking when an interrupt occurs if timer->get_offset() is a value greater then 2 ticks. If so, it increments jiffies appropriately. I was concerned that we'd be better off finding and fixing the misbehaving drivers, but it turns out that the main culprits are system management cards over which the kernel has no control. However John has added some debug code which will drop a backtrace on the first five occurrences which will allow us to find-and-fix bad drivers if overruns _are_ due to Linux software. (I disabled this - it was irritating me. Dave Hansen has a patch which allows it to be turned on via a kernel boot parameter, like the x86_64 equiv).
-
Andrew Morton authored
Patch from "Randy.Dunlap" <rddunlap@osdl.org> This fixes a few #warning's that gcc 2.96 complains about having unmatched single-quote marks. (warnings on #warnings)
-
Andrew Morton authored
Patch from Russell King <rmk@arm.linux.org.uk> Have a couple of extra warnings: fs/binfmt_elf.c: In function `create_elf_tables': fs/binfmt_elf.c:239: warning: initialization makes integer from pointer without a cast fs/binfmt_elf.c:249: warning: initialization makes integer from pointer without a cast #ifndef elf_addr_t #define elf_addr_t unsigned long #endif elf_addr_t *argv, *envp; __put_user(NULL, argv); __put_user(NULL, envp); It would therefore appear that x86 __put_user is not properly type-checking the arguments to __put_user(). Here's a patch which fixes the warning (but doesn't fix x86's type-check challenged __put_user implementation).
-
Andrew Morton authored
Patch from Matthew Dobson <colpatch@us.ibm.com> When I originally wrote the patches implementing the in-kernel topology macros, they were meant to be called as a second layer of functions, sans underbars. This additional layer was deemed unnecessary and summarily dropped. As such, carrying around (and typing!) all these extra underbars is quite pointless. Here's a patch to nip this in the (sorta) bud. The macros only appear in 16 files so far, most of them being the definitions themselves.
-
Andrew Morton authored
Patch from Dave Olien <dmo@osdl.org> The following patch implements retry on media errors for the DAC960 driver. On such media errors, the DAC960 apparently doesn't report how much of the transfer may have been successful before the error was encountered. This type of error should be rare on healthy hardware, especially if the disks are stripped or mirrored. But, when large transfers are submitted to the controller, it's especially bad to have to fail the entire transfer because one disk sector may have been bad.
-
Andrew Morton authored
Patch from William Lee Irwin III <wli@holomorphy.com> CONFIG_X86_NUMA no longer exists. This changes the MAX_IO_APICS definition to 32, where it is required to be so large on NUMA-Q in order to boot.
-
Andrew Morton authored
Patch from William Lee Irwin III <wli@holomorphy.com> will_become_orphaned_pgrp()'s sole use is is_orphaned_pgrp(). Fold its body into is_orphaned_pgrp(), rename __will_become_orphaned_pgrp(), and adjust callers. Code shrinkage plus some relief from underscore-itis.
-
Andrew Morton authored
From Anton Blanchard: remove spaces from slab cache identifiers. Simplifies parsing of /proc/slabinfo.
-
Andrew Morton authored
Patch from William Lee Irwin III <wli@holomorphy.com> Okay, this one looks ugly because we're missing some of the definitions available with which to convert to inline functions (esp. struct page). A lot of these introduce temporaries and sort of hope names won't clash, which might be important to whoever cares about -Wshadow. - node_end_pfn() evaluates nid twice - local_mapnr() evaluates kvaddr twice - kern_addr_valid() evaluates kaddr twice - pfn_to_page() evaluates pfn multiple times - page_to_pfn() evaluates page thrice - pfn_valid() doesn't parenthesize its argument
-
Andrew Morton authored
Patch from "Stephen D. Smalley" <sds@epoch.ncsc.mil> This patch restores the LSM hook calls in sendfile to 2.5.59. The hook was previously added as of 2.5.29 but the hook calls in sendfile were subsequently lost as a result of the sendfile rewrite as of 2.5.30.
-
Andrew Morton authored
Patch from: Joel Becker <Joel.Becker@oracle.com> This kernel module will detect long durations when jiffies has failed to increment, and will reboot the machine in response. Joel says: "Here's why Oracle wants such a thing. We run clusters. Imagine a two node cluster. Node1 pauses completely for some reason. There are multiple reasons this can happen. A bad driver can udelay() for 90 seconds (qla used to do this). zVM on S/390 can page Linux out for minutes at a time. Anything that causes the box to freeze. Jiffies does *not* count during this, so when Node1 returns it feels that no time has passed. Node2, however, has been counting time. When Node1 goes away, the Oracle cluster manager starts looking for it. After a timeout, it gives up. It then recovers any in-progress transactions from Node1. After that, it starts new operations, modifying the data in ways that Node1 has no idea about (it's still out to lunch). When Node1 finally returns (udelay() ends, zVM pages it in, whatever), any I/O that it has queued or is about to queue will get sent to the disk. Oops, you've just corrupted your shared data. hangcheck-timer should catch this and reboot the box. This is why Oracle wants this driver. We figure that such functionality would be beneficial to others as well, so we posted to l-k. We'd all hope that driver writers don't udelay() for 90s, but S/390 with zVM is still around. Some folks might want to notice when it happens. I am sure other things exist that trigger the same symptoms."
-
Andrew Morton authored
Lots of nonsensical locking in there.
-
Andrew Morton authored
Patch from Manfred Spraul <manfred@colorfullife.com> When slab debugging is enabled we're holding off interrupts for too long (more than a jiffy), so reduce the alloc/free batching size when slab debug is enabled.
-
Andrew Morton authored
From wli A moment's reflection on the subject suggests to me it's worthwhile to generalize pgd_ctor support so it works (without #ifdefs!) on both PAE and non-PAE. This tiny tweak is actually more noticeably beneficial on non-PAE systems but only really because pgd_alloc() is more visible; the most likely reason it's less visible on PAE is "other overhead". It looks particularly nice since it removes more code than it adds. Touch tested on NUMA-Q (PAE). OFTC #kn testers testing the non-PAE case.
-
Andrew Morton authored
From Bill Irwin This allocates pgd's and pmd's using the slab and slab ctors. It has a benefit beyond preconstruction in that PAE pmd's are accounted via /proc/slabinfo Profiling of kernel builds by Martin Bligh shows a 30-40% drop in CPU load due to pgd_alloc()'s page clearing activity. But this was already a tiny fraction of the overall CPU time.
-
Andrew Morton authored
Patch From: Hugh Dickins <hugh@veritas.com> Recently noticed that __GFP_HIGHIO has played no real part since bounce buffering was converted to mempool in 2.5.12: so this patch (over 2.5.58-mm1) removes it and GFP_NOHIGHIO and SLAB_NOHIGHIO. Also removes GFP_KSWAPD, in 2.5 same as GFP_KERNEL; leaves GFP_USER, which can be a useful comment, even though in 2.5 same as GFP_KERNEL. One anomaly needs comment: strictly, if there's no __GFP_HIGHIO, then GFP_NOHIGHIO translates to GFP_NOFS; but GFP_NOFS looks wrong in the block layer, and if you follow them down, you find that GFP_NOFS and GFP_NOIO behave the same way in mempool_alloc - so I've used the less surprising GFP_NOIO to replace GFP_NOHIGHIO.
-
Andrew Morton authored
Patch from Nikita Danilov <Nikita@Namesys.COM> read_cache_pages() is passed a bunch of pages to start I/O against and it is supposed to consume all those pages. But if there is an I/O error, someone need to throw away the unused pages. At present the single user of read_cache_pages() (nfs_readpages) does that cleanup by hand. But it should be done in the core kernel.
-
Andrew Morton authored
- Don't require a 160-col xterm - Coding style consistency
-
Andrew Morton authored
Implements merging of file-backed VMA's. Based on Andrea's 2.4 patch. It's only done for mmap(). mprotect() and mremap() still will not merge VMA's. It works for hugetlbfs mappings also.
-
Andrew Morton authored
pagecache can be reclaimed via the page LRU and via prune_icache. We currently don't know how much reclaim is happening via each. The patch adds instrumentation to display the number of pages which were freed via prune_icache. This is displayed in /proc/vmstat:pginodesteal and /proc/vmstat:kswapd_inodesteal. Turns out that under some workloads (well, dbench at least), fully half of page reclaim is via the unused inode list. Which seems quite OK to me.
-
Andrew Morton authored
A static function in a header where presumably a static inline was intended.
-
Andrew Morton authored
An implementation of posix_fadvise64(). It adds 368 bytes to my vmlinux and is worth it. I didn't bother doing posix_fadvise(), as userspace can implement that by calling fadvise64(). The main reason for wanting this syscall is to provide userspace with the ability to explicitly shoot down pagecache when streaming large files. This is what O_STEAMING does, only posix_fadvise() is standards-based, and harder to use. posix_fadvise() also subsumes sys_readahead(). POSIX_FADV_WILLNEED will generally provide asynchronous readahead semantics for small amounts of I/O. As long as things like indirect blocks are aready in core. POSIX_FADV_RANDOM gives unprivileged applications a way of disabling readahead on a per-fd basis, which may provide some benefit for super-seeky access patterns such as databases. The POSIX_FADV_* values are already implemented in glibc, and this patch ensures that they are in sync. A test app (fadvise.c) is available in ext3 CVS. See http://www.zip.com.au/~akpm/linux/ext3/ for CVS details. Ulrich has reviewed this patch (thanks).
-
Nathan Laredo authored
-
- 03 Feb, 2003 11 commits
-
-
http://jfs.bkbits.net/linux-2.5Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Kai Germaschewski authored
One of the goals of the whole new modversions implementation: export-objs is gone for good!
-
Dave Kleikamp authored
into shaggy.austin.ibm.com:/shaggy/bk/jfs-2.5
-
Kai Germaschewski authored
o Build modules with CONFIG_MODVERSIONS when just saying "make" o Ignore generated *.ver.c files o Fix a typo (Sam Ravnborg) o Fix another typo (Paul Marinceu)
-
Kai Germaschewski authored
into tp1.ruhr-uni-bochum.de:/scratch/kai/kernel/v2.5/linux-2.5.make
-
Kai Germaschewski authored
-
Rusty Russell authored
Skip over the first part of __vermagic in modversioning is on: otherwise you'll have to force it when changing from 2.6.0 to 2.6.1.
-
Rusty Russell authored
Fix the case where no CRCs are supplied (OK, but taints kernel), and only print one tainted message (otherwise --force gives hundreds of them).
-
Kai Germaschewski authored
We generated the intermediate files that contain checksums for unresolved symbols in .tmp_versions, which had the disadvantage that is obscured what's going on during the build. Just generate them as .ver.[co] right next to the actual objects in the object tree.
-
Kai Germaschewski authored
CONFIG_MODVERSIONING was a temporary name introduced to distinguish between the old and new module version implementation. Since the traces of the old implementation are now gone from the build system, we rename the config option back in order to not confuse users more than necessary in 2.6. Also, remove some historic modversions cruft throughout the tree.
-
bk://linux.bkbits.net/linux-2.5Dave Kleikamp authored
into hostme.bitkeeper.com:/ua/repos/j/jfs/linux-2.5
-