1. 15 Apr, 2002 24 commits
    • Robert Love's avatar
      [PATCH] migration_thread preempt fix · e1efc1f3
      Robert Love authored
      This fixes a race in migration_thread which results in a deadlock on
      boot for some SMP systems.  The fix is to to disable preemption inside
      of set_cpus_allowed.
      
      Andrew Morton first noticed the problem and provided the following patch
      a few weeks back.  I was not affected until the recent migration_init
      fix, for some odd reason.  Neither Andrew nor I think this is actually
      kernel preemption's fault but perhaps a race in the tricky behavior of
      the migration code.
      e1efc1f3
    • James Simmons's avatar
      [PATCH] fbdev api cleanup. · 57df9900
      James Simmons authored
      This patch is the start of the cleanup of the fbdev layer. It has been
      approved by Geert and has been tested for some time in the Dave Jones
      tree.
      57df9900
    • Paul Fulghum's avatar
      [PATCH] 2.5.8 n_hdlc.c · 948964a6
      Paul Fulghum authored
      Remove localy defined wait queues and use wait queues
      in tty structure of same function. This matches the
      n_tty.c behavior.
      
      Handle pty hangup when blocked on read.
      
      These 2 changes fix use of n_hdlc with PPPoATM and
      are mirror changes included in 2.4.19-pre
      948964a6
    • Paul Fulghum's avatar
      [PATCH] 2.5.8 synclink.c · a8a7cf5b
      Paul Fulghum authored
      patch to update virt_to_bus functions and remove version depedent #ifdef
      statements
      a8a7cf5b
    • Jens Axboe's avatar
      [PATCH] get_request() starvation fix · 52e36bc2
      Jens Axboe authored
      This is originally from Andrew in the 2.4 series, please apply for 2.5
      as well.
      52e36bc2
    • Douglas Gilbert's avatar
      [PATCH] st driver in lk 2.5.7 and beyond · b73335fe
      Douglas Gilbert authored
      Fix oops in st_open..
      b73335fe
    • Dave Hansen's avatar
      [PATCH] fix race and remove BKL from wdt977 · 745f4617
      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.
      745f4617
    • Paul Mackerras's avatar
      [PATCH] fix include/linux/smp.h · 0a96b71a
      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).
      0a96b71a
    • Russell King's avatar
      [PATCH] 2.5.7 allow fat to compile · 0a686677
      Russell King authored
      This is needed to for 2.5.7 FAT to build on ARM.
      0a686677
    • Russell King's avatar
      [PATCH] 2.5.7 ALSA include fixes · 3c195d84
      Russell King authored
      Include fixes to allow ALSA to compile.
      3c195d84
    • Andrew Morton's avatar
      [PATCH] don't allocate ratnodes under PF_MEMALLOC · 49c7ca7c
      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.
      49c7ca7c
    • Liyang Hu's avatar
      [PATCH] Bug in NLS UTF-8 code · de6ca58c
      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.
      de6ca58c
    • Dave Jones's avatar
      [PATCH] Seperates bfs_sb_info from struct super_block. · c544f64e
      Dave Jones authored
      Originally from Brian Gerst
      
      (Includes the bfs fix sent prior to this one to this -- disregard
       earlier bfs related email)
      c544f64e
    • Andrew Morton's avatar
      [PATCH] JFS build fix for 2.5.8 · 6bef9146
      Andrew Morton authored
      Missed a page->buffers -> page->private conversion.
      Apologies..
      6bef9146
    • Steven Cole's avatar
      [PATCH] 2.5.7-dj2 add 5 help texts to arch/ia64/Config.help · 9921dc27
      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.
      9921dc27
    • Dave Jones's avatar
      [PATCH] PnP BIOS catch up · 05352d8c
      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.
      05352d8c
    • Douglas Gilbert's avatar
      [PATCH] scsi_debug driver lk2.5.8-pre3 · 9d09c997
      Douglas Gilbert authored
       - fixe compile error (scatterlist::address replaced)
       - simplify obtaining ram disk memory (using vmalloc)
       - improve SCSI INQUIRY and MODE SENSE support
      9d09c997
    • Douglas Gilbert's avatar
      [PATCH] scsicam lk2.5.8-pre3 · 2c639378
      Douglas Gilbert authored
       - allow detection of pre-existing disk geometry
      2c639378
    • Richard Gooch's avatar
      [PATCH] devfs patch for 2.5.8 · b9fa7043
      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
      b9fa7043
    • Linus Torvalds's avatar
      Merge http://linux-isdn.bkbits.net/linux-2.5.make · 8218f1ac
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      8218f1ac
    • Jens Axboe's avatar
      [PATCH] 2.5.8 IDE 35 · 0c686811
      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
      0c686811
    • Martin Dalecki's avatar
      [PATCH] 2.5.8 IDE 34 · 21aecbc3
      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.
      21aecbc3
    • Linus Torvalds's avatar
      Merge master.kernel.org:ingo/linux-2.5 · e9dc26cd
      Linus Torvalds authored
      into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
      e9dc26cd
    • 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 14 commits
  3. 12 Apr, 2002 2 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