1. 20 Apr, 2003 8 commits
    • Andrew Morton's avatar
      [PATCH] get_offset_pit and do_timer_overflow vs IRQ locking · e2ac56f6
      Andrew Morton authored
      From: john stultz <johnstul@us.ibm.com>, Alexander Atanasov <alex@ssi.bg>
      
      We want to make sure we update jiffies_p and count_p atomically.  So I'm
      inserting the spin_unlock_irqrestore() after we update count_p, rather then
      just before.
      e2ac56f6
    • Andrew Morton's avatar
      [PATCH] Fix jiffies_to_time[spec | val] and converse to use · 0ebcfd99
      Andrew Morton authored
      From: george anzinger <george@mvista.com>
      
      In the current system (2.5.67) time_spec to jiffies, time_val to
      jiffies and the converse (jiffies to time_val and jiffies to
      time_spec) all use 1/HZ as the measure of a jiffie.  Because of the
      inability of the PIT to actually generate an accurate 1/HZ interrupt,
      the wall clock is updated with a more accurate value (999848
      nanoseconds per jiffie for HZ = 1000).  This causes a 1/HZ
      interpretation of jiffies based timing to run faster than the wall
      clock, thus causing sleeps and timers to expire short of the requested
      time.  Try, for example:
      
      time sleep 60
      
      This patch changes the conversion routines to use the same value as
      the wall clock update code to do the conversions.
      
      The actual math is almost all done at compile time.  The run time
      conversions require little if any more execution time.
      
      This patch must be applied after the patch I posted earlier today
      which fixed the CLOCK_MONOTONIC resolution issue.
      0ebcfd99
    • Andrew Morton's avatar
      [PATCH] Fix POSIX timers to give CLOCK_MONOTONIC full · 2f98681f
      Andrew Morton authored
      The POSIX CLOCK_MONOTONIC currently has only 1/HZ resolution.  Further, it is
      tied to jiffies (i.e.  is a restatment of jiffies) rather than "xtime" or the
      gettimeofday() clock.
      
      This patch changes CLOCK_MONOTONIC to be a restatment of gettimeofday() plus
      an offset to remove any clock setting activity from CLOCK_MONOTONIC.  An
      offset is kept that represents the difference between CLOCK_MONOTONIC and
      gettimeofday().  This offset is updated when ever the gettimeofday() clock is
      set to back the clock setting change out of CLOCK_MONOTONIC (which by the
      standard, can not be set).
      
      With this change CLOCK_REALTIME (a direct restatement of gettimeofday()),
      CLOCK_MONOTONIC and gettimeofday() will all tick at the same time and with
      the same rate.  And all will be affected by NTP adjustments (save those which
      actually set the time).
      2f98681f
    • Andrew Morton's avatar
      [PATCH] Fix and clean up DCACHE_REFERENCED usage · 0e3efbd1
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      This patch changes the way DCACHE_REFERENCED flag is used. It
      got messed up in dcache_rcu iterations. I hope this will be ok now.
      
      The flag was meant to be advisory flag which is used while
      prune_dcache() so as not to free dentries which have recently
      entered d_lru list. At first pass in prune_dcache the dentries
      marked DCACHE_REFERENCED are left with the flag reset. and they
      are freed in the next pass.
      
      So, now we mark the dentry as DCACHE_REFERENCED when it is first
      entering the d_lru list in dput() and resetthe flag in prune_dcache().
      If the flag remains reset in the next call to prune_dcache(), the
      dentry is then freed.
      
      Also I don't think any file system have to use this flag as it is taken
      care by the dcache layer. The patch removes such code from a few of file
      systems. Moreover these filesystems were anyway doing worng thing as they
      were changing the flag out of dcache_lock.
      
      Changes:
      o dput() marks dentry DCACHE_REFERENCED when it is added to the dentry_unused
        list
      o no need to set the flag in dget, dget_locked, d_lookup as these guys anyway
        increments the ref count.
      o check the ref count in prune_dcache and use DCACHE_REFERENCED flag just for
        two stage aging.
      o remove code for setting DACACHE_REFERENCED from reiserfs, fat, xfs and
        exportfs.
      0e3efbd1
    • Andrew Morton's avatar
      [PATCH] dentry_stat accounting fix · de8e3749
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      This patch the corrects the dentry_stat.nr_unused calculation.
      
      In select_parent() and shrink_dcache_anon() we were not doing any adjustments
      to the nr_unused count after manipulating the dentry_unused list.  Now the
      nr_unused count is decremented if the dentry is on dentry_unused list and is
      removed from there.
      
      Further in the same routines, we have to adjust the nr_unused count again if
      the dentry is moved to the end of d_lru list for pruning.
      de8e3749
    • Andrew Morton's avatar
      [PATCH] dmfe: don't free skb with local interrupts disabled · 70d67000
      Andrew Morton authored
      dev_kfree_skb() can end up calling local_bh_enable() which goes BUG if local
      interrupts are disabled.  Apparently it can deadlock.
      
      So move the skb freeing outside the lock in the dmfe driver.  It will
      decrease the lock hold time as well.
      70d67000
    • Andrew Morton's avatar
      [PATCH] Fix nc98 partition parser link error · cb970405
      Andrew Morton authored
      Fix this:
      
      fs/partitions/nec98.c:169: undefined reference to `parse_bsd'
      cb970405
    • Andrew Morton's avatar
      [PATCH] 3c574_cs fixes · 0f23a3a8
      Andrew Morton authored
      - It was doing spin_lock_irqsave()/spin_unlock()
      
      - Can't free the skb inside local_irq_save(): kfree_skb ends up running
        local_bh_enable(), which enables interrupts.
      0f23a3a8
  2. 19 Apr, 2003 6 commits
  3. 18 Apr, 2003 17 commits
  4. 17 Apr, 2003 7 commits
  5. 18 Apr, 2003 1 commit
  6. 17 Apr, 2003 1 commit