1. 06 Feb, 2003 8 commits
    • Andrew Morton's avatar
      [PATCH] Fix SMP race betwen __sync_single_inode and · 50d49a05
      Andrew Morton authored
      Patch from Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
      
      there's a SMP race condition between __sync_single_inode (or __sync_one on
      2.4.20) and __mark_inode_dirty. __mark_inode_dirty doesn't take inode
      spinlock. As we know -- unless you take a spinlock or use barrier,
      processor can change order of instructions.
      
      CPU 1
      
      modify inode
      (but modifications are in cpu-local
      buffer and do not go to bus)
      
      calls
      __mark_inode_dirty
      it sees I_DIRTY and exits immediatelly
      					CPU 2
      					takes spinlock
      					calls __sync_single_inode
      					inode->i_state &= ~I_DIRTY
      					writes the inode (but does not see
      					modifications by CPU 1 yet)
      
      CPU 1 flushes its write buffer to the bus
      inode is already written, clean, modifications
      done by CPU1 are lost
      
      The easiest fix would be to move the test inside spinlock in
      __mark_inode_dirty; if you do not want to suffer from performance loss,
      use the attached patches that use memory barriers to ensure ordering of
      reads and writes.
      50d49a05
    • Andrew Morton's avatar
      [PATCH] Restore LSM hook calls to sendfile · 0b316620
      Andrew Morton authored
      Patch from "Stephen D. Smalley" <sds@epoch.ncsc.mil>
      
      This patch restores the LSM hook calls in sendfile to 2.5.59.  The hook was
      previously added as of 2.5.29 but the hook calls in sendfile were
      subsequently lost as a result of the sendfile rewrite as of 2.5.30.
      0b316620
    • Andrew Morton's avatar
      [PATCH] JBD Documentation · b573296a
      Andrew Morton authored
      Patch from Roger Gammans <roger@computer-surgery.co.uk>
      
      Adds lots of API documentation to the JBD layer.
      b573296a
    • Andrew Morton's avatar
      [PATCH] Updated Documentation/kernel-parameters.txt · 7260b084
      Andrew Morton authored
      Patch from Petr Baudis <pasky@ucw.cz>
      
      this patch (against 2.5.59) updates Documentation/kernel-parameters.txt to
      the (more-or-less; I certainly missed some parameters) current state of
      kernel.  Note also that I will probably send up another update after few
      further kernel releases..
      7260b084
    • Andrew Morton's avatar
      [PATCH] Remove most of the blk_run_queues() calls · 418f398e
      Andrew Morton authored
      We don't need these with self-unplugging queues.
      
      The patch also contains a couple of microopts suggested by Andrea: we
      don't need to run sync_page() if the page just came unlocked.
      418f398e
    • Andrew Morton's avatar
      [PATCH] self-unplugging request queues · 00c8e791
      Andrew Morton authored
      The patch teaches a queue to unplug itself:
      
      a) if is has four requests OR
      b) if it has had plugged requests for 3 milliseconds.
      
      These numbers may need to be tuned, although doing so doesn't seem to
      make much difference.  10 msecs works OK, so HZ=100 machines will be
      fine.
      
      Instrumentation shows that about 5-10% of requests were started due to
      the three millisecond timeout (during a kernel compile).  That's
      somewhat significant.  It means that the kernel is leaving stuff in the
      queue, plugged, for too long.  This testing was with a uniprocessor
      preemptible kernel, which is particularly vulnerable to unplug latency
      (submit some IO, get preempted before the unplug).
      
      This patch permits the removal of a lot of rather lame unplugging in
      page reclaim and in the writeback code, which kicks the queues
      (globally!) every four megabytes to get writeback underway.
      
      This patch doesn't use blk_run_queues().  It is able to kick just the
      particular queue.
      
      The patch is not expected to make much difference really, except for
      AIO.  AIO needs a blk_run_queues() in its io_submit() call.  For each
      request.  This means that AIO has to disable plugging altogether,
      unless something like this patch does it for it.  It means that AIO
      will unplug *all* queues in the machine for every io_submit().  Even
      against a socket!
      
      This patch was tested by disabling blk_run_queues() completely.  The
      system ran OK.
      
      The 3 milliseconds may be too long.  It's OK for the heavy writeback
      code, but AIO may want less.  Or maybe AIO really wants zero (ie:
      disable plugging).  If that is so, we need new code paths by which AIO
      can communicate the "immediate unplug" information - a global unplug is
      not good.
      
      
      To minimise unplug latency due to user CPU load, this patch gives keventd
      `nice -10'.  This is of course completely arbitrary.  Really, I think keventd
      should be SCHED_RR/MAX_RT_PRIO-1, as it has been in -aa kernels for ages.
      00c8e791
    • Andrew Morton's avatar
      [PATCH] reiserfs v3 readpages support · c5070032
      Andrew Morton authored
      Patch from Chris Mason <mason@suse.com>
      
      The patch below is against 2.5.59, various forms have been floating
      around for a while, and Andrew recently included this fixed version in
      2.5.55-mm.  The end result is faster reads and writes for reiserfs.
      
      This adds reiserfs support for readpages, along with a support func in
      fs/mpage.c to deal with the reiserfs_get_block call sending back up to
      date buffers with packed tails copied into them.
      
      Most of the changes are to reiserfs_writepage, which still had many
      2.4isms in the way it started io, dealt with errors and handled the bh
      state bits.  I've also added an optimization so it only starts
      transactions when we need to copy a packed tail into the btree or fill a
      hole, instead of any time reiserfs_writepage hits an unmapped buffer.
      c5070032
    • Andrew Morton's avatar
      [PATCH] BTTV build fix · 07285c80
      Andrew Morton authored
      Patch from Gerd Knorr <kraxel@bytesex.org>
      
      bttv requires CONFIG_SOUND.
      07285c80
  2. 05 Feb, 2003 4 commits
  3. 07 Feb, 2003 3 commits
  4. 06 Feb, 2003 14 commits
  5. 05 Feb, 2003 11 commits