- 23 Aug, 2004 40 commits
-
-
Neil Brown authored
NFSv4 should really run over TCP, and clients will expect that; so there's no point letting people build kernels that support NFSv4 without also supporting server-side TCP. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
In databases it is common to have multiple threads or processes performing O_SYNC writes against different parts of the same file. Our performance at this is poor, because each writer blocks access to the file by waiting on I/O completion while holding i_sem: everything is serialised. The patch improves things by moving the writing and waiting outside i_sem. So other threads can get in and submit their I/O and permit the disk scheduler to optimise the IO patterns better. Also, the O_SYNC writer only writes and waits on the pages which he wrote, rather than writing and waiting on all dirty pages in the file. The reason we haven't been able to do this before is that the required walk of the address_space page lists is easily livelockable without the i_sem serialisation. But in this patch we perform the waiting via a radix-tree walk of the affected pages. This cannot be livelocked. The sync of the inode's metadata is still performed inside i_sem. This is because it is list-based and is hence still livelockable. However it is usually the case that databases are overwriting existing file blocks and there will be no dirty buffers attached to the address_space anyway. The code is careful to ensure that the IO for the pages and the IO for the metadata are nonblockingly scheduled at the same time. This is am improvemtn over the current code, which will issue two separate write-and-wait cycles: one for metadata, one for pages. Note from Suparna: Reworked to use the tagged radix-tree based writeback infrastructure. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Suparna Bhattacharya authored
Range based equivalent of filemap_fdatawrite for O_SYNC writers (to go with writepages range support added to mpage_writepages). If both <start> and <end> are zero, then it defaults to writing back all of the mapping's dirty pages. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Suparna Bhattacharya authored
Safeguard to make sure we break out of pagevec_lookup_tag loop if we are beyond the specified range. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Suparna Bhattacharya authored
wait_on_page_writeback_range shouldn't wait for pages beyond the specified range. Ideally, the radix-tree-lookup could accept an end_index parameter so that it doesn't return the extra pages in the first place, but for now we just add a few extra checks to skip such pages. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
Modify mpage_writepages to optionally only write back dirty pages within a specified range in a file (as in the case of O_SYNC). Cheat a little to avoid changes to prototypes of aops - just put the <start, end> hint into the writeback_control struct instead. If <start, end> are not set, then default to writing back all the mapping's dirty pages. Signed-off-by: Suparna Bhattacharya <suparna@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Rik van Riel authored
The following experimental patch implements token based thrashing protection, using the algorithm described in: http://www.cs.wm.edu/~sjiang/token.htm When there are pageins going on, a task can grab a token, that protects the task from pageout (except by itself) until it is no longer doing heavy pageins, or until the maximum hold time of the token is over. If the maximum hold time is exceeded, the task isn't eligable to hold the token for a while more, since it wasn't doing it much good anyway. I have run a very unscientific benchmark on my system to test the effectiveness of the patch, timing how a 230MB two-process qsbench run takes, with and without the token thrashing protection present. normal 2.6.8-rc6: 6m45s 2.6.8-rc6 + token: 4m24s This is a quick hack, implemented without having talked to the inventor of the algorithm. He's copied on the mail and I suspect we'll be able to do better than my quick implementation ... Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Aneesh Kumar authored
The below patch add the symbol information of the pc and ra to the Oops message. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
Use abstracted RCU API to dereference RCU protected data. Hides barrier details. Patch from Paul McKenney. This patch introduced an rcu_dereference() macro that replaces most uses of smp_read_barrier_depends(). The new macro has the advantage of explicitly documenting which pointers are protected by RCU -- in contrast, it is sometimes difficult to figure out which pointer is being protected by a given smp_read_barrier_depends() call. Signed-off-by: Paul McKenney <paulmck@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
Patch from Paul for additional documentation of api. Updated based on feedback, and to apply to 2.6.8-rc3. I will be adding more detailed documentation to the Documentation directory in a separate patch. Signed-off-by: Paul McKenney <paulmck@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
Use call_rcu_bh() in route cache. This allows faster grace periods and avoids dst cache overflows during DoS testing. This patch uses the call_rcu_bh() api in route cache code to facilitate quicker RCU grace periods. Quicker grace periods avoid overflow of dst cache in heavily loaded routers as seen in Robert Olsson's testing. Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
Introduces call_rcu_bh() to be used when critical sections are mostly in softirq context. This patch introduces a new api - call_rcu_bh(). This is to be used for RCU callbacks for whom the critical sections are mostly in softirq context. These callbacks consider completion of a softirq handler to be a quiescent state. So, in order to make reader critical sections safe in process context, rcu_read_lock_bh() and rcu_read_unlock_bh() must be used. Use of softirq handler completion as a quiescent state speeds up RCU grace periods and prevents too many callbacks getting queued up in softirq-heavy workloads like network stack. Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
Somehow spaces replaced tabs in rcupdate.h and I would like to keep everything clean. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
Avoids per_cpu calculations and also prepares for call_rcu_bh(). At OLS, Rusty had suggested getting rid of many per_cpu() calculations in RCU code and making the code simpler. I had already done that for the rcu-softirq patch earlier, so I am splitting that into two patch. This first patch cleans up the macros and uses pointers to the rcu per-cpu data directly to manipulate the callback queues. This is useful for the call-rcu-bh patch (to follow) which introduces a new RCU mechanism - call_rcu_bh(). Both generic and softirq rcu can then use the same code, they work different global and percpu data. Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
This patch makes RCU callbacks friendly to scheduler. It helps low latency by limiting the number of callbacks invoked per tasklet handler. Since we cannot schedule during a single softirq handler, this reduces size of non-preemptible section significantly, specially under heavy RCU updates. The limiting is done through a kernel parameter rcupdate.maxbatch which is the maximum number of RCU callbacks to invoke during a single tasklet handler. Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
This fixes the RCU cpu offline code which was broken by singly-linked RCU changes. Nathan pointed out the problems and submitted a patch for this. This is an optimal fix - no need to iterate through the list of callbacks, just use the tail pointers and attach the list from the dead cpu. Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dipankar Sarma authored
There is a series of patches in my tree and these 3 are the first ones that should probably be merged down the road. Descriptions are on top of the patches. Please include them in -mm. A lot of RCU code will be cleaned up later in order to support call_rcu_bh(), the separate RCU interface that considers softirq handler completion a quiescent state. This patch: Minor cleanup of the hotplug code to remove #ifdef in cpu event notifier handler. If CONFIG_HOTPLUG_CPU is not defined, CPU_DEAD case will be optimized off. Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Rajesh Venkatasubramanian authored
Currently we have: while ((vma = vma_prio_tree_next(vma, root, &iter, begin, end)) != NULL) do_something_with(vma); Then iter,root,begin,end are all transfered unchanged to various functions. This patch hides them in struct iter instead. It slightly lessens source, code size, and stack usage. Patch compiles and tested lightly. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Rajesh Venkatasubramanian <vrajesh@umich.edu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Rajesh Venkatasubramanian authored
vma_prio_tree_insert() relies on the fact, that vma was vma_prio_tree_init()'ed. Content of vma->shared should be considered undefined, until this vma is inserted into i_mmap/i_mmap_nonlinear. It's better to do proper initialization in vma_prio_tree_add/insert. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Rajesh Venkatasubramanian <vrajesh@umich.edu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matt Mackall authored
Kill error_buf madness in ext3 Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matt Mackall authored
Kill error_buf madness in ext2 Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matt Mackall authored
Add vprintk call. This lets us directly pass varargs stuff to the console without using vsnprintf to an intermediate buffer. Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matt Mackall authored
Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Matt Mackall authored
This moves duplicate BUG, PAGE_BUG, BUG_ON, and WARN_ON code to asm-generic and makes them slightly more consistent. This cleanup is also preparatory work for making BUG and WARN verbosity configurable. Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Greg Howard authored
drivers/char/Kconfig Make a config option for the SGI Altix system controller communication driver. drivers/char/Makefile Add an object file target for the SGI Altix system controller communication driver. drivers/char/snsc.c This file implements a driver that allows an application to communicate with the SGI Altix system controller network. Most of the heavy lifting is done in SAL in order to allow Linux run-time applications to share the system controller link(s) with SAL run-time services. drivers/char/snsc.h Macros and data types for the Altix system controller driver (drivers/char/snsc.c). drivers/serial/sn_console.c Modify the SGI Altix console driver to share an interupt with the system controller communication driver. include/asm-ia64/sn/sn_sal.h Provide an interface to the SAL runtime services that allow the kernel or user applications to send/receive arbitary system controller data. Signed-off-by: Greg Howard <ghoward@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Raphael Zimmerer authored
Here's a minimal patch to support the Exar Corp. XR17C158 Octal UART Chip (PCI). Signed-off-by: Raphael Zimmerer <killekulla@rdrz.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Roger Luethi authored
If you win the race with a starting process, you can read its environment. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrea Arcangeli authored
A trap gate shouldn't affect the irq status at all, so we don't need to test whether the trapping code had interrupts enabled. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jan Blunck authored
If the whole directory is read, ext2_readdir() sets the f_pos to a multiple of the page size (because of the conditions of the outer for loop). This sets the wrong f_pos for directory inodes on ext2 partitions with a block size differing from the page size. Signed-off-by: Jan Blunck <j.blunck@tu-harburg.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jesper Juhl authored
drivers/net/wan/dscc4.c: In function `dscc4_found1': drivers/net/wan/dscc4.c:369: sorry, unimplemented: inlining failed in call to 'dscc4_set_quartz': function body not available drivers/net/wan/dscc4.c:898: sorry, unimplemented: called from here Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jesper Juhl authored
This patch fixes the following build error (in 2.6.8-rc2-mm1) when using gcc 3.4.0 drivers/scsi/aic7xxx/aic79xx_osm.c: In function `ahd_linux_dv_transition': drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3070: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3093: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3144: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3257: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3288: sorry, unimplemented: called from here drivers/scsi/aic7xxx/aic79xx_osm.c:522: sorry, unimplemented: inlining failed in call to 'ahd_linux_dv_fallback': function body not available drivers/scsi/aic7xxx/aic79xx_osm.c:3317: sorry, unimplemented: called from here It first removes a duplicate forward declaration of ahd_linux_dv_fallback and then moves the function before its first use so inlining can succeed. Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Adrian Bunk authored
CC drivers/media/radio/radio-maestro.o drivers/media/radio/radio-maestro.c: In function `maestro_radio_init': drivers/media/radio/radio-maestro.c:273: sorry, unimplemented: inlining failed in call to 'radio_install': function body not available drivers/media/radio/radio-maestro.c:291: sorry, unimplemented: called from here drivers/media/radio/radio-maestro.c:273: sorry, unimplemented: inlining failed in call to 'radio_install': function body not available drivers/media/radio/radio-maestro.c:295: sorry, unimplemented: called from here make[3]: *** [drivers/media/radio/radio-maestro.o] Error 1 Signed-off-by: Adrian Bunk <bunk@fs.tum.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Adrian Bunk authored
CC drivers/char/mxser.o drivers/char/mxser.c: In function `mxser_interrupt': drivers/char/mxser.c:352: sorry, unimplemented: inlining failed in call to 'mxser_receive_chars': function body not available drivers/char/mxser.c:1347: sorry, unimplemented: called from here drivers/char/mxser.c:354: sorry, unimplemented: inlining failed in call to 'mxser_check_modem_status': function body not available drivers/char/mxser.c:1350: sorry, unimplemented: called from here drivers/char/mxser.c:353: sorry, unimplemented: inlining failed in call to 'mxser_transmit_chars': function body not available drivers/char/mxser.c:1355: sorry, unimplemented: called from here make[2]: *** [drivers/char/mxser.o] Error 1 Signed-off-by: Adrian Bunk <bunk@fs.tum.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Adrian Bunk authored
CC drivers/char/istallion.o drivers/char/istallion.c: In function `stli_init': drivers/char/istallion.c:4603: sorry, unimplemented: inlining failed in call to 'stli_getbrdnr': function not considered for inlining drivers/char/istallion.c:4577: sorry, unimplemented: called from here drivers/char/istallion.c: At top level: drivers/char/istallion.c:422: warning: 'istallion_pci_tbl' defined but not used make[2]: *** [drivers/char/istallion.o] Error 1 Signed-off-by: Adrian Bunk <bunk@fs.tum.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
Took code from James' tree to be hopefully included in the mm tree so it can receive more testing. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
Took code from James' tree to be hopefully included in the mm tree so it can receive more testing. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
Took code from James' tree to be hopefully included in the mm tree so it can receive more testing. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
This patch was submitted by James Hoover < ch@hpl.hp.com> to James a long time ago (2.5 development) which ports the epson driver to 2.6. Took the code from James tree to be hopefully included in the mm tree so it can get more testing. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
Although the rivafb advertises its capability as DirectColor, the hardware is actually set in Truecolor (CLUT cannot be altered). This mismatch occasionally produces wrong colors, such as wrong logo colors at 32bpp and gamma utilities (such as xgamma) does not work at all. Changes: 1. Fixes the above problems by setting the hardware to accept changing of the CLUT. 2. Fixes color problems for NV_ARCH_03 (Riva128) 3. Build a private modelist from the EDID (for use by fbcon) 4. Mark several functions/data as __devinit/__initdata 5. Remove unused fields from struct riva_par Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Antonino Daplas authored
The patch adds the ability for vesafb to switch the DAC from 6-bit to 8-bit at kernel boot. Besides fixing the failure to draw the 224-color logo, an 8-bit DAC will also provide a wider color range for user applications. Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-