- 15 Apr, 2002 18 commits
-
-
Dave Hansen authored
We've seen this in several other drivers, most recently the indydog one. If two simultaneous opens occur, they race, they device gets opened twice, blah, blah, blah. Using atomic bitops fixes this. The BKL is not needed.
-
Paul Mackerras authored
This patch adds #include <linux/threads.h> to include/linux/smp.h, because it (smp.h) needs the definition of NR_CPUS. (It so happens that include/asm-i386/smp.h includes <linux/threads.h>, but IMHO include/linux/smp.h shouldn't rely on that).
-
Russell King authored
This is needed to for 2.5.7 FAT to build on ARM.
-
Russell King authored
Include fixes to allow ALSA to compile.
-
Andrew Morton authored
On the swap_out() path, the radix-tree pagecache is allocating its nodes with PF_MEMALLOC set, which allows it to completely exhaust the free page lists(*). This is fairly easy to trigger with swap-intensive loads. It would be better to make those node allocations fail at an earlier time. When this happens, the radix-tree can still obtain nodes from its mempool, and we leave some memory available for the I/O layer. (Assuming that the I/O is being performed under PF_MEMALLOC, which it is). So the patch simply drops PF_MEMALLOC while adding nodes to the swapcache's tree. We're still performing atomic allocations, so the rat is still biting pretty deeply into the page reserves - under heavy load the amount of free memory is less than half of what it was pre-rat. It is unfortunate that the page allocator overloads !__GFP_WAIT to also mean "try harder". It would be better to separate these concepts, and to allow the radix-tree code (at least) to perform atomic allocations, but to not go below pages_min. It seems that __GFP_TRY_HARDER will be pretty straightforward to implement. Later. The patch also impements a workaround for the mempool list_head problem, until that is sorted out. (*) The usual result is that the SCSI layer dies at scsi_merge.c:82. It would be nice to have a fix for that - it's going BUG if 1-order allocations fail at interrupt time. That happens pretty easily.
-
Liyang Hu authored
I've recently (actually, last month, but I had been a bit too busy since then) come across a wee problem, in what I originally thought was the VFAT code -- having `utf8' as one of the options, creating UTF-8 file names on a VFAT partition mysteriously gains a couple of (random) characters just after the UTF-8 escaped character: eg. touch "fooCbar" where C is an UTF-8 escape sequence ends up creating a file named "fooCRbar". (R being some random character.) I eventually tracked it down to one line in fs/nls/nls_base.c -- the UCS-2 (wchar_t) string pointer was being incremented too fast. After consulting Ogawa Hirofumi-san on the subject, he mentioned that include/linux/nls.h also needs to be changed for proper UTF-8 support in the NLS code.
-
Dave Jones authored
Originally from Brian Gerst (Includes the bfs fix sent prior to this one to this -- disregard earlier bfs related email)
-
Andrew Morton authored
Missed a page->buffers -> page->private conversion. Apologies..
-
Steven Cole authored
This patch adds 5 help texts to arch/ia64/Config.help. The texts were obtained from Eric S. Raymond's v2.97 Configure.help.
-
Dave Jones authored
The patch to the PnP BIOS driver that was in 2.5.7-dj and which went into 2.5.8-pre1 did not include Brian Gerst's SMP fix.
-
Douglas Gilbert authored
- fixe compile error (scatterlist::address replaced) - simplify obtaining ram disk memory (using vmalloc) - improve SCSI INQUIRY and MODE SENSE support
-
Douglas Gilbert authored
- allow detection of pre-existing disk geometry
-
Richard Gooch authored
- Updated fs/devfs/util.c to fix shift warning on 64 bit machines Thanks to Anton Blanchard <anton@samba.org> - Updated README from master HTML file
-
http://linux-isdn.bkbits.net/linux-2.5.makeLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Jens Axboe authored
- Expand configure help options a bit - Fix xconfig bug - Decrease queue depth if a command takes too long to complete - Test master/slave stuff. It works, but one device can heavily starve another. This is the simple approach right now, means that one device will wait until the other is completely idle before starting any commands This is not necessary since we can have queued commands on both devices at the same time. TODO. - Add proc output for oldest command, just for testing. - pci_dev compile fixes. - Make sure ide-disk doesn't BUG if TCQ is not used, basically this was fixed by off-loading the using_tcq setting to ide-tcq. - Remove warning about 'queued feature set not supported' - Abstract ide_tcq_wait_dataphase() into a function
-
Martin Dalecki authored
- Synchronize with 2.5.8. - Eliminate the cdrom_log_sense() function. - Pass a struct request to cdrom_analyze_sense_data() since this is the entity this function is working on. This shows nicely that this function is broken. - Use CDROM_PACKET_SIZE where appropriate. - Kill the obfuscating cmd_buf and cmd_len local variables from cdrom_transfer_packet_command(). This made it obvious that the parameters of this function where not adequate - to say the least. Fix this. - Pass a packed command array directly to cdrom_queue_packed_command(). This is reducing the number of places where we have to deal with the c member of struct packet_command. - Never pass NULL as sense to cdrom_lockdoor(). - Eliminate cdrom_do_block_pc(). - Eliminate the c member of struct packet_command. Pass them through struct request cmd member. - Don't enable TCQ unconditionally if there is a TCQ queue depth defined. - Fix small think in ide_cmd_ioctl() rewrite. (My appologies to everyone who has to use hdparm to setup his system...) - Fix compilation without PCI support.
-
Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Ingo Molnar authored
- irq handlers should be cache-affine to a large degree, without the explicit use of /proc/irq/*/smp_affinity. - idle CPUs should be preferred over busy CPUs when directing IRQs towards them. - the distribution of IRQs should be random, to avoid all IRQs going to the same CPU, and to avoid 'heavy' IRQs from loading certain CPUs unfairly over CPUs that handle 'light' IRQs. The IRQ system has no knowledge about how 'heavy' an IRQ handler is in terms of CPU cycles. here is the design and implementation: - we make per-irq decisions about where the IRQ will go to next. Right now it's a fastpath and a slowpath, the real stuff happens in the slow path. The fastpath is very lightweight. - [ i decided not to measure IRQ handler overhead via RDTSC - it ends up being very messy, and if we want to be 100% fair then we also need to measure softirq overhead, and since there is no 1:1 relationship between softirq load and hardirq load, it's impossible to do correctly. So the IRQ balancer achieves fairness via randomness. ] - we stay affine in the micro timescale, and we are loading the CPUs fairly in the macro timescale. The IO-APIC's lowest priority distribution method rotated IRQs between CPUs once per IRQ, which was the worst possible solution for good cache-affinity. - to achieve fairness and to avoid lock-step situations some real randomness is needed. The IRQs will wander in the allowed CPU group randomly, in a brownean motion fashion. This is what the 'move()' function accomplishes. The IRQ moves one step forward or one step backwards in the allowed CPU mask. [ Note that this achieves a level of NUMA affinity as well, nearby CPUs are more likely to be NUMA-affine. ] - the irq balancer has some knowledge about 'how idle' a single CPU is. The idle task updates the idle_timestamp. Since this update is in the idle-to-be codepath, it does not increase the latency of idle-wakeup, the overhead should be zero in all cases that matter. The idle-balancing happens the following way: when searching for the next target CPU after a 'IRQ tick' has expired, we first search 'idle enough' CPUs in the allowed set. If this does not succeed then we search all CPUs. - the patch is fully compatible with the /proc/irq/*/smp_affinity interface as well, everything works as expected. note that the current implementation can be expressed equivalently in terms of timer-interrupt-driven IRQ redirection. But i wanted to get some real feedback before removing the possibility to do finer grained decisions - and the per-IRQ overhead is very small anyway.
-
- 14 Apr, 2002 14 commits
-
-
-
Russell King authored
fixes this problem.
-
Russell King authored
-
Russell King authored
into flint.arm.linux.org.uk:/usr/src/linux-bk-2.5/linux-2.5-rmk
-
Russell King authored
into flint.arm.linux.org.uk:/usr/src/linux-bk-2.5/linux-2.5-rmk
-
Alexander Schulz authored
This patch updates the defconfig for the Shark and adds an extern and a define so that the kernel compiles for the Shark. Regards Alexander
-
Dirk Behme authored
Make arch/arm/kernel/armksyms.c compile again with gcc 3.0.2 because of new EXPORT_SYMBOL_NOVERS(abort); in patch-2_4_18-rmk3.gz. See my mail "EXPORT_SYMBOL_NOVERS(abort) in armksyms.c?" in linux-arm-kernel list from Mon, 25 Mar 2002. Dirk
-
http://linux-isdn.bkbits.net/linux-2.5.miscLinus Torvalds authored
into home.transmeta.com:/home/torvalds/v2.5/linux
-
Kai Germaschewski authored
-
Kai Germaschewski authored
(intel_thermal_interrupt() defined but not used)
-
Kai Germaschewski authored
For !CONFIG_SMP we want the empty inline setup_per_cpu_areas(). If CONFIG_SMP is set, we never want the empty inline. If we use the generic implementation, we have it here, if not the arch has it somwhere else (hopefully).
-
Kai Germaschewski authored
into tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5.make
-
Jes Sorensen authored
This makes the cpqfc driver recognize the HP Tachyon. I moved the device list to an __initdata structure so the driver doesn't build it at runtime and changed it to use the proper PCI_DEVICE_ID_* names. With this patch applied, the driver happily detects the disks attached to my HP Tachyon.
-
Martin Dalecki authored
- Kill unneded parameters to ide_cmd_ioctl() and ide_task_ioctl(). - Apply Petr Vendrovecs fix for 32bit ver 16bit transfers. - Make CD-ROM usable again by guarding the generic routines against request field abuse found there. We will try to convert this driver to the just to be finished struct ata_request after the generic changes stabilize a bit. The strcut ata_taskfile and struct ata_request merge to be more preciese.
-
- 12 Apr, 2002 6 commits
-
-
Martin Dalecki authored
- Don't provide symbolic links in /proc/ide - they are redundant data. - Try to use a more reasonable default capacity value in ata_capacity(). - Fix ata_put() ata_get() usage in ide_check_media_change(). - Small readability fixes to the option parsing code. - Apply Vojtech Pavliks /proc PIIX output fix. - Replace all occurrences of ide_wait_taskfile() with ide_raw_taskfile(). One duplicated code path fewer.
-
Linus Torvalds authored
-
Jes Sorensen authored
Included is the latest version of the code. Indenting it properly actually reduced the size of the files by another 10K or so.
-
Linus Torvalds authored
-
Kai Germaschewski authored
We use the makefile variable $(foo-objs) to list the objects a composed module foo.o is supposed to be composed of. We use the special varible $(export-objs) to list the object files which export symbols. This oviously clashes in the case of foo == export. There's basically two ways to handle it: (1) rename one of these options, like foo-objs to foo-parts or something, or (2) simply disallow a composite object called export.o, so you never need $(export-objs) to list its parts. As (1) would affect basically all Makefiles in the tree and (2) doesn't seem much of a limitation, I went for (2).
-
Kai Germaschewski authored
into tp1.ruhr-uni-bochum.de:/home/kai/kernel/v2.5/linux-2.5.make
-
- 11 Apr, 2002 2 commits
-
-
Alexander Viro authored
Removes an atavism in declaration of sys_nfsservctl() - sorry, I should've remove that junk when cond_syscall() thing was done.
-
Linus Torvalds authored
Found by Andrew Morton <akpm@zip.com.au>
-