- 15 Apr, 2002 1 commit
-
-
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 2 commits
-
-
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 4 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
-
- 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>
-
- 09 Apr, 2002 1 commit
-
-
Linus Torvalds authored
-
- 10 Apr, 2002 21 commits
-
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Linus Torvalds authored
-
Hans Reiser authored
This patch fixes small typo in ikernel informational message.
-
Hans Reiser authored
This patch fixes a problem that was created during inode structure cleanup/ private parts separation. This fix was made by Chris Mason. This is very critical bugfix. Without it, filesystem corruption happens on savelinks processing and possibly in some other cases.
-
Hans Reiser authored
This patch removes one tail_conversion object out of build list, because it was specified twice. (noticed by Jeff Garzik)
-
Hans Reiser authored
This patch removes confusing warning about journal replay on readonly FS
-
Hans Reiser authored
This patch is to change comment of CONFIG_REISERFS_PROC_INFO config item, to make it more clear.
-
Hans Reiser authored
This patch renames reiserfs debugging option in config output, to make its meaning more clear.
-
Hans Reiser authored
This patch is to fix journal replay bug where old code would replay transactions with mount_id != mount_id recorded in journal header. Fixed by Chris Mason.
-
Hans Reiser authored
This patch solves a problem where separate journal device was not freed if journal initialisation failed
-
Hans Reiser authored
This patch is to add forgotten metadata journaling for a case when we free blocks after tail conversion failures. Found and fixed by Chris Mason
-
Hans Reiser authored
This patch is to fix a case where flag was not set at inode-read time which prevented 32bit uid/gid to work correctly.
-
Hans Reiser authored
This patch is to convert pap14030 panic into warning. While doing this, a bug was uncovered, that when get_block() returns a failure, buffer is still marked as mapped, and on subsequent access to this buffer get_block() was not called anymore. This is also fixed.
-
Hans Reiser authored
This patch is to fix a lookup problem on bigendian platforms
-
Hans Reiser authored
This patch is to fix a problem when directory's atime was not updated on readdir(). Patch is written by Chris Mason.
-
Martin Dalecki authored
- Integrate the TCQ stuff from Jens Axboe. Deal with the conflicts, apply some cosmetic changes. We are still not at a stage where we could immediately integrate ata_request and ata_taskfile but we are no longer far away. - Clean up the data transfer function in ide-disk to use ata_request structures directly. - Kill useless leading version information in ide-disk.c - Replace the ATA_AR_INIT macro with inline ata_ar_init() function. - Replace IDE_CLEAR_TAG with ata_clear_tag(). - Replace IDE_SET_TAG with ata_set_tag(). - Kill georgeous ide_dmafunc_verbose(). - Fix typo in ide_enable_queued() (ide-tcq.c!) Apparently there still problems with a TCQ enabled device and a not enabled device on the same channel, but let's first synchronize up with Jens.
-
Martin Dalecki authored
- Eliminate ide_task_t and rename struct ide_task_s to struct ata_taskfile. This should become the entity which is holding all data for a request in the future. If this turns out to be the case, we will just rename it to ata_request. - Reduce the number of arguments for the ata_taskfile() function. This helps to wipe quite a lot of code out as well. This stage is not sensitive, so let's make a patch before we start to integrate the last work of Jens Axboe.
-
bk://ppc.bkbits.net/for-linus-pppLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
- 11 Apr, 2002 1 commit
-
-
Paul Mackerras authored
and scheduling-in-interrupt problems we had, and also makes it much faster when handling large numbers (100s or more) of PPP units.
-
- 10 Apr, 2002 1 commit
-
-
bk://ppc.bkbits.net/for-linus-ppcLinus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
- 11 Apr, 2002 2 commits
-
-
Paul Mackerras authored
and cacheflush.h in a few places where they are needed.
-
Paul Mackerras authored
flushing code a little.
-
- 10 Apr, 2002 5 commits
-
-
Steve Cameron authored
Patch to cciss driver in 2.4.8-pre2 to use pdev->irq and other pci_dev structure elements only after calling pci_enable_device. Morten Helgesen <admin@nextframe.net> sent me this.
-
Andy Grover authored
The latest ACPI merge accidentally clobbered another change in pci-irq.c. Here's the original patch again (applies fine except for an offset) Thanks -- Andy
-
bk://linuxusb.bkbits.net/pci_hp-2.5Linus Torvalds authored
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-
Alexander Viro authored
More places where we want the size of block device and have relevant struct block_device * available,
-
Alexander Viro authored
Fixes races in jffs2_get_sb() - current code has a window when two mounts of the same mtd device can miss each other, resulting in two active instances of jffs2 fighting over the same device.
-