1. 15 Apr, 2002 1 commit
    • Ingo Molnar's avatar
      the IRQ balancing feature is based on the following requirements: · cf6f7853
      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.
      cf6f7853
  2. 14 Apr, 2002 2 commits
    • Jes Sorensen's avatar
      [PATCH] cpqfc.o · 92ebc650
      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.
      92ebc650
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 33 · 3e11aea0
      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.
      3e11aea0
  3. 12 Apr, 2002 4 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 32 · 6a0b3e79
      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.
      6a0b3e79
    • Linus Torvalds's avatar
      Kernel version update · 78cb05eb
      Linus Torvalds authored
      78cb05eb
    • Jes Sorensen's avatar
      [PATCH] qla1280.c update · edb3acf2
      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.
      edb3acf2
    • Linus Torvalds's avatar
      Update defconfig for IDE TCQ configs · 3a917e20
      Linus Torvalds authored
      3a917e20
  4. 11 Apr, 2002 2 commits
  5. 09 Apr, 2002 1 commit
  6. 10 Apr, 2002 21 commits
    • Linus Torvalds's avatar
      Automerge · 7b2a7e76
      Linus Torvalds authored
      7b2a7e76
    • Linus Torvalds's avatar
      Automerge · 21c5406e
      Linus Torvalds authored
      21c5406e
    • Linus Torvalds's avatar
      Automerge · 245ba61e
      Linus Torvalds authored
      245ba61e
    • Linus Torvalds's avatar
      Automerge · d23e4b81
      Linus Torvalds authored
      d23e4b81
    • Linus Torvalds's avatar
      Automerge · 154a5d4c
      Linus Torvalds authored
      154a5d4c
    • Hans Reiser's avatar
      [PATCH] ReiserFS typo fix · 517cb89a
      Hans Reiser authored
       This patch fixes small typo in ikernel informational message.
      517cb89a
    • Hans Reiser's avatar
      [PATCH] ReiserFS inode cleanup · 2439ecac
      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.
      2439ecac
    • Hans Reiser's avatar
      [PATCH] ReiserFS makefile cleanup · db35c6ae
      Hans Reiser authored
      This patch removes one tail_conversion object out of build list,
      because it was specified twice. (noticed by Jeff Garzik)
      db35c6ae
    • Hans Reiser's avatar
      [PATCH] ReiserFS unconfuse · 4f86850b
      Hans Reiser authored
      This patch removes confusing warning about journal replay on readonly FS
      4f86850b
    • Hans Reiser's avatar
      [PATCH] ReiserFS config comment clarification · 1966f37c
      Hans Reiser authored
      This patch is to change comment of CONFIG_REISERFS_PROC_INFO config item,
      to make it more clear.
      1966f37c
    • Hans Reiser's avatar
      [PATCH] ReiserFS debug config rename · 76d5d8f8
      Hans Reiser authored
      This patch renames reiserfs debugging option in config output,
      to make its meaning more clear.
      76d5d8f8
    • Hans Reiser's avatar
      [PATCH] ReiserFS journal replay · 59e9d01a
      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.
      59e9d01a
    • Hans Reiser's avatar
      [PATCH] fix ReiserFS journal initialization · 02acf194
      Hans Reiser authored
      This patch solves a problem where separate journal device was not freed
      if journal initialisation failed
      02acf194
    • Hans Reiser's avatar
      [PATCH] fix ReiserFS metadata journalling · 6a8b2bb1
      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
      6a8b2bb1
    • Hans Reiser's avatar
      [PATCH] ReiserFS inode initialization · 90db7115
      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.
      90db7115
    • Hans Reiser's avatar
      [PATCH] ReiserFS get_block fix · 8956fa9f
      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.
      8956fa9f
    • Hans Reiser's avatar
      [PATCH] ReiserFS endianness fix · 5ebb0457
      Hans Reiser authored
      This patch is to fix a lookup problem on bigendian platforms
      5ebb0457
    • Hans Reiser's avatar
      [PATCH] ReiserFS directory atime fix · 0a6bfe99
      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.
      0a6bfe99
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 31 · 17b581c6
      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.
      17b581c6
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 30 · a87cd868
      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.
      a87cd868
    • Linus Torvalds's avatar
      Merge bk://ppc.bkbits.net/for-linus-ppp · 8e602aee
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      8e602aee
  7. 11 Apr, 2002 1 commit
  8. 10 Apr, 2002 1 commit
  9. 11 Apr, 2002 2 commits
  10. 10 Apr, 2002 5 commits