- 19 Jan, 2004 40 commits
-
-
Andrew Morton authored
From: Con Kolivas <kernel@kolivas.org> A non-critical corner case has come up for interactivity that I believe needs to be addressed. It is only extensive testing and examination that revealed this, as this interactivity work is in maintenance mode. Description: It is possible for a highly interactive task (like X) to cause large latencies in tasks that are less 'niced' (eg negative nice number compared to X which should normally run at nice 0) if they are fully cpu bound. This occurs due to expiration of the cpu bound tasks. This patch addresses this by not reinserting interactive tasks into the active array if there is a better static priority task running but has been placed on the expired array. This causes a substantial reduction in the maximum scheduling latency a task with a less nice value can have. This also has the positive side effect of maintaining better cpu% proportions for tasks of different nice levels. Testers will only be able to discern a difference with highly cpu bound tasks of normal scheduling policy at different nice levels. Test cases are doing something cpu intensive relatively -niced in the presence of an interactive load (eg capturing and encoding video at nice -10 while using X nice 0, or something nice 0 vs nice +10) and so on. Because of the crossover of 10 'nice' levels of dynamic priorities between interactive and cpu bound tasks this patch will have a more noticable effect as the nice difference is greater, especially 11 or more.
-
Andrew Morton authored
From: Manfred Spraul <manfred@colorfullife.com> fasync_helper and kill_fasync are helpers for managing F_SETFL fcntl calls that change FASYNC and sending the necessary signals. The locking uses one global rwlock that's acquired for read in all kill_fasync calls, and that causes cache line trashing. This is not necessary: if the fasync list is empty, then there is no need to acquire the rwlock. Tests with reaim on a 4-way pIII on STP showed an 80% reduction of the time within kill_fasync.
-
Andrew Morton authored
From: Davide Libenzi <davidel@xmailserver.org> CONFIG_EPOLL=n space reduction in struct file.
-
Andrew Morton authored
From: Bram Stolk <bram@sara.nl> All modes that exceed the native resolution of a flatpanel are discarded. However, a CRT has native resolution set to 0, and therefore, tridentfb.c cannot be used with a CRT.
-
Andrew Morton authored
From: Andres Salomon <dilinger@voxel.net> Remove calls to CardServices(); final. This removes the CardServices() calls the rest of the tree, as well as CardServices itself from cs.c and cs.h. My previous patches, along w/ Arjan's patch for ide-cs.c and Russell's patch for serial_cs.c should remove all traces of it. I've attached a gzipped tarball to hopefully make things easier. Files touched: = 201-cs_remove.patch:+++ mod/sound/pcmcia/vx/vx_entry.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/bluecard_cs.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/bt3c_cs.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/btuart_cs.c 202-cs_remove.patch:+++ mod/drivers/bluetooth/dtl1_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hardware/avm/avm_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hisax/avma1_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hisax/elsa_cs.c 203-cs_remove.patch:+++ mod/drivers/isdn/hisax/sedlbauer_cs.c 204-cs_remove.patch:+++ mod/drivers/parport/parport_cs.c 205-cs_remove.patch:+++ mod/drivers/telephony/ixj_pcmcia.c 206-cs_remove.patch:+++ mod/drivers/mtd/maps/pcmciamtd.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/aha152x_stub.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/fdomain_stub.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.c 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/nsp_cs.h 207-cs_remove.patch:+++ mod/drivers/scsi/pcmcia/qlogic_stub.c 208-cs_remove.patch:+++ mod/drivers/char/pcmcia/synclink_cs.c 209-cs_remove.patch:+++ mod/drivers/pcmcia/cs.c 209-cs_remove.patch:+++ mod/include/pcmcia/cs.h
-
Andrew Morton authored
From: Andres Salomon <dilinger@voxel.net> Anyways, this removes the last of the CS calls.
-
Andrew Morton authored
From: Russell King <rmk@arm.linux.org.uk>
-
Andrew Morton authored
From: Russell King <rmk+lkml@arm.linux.org.uk> Ok, this is the last patch for removal of CardServices()
-
Andrew Morton authored
From: Andres Salomon <dilinger@voxel.net> This wraps up drivers/net/wireless. Still remaining: - sound/pcmcia/vx - drivers/{bluetooth,isdn,parport,telephony} - drivers/mtd/maps - drivers/scsi/pcmcia - drivers/char/pcmcia/synclink_cs.c
-
Andrew Morton authored
From: Arjan van de Ven <arjanv@redhat.com>
-
Andrew Morton authored
From: Andres Salomon <dilinger@voxel.net> Replace the various CardServices() calls w/ their pcmcia_* function. The pcmcia functions fit better with kernel conventions, and don't have the nasty var args stuff. These patches also fix a few places where the args supplied to CardServices were either not supplied, or dealt with in non-obvious ways.
-
Andrew Morton authored
From: Rik van Riel <riel@surriel.com> In 2.6.0 both __alloc_pages() and the corresponding wakeup_kswapd()s walk all zones in the zone list, possibly spanning multiple nodes in a low numa factor system like AMD64. Also, if lower_zone_protection is set in /proc, then it may be possible that kswapd never cleans out data in zones further down the zonelist and try_to_free_pages needs to do that. However, in 2.6.0 try_to_free_pages() only frees pages in the pgdat the first zone in the zonelist belongs to. This is probably the wrong behaviour, since both the page allocator and the kswapd wakeup free things from all zones on the zonelist. The following patch makes try_to_free_pages() consistent with the allocator, by passing the zonelist as an argument and freeing pages from all zones in the list. I do not have any numa systems myself, so I have only tested it on my own little smp box. Testing on NUMA systems may be useful, though the patch really only should have an impact in those rare cases where kswapd can't keep up with allocations... As a side effect, the patch shrinks the kernel by 2 lines and replaces some subtle magic by a simpler array walk.
-
Andrew Morton authored
From: Paul Mackerras <paulus@samba.org> Since there are serial drivers (particularly the USB serial driver) that call the line discipline receive_buf and write_wakeup routines at hard interrupt level, I have changed the ppp_async code to cope with that. It now uses a tasklet so that it calls the generic PPP code at soft interrupt level even if its receive_buf and write_wakeup entries are called at hard interrupt level. This patch has been lightly tested here with a keyspan USB serial adaptor and also with the built-in modem on my tibook, which uses the pmac_zilog driver (which hooks into the drivers/serial infrastructure).
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> Update the ATAPI MO support code to reflect the reorganisations and cleanups which the Mt Ranier support patch added. DESC cdrom_open fix EDESC From: Jens Axboe <axboe@suse.de>
-
Andrew Morton authored
From: Jens Axboe <axboe@suse.de> Following patch adds mt rainier support to the cdrom uniform layer (it works with atapi and scsi/usb).
-
Andrew Morton authored
From: Pascal Schmidt <der.eremit@email.de> The below patch is needed to support ATAPI MO drives in 2.6. ide-scsi doesn't work any more for this, so ide-cd has to take over the job of running the MO drive. Without this, there is no way to write to an ATAPI MO drive. This patch has been discussed with Linus and Jens already around test9 time and it was agreed this is the right way to go about it. I have rediffed it against 2.6.0. Compiles, runs, works just fine for me.
-
Andrew Morton authored
From: Mike Christie <michaelc@cs.wisc.edu> DM, MD, rd and loop use blk_alloc_queue and blk_queue_make_request to initialize their queue, because they only use the make_request_fn. The attached patch prevents the queue from being registered if only blk_alloc_queue was called.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> It's complaining about: #define per_cpu(var, cpu) ((void)cpu, per_cpu__##var) There are several ways of fixing this, but the simplest is: #define per_cpu(var, cpu) (*((void)cpu, &per_cpu__##var))
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> PPC32: Minor cleanups to IBM4xx and MPC82xx headers. - Make sure that if <asm/ibm4xx.h> is included on !40x && !440, there is no real effect. - Delete arch/ppc/platforms/mpc82xx.h - Make sure that if CONFIG_8260 isn't set, there is no effect in <asm/mpc8260.h>. - Add a __ASSEMBLY__ test around the extern for __res in <asm/mpc8260.h>.
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> PPC32: Select arch/ppc/kernel/head.S on CONFIG_PPC_STD_MMU. - Don't pick a head*.S by default, instead select head.S on CONFIG_PPC_STD_MMU. This is more consistent with how we case things in this file.
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> PPC32: Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c - Change all EXPORT_SYMBOL_NOVERS to EXPORT_SYMBOL in ppc_ksyms.c
-
Andrew Morton authored
From: Tom Rini <trini@kernel.crashing.org> We must export the consistent_sync_page symbol. It is used by inline functions which implement the PCI DMA API.
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au> The big regression from deadline is tiobench random reads with TCQ disks, however it is present in -linus as well, and would have been since day 1 of AS, but nobody has complained too loudly. http://developer.osdl.org/judith/tiobench/4CPU/rr.html This problem is probably a distilation of what causes lower database throughput, because I have only ever seen it with TCQ drives, and pgbench and OraSim are actually getting higher throughput here with a non TCQ drive. That is not to say that TCQ is useless, it obviously can provide a very real and significant boost. What I might do in the (near) future is get AS to detect TCQ and turn itself off indefinitely unless/until the a sysfs flag is set, and default that flag to off. This patch changes the AS tunables a bit to be more on par with deadline. It lowers the threshold for random reading processes to be considered unsuitable for anticipation, and it slightly rearranges and comments the "cooperative seek distance" logic. With this patch, AS is now very competitive with deadline on the single IDE and SCSI (non TCQ) disks here. In fact, I don't have any regressions anywhere. Even when TCQ is on, although throughput can be lower, AS still has benefits because of its much better read vs write latency and general tendancy to keep number of outstanding tags smaller.
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au> Sometimes a processes thinktime shouldn't be measured on how soon it submits its next request, but how soon any close request is submitted. Some processes, such as those in make -j, find | xargs blah, etc. Should be waited upon even if they never submit another request, because they work with cooperating or child processes. This helps to take that into account.
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au> This one gathers better statistics about the new process problem. It improves estimation for initial process IO. That is, better calculations for whether it will be worth waiting after a process submits its first read. This is done with a per queue average thinktime and seek time for a second read submitted from a process. When combined with 3/3, numbers are around the same as mm1 for most long lived tasks, but much better for things like the top 4 benchmarks. Probably wants rwhron and the OSDL database guys to give it some testing. test 2.6.0-test9-mm1 2.6.0-test9-mm1-np Cat kernel source during seq read 0:26.89 0:24.75 Cat kernel source during seq write 9:17.80 0:23.48 ls -lr kernel source during seq read 0:11.03 0:14.68 ls -lr kernel source during seq write 0:49.95 0:08.06 contest no_load 143s 0 loads 144s 0 loads contest io_load 193s 40.2 loads 193s 40.1 loads contest read_load 186s 11.6 loads 190s 10.5 loads contest list_load 201s 5.0 loads 200s 5.0 loads pgbench 1 client 31.3TPS 31.5TPS pgbench 4 clients 37.7TPS 37.5TPS pgbench 16 clients 42.1TPS 48.1TPS
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au> This fixes all known bugs with as in mm2. That constitutes small fixes for 2 WARNs getting triggered. It looks like Prakash's lost interrupt problem was due to as spewing bazillions of warnings, and he must have had his kernel.printk configured not to show them or something. I have to just get final confirmation from him that this final cut of the patch fixes his problem too.
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au>
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au> I have tested this on my disks and cdroms, but they don't represent what all drivers might do. I have asked Jarkko Lehti with his dvd writing problem to try it...
-
Andrew Morton authored
From: Nick Piggin <piggin@cyberone.com.au> Randy has just reported that this fixes up his regression. Its now as good as test5 in his tests with this patch. He is also seeing quite large increases (above test5) when IO scheduler barriers are disabled (this patch doesn't do that). Perhaps something is using them too liberally. Anyway, this reverts AS back to defaulting to not anticipate IO for a program that submits its first request (this really hurts find | xargs grep sort of things). I am working on something to fix this up properly. That can go in after 2.6.0 anyway.
-
Andrew Morton authored
Use daemonize() rather than open-coding half of it. (I don't know if this has been tested - it has been in -mm for three months).
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> vi fixup
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Gone are the days of initialising stuff we touch in prom_init just to keep it out of the BSS. There are a few things the hypervisor writes to in the iseries case, hard code them into the data segment and add a comment. Remove the -fno-zero-initialized-in-bss hack, it was required when gcc got smart and put zero initialised stuff into the BSS
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Fixed rtas_extended_busy_delay_time() to calculate correct value, from John Rose
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Xmon changes to make breakpoints and single-stepping work on pSeries LPARs. Also changed help text to reflect obsolete cmds.
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Looks like glibc is using stat in some places, so we should modify it to copy the nanosecond fields. Also speed up stat by only checking the region once instead of each put_user call.
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> correct epoll syscall names
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> setup_cpu was being called for the boot cpu after all other cpus had been spun up. The init thread can sleep during secondary cpu spinup (eg migration thread init) and sometimes the init thread would switch to another cpu at this time. The end result was setup_cpu was called twice on one cpu and never on the boot cpu. The original fix called setup_cpu on the boot cpu before all others but that wont work for G5, so we now use cpu affinity calls to enforce it.
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> - Remove a bunch of unnecessary sections - Always declare section labels inside the section (bug found on ppc32) - Rearrange sections to waste less space
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> - remove old checks target, no longer used - add -mtraceback=none, we dont use traceback tables any more - add check for -mcpu=power4, older toolchains dont support this option
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Use an atomic_t instead of a volatile unsigned long, from Stephen Rothwell
-