1. 02 Jul, 2003 18 commits
    • Andrew Morton's avatar
      [PATCH] fix lost-tick compensation corner-case · 32717367
      Andrew Morton authored
      From: john stultz <johnstul@us.ibm.com>
      
      This patch catches a corner case in the lost-tick compensation code.
      
      There is a check to see if we overflowed between reads of the two time
      sources, however should the high res time source be slightly slower then
      what we calibrated, its possible to trigger this code when no ticks have
      been lost.
      
      This patch adds an extra check to insure we have seen more then one tick
      before we check for this overflow.  This seems to resolve the remaining
      "time doubling" issues that I've seen reported.
      32717367
    • Andrew Morton's avatar
      [PATCH] fix lost_tick detector for speedstep · 48ecce4b
      Andrew Morton authored
      From: john stultz <johnstul@us.ibm.com>
      
      The patch tries to resolve issues caused by running the TSC based lost
      tick compensation code on CPUs that change frequency (speedstep, etc).
      
      Should the CPU be in slow mode when calibrate_tsc() executes, the kernel
      will assume we have so many cycles per tick.  Later when the cpu speeds up,
      the kernel will start noting that too many cycles have past since the last
      interrupt.  Since this can occasionally happen, the lost tick compensation
      code then tries to fix this by incrementing jiffies.  Thus every tick we
      end up incrementing jiffies many times, causing timers to expire too
      quickly and time to rush ahead.
      
      This patch detects when there has been 100 consecutive interrupts where we
      had to compensate for lost ticks.  If this occurs, we spit out a warning
      and fall back to using the PIT as a time source.
      
      I've tested this on my speedstep enabled laptop with success, and others
      laptop users seeing this problem have reported it works for them.  Also to
      ensure we don't fall back to the slower PIT too quickly, I tested the code
      on a system I have that looses ~30 ticks about every second and it can
      still manage to use the TSC as a good time source.
      
      This solves most of the "time doubling" problems seen on laptops.
      Additionally this revision has been modified to use the cleanups made in
      rename-timer_A1.
      48ecce4b
    • Andrew Morton's avatar
      [PATCH] timer renaming and cleanups · c8cf1ab9
      Andrew Morton authored
      From: john stultz <johnstul@us.ibm.com>
      
      This renames the bad "timer" variable to "cur_timer" and moves externs to
      .h files.
      c8cf1ab9
    • Andrew Morton's avatar
      [PATCH] Report detached thread exit to the debugger · 4ef892a0
      Andrew Morton authored
      From: Daniel Jacobowitz <dan@debian.org>
      
      Right now, CLONE_DETACHED threads silently vanish from GDB's sight when
      they exit.  This patch lets the thread report its exit to the debugger, and
      then be auto-reaped as soon as it is collected, instead of being reaped as
      soon as it exits and not reported at all.
      
      GDB works either way, but this is more correct and will be useful for some
      later GDB patches.
      4ef892a0
    • Andrew Morton's avatar
      [PATCH] Make CONFIG_TC35815 depend on CONFIG_TOSHIBA_JMR3927 · a7fd6e5d
      Andrew Morton authored
      From: Adrian Bunk <bunk@fs.tum.de>
      
      I got an error at the final linking with CONFIG_TC35815 enabled since
      the variables tc_readl and tc_writel are not available.
      
      The only place where they are defined is arch/mips/pci/ops-jmr3927.c.
      a7fd6e5d
    • Andrew Morton's avatar
      [PATCH] block_llseek(): remove lock_kernel() · 7e6e9012
      Andrew Morton authored
      Replace it with the blockdev inode's i_sem.  And we only really need that for
      atomic access to file->f_pos.
      7e6e9012
    • Andrew Morton's avatar
      [PATCH] remove lock_kernel() from file_ops.flush() · e90f7e03
      Andrew Morton authored
      Rework the file_ops.flush() API sothat it is no longer called under
      lock_kernel().  Push lock_kernel() down to all impementations except CIFS,
      which doesn't want it.
      e90f7e03
    • Andrew Morton's avatar
      [PATCH] procfs: remove some unneeded lock_kernel()s · 10be509c
      Andrew Morton authored
      From: William Lee Irwin III <wli@holomorphy.com>
      
      Remove spurious BKL acquisitions in /proc/.  The BKL is not required to
      access nr_threads for reporting, and get_locks_status() takes it
      internally, wrapping all operations with it.
      10be509c
    • Andrew Morton's avatar
      [PATCH] nommu vmtruncate: remove lock_kernel() · 1fe128d2
      Andrew Morton authored
      lock_kernel() need not be held across truncate.
      1fe128d2
    • Andrew Morton's avatar
      [PATCH] inode_change_ok(): remove lock_kernel() · 3bd404cf
      Andrew Morton authored
      `attr' is on the stack, and the inode's contents can change as soon as we
      return from inode_change_ok() anyway.  I can't see anything which is actually
      being locked in there.
      3bd404cf
    • Andrew Morton's avatar
      [PATCH] ramfs: use rgeneric_file_llseek · c94f7f38
      Andrew Morton authored
      Teach ramfs to use generic_file_llseek: default_llseek takes lock_kernel().
      c94f7f38
    • Andrew Morton's avatar
      [PATCH] NUMA memory reporting fix · d4388840
      Andrew Morton authored
      From: Dave Hansen <haveblue@us.ibm.com>
      
      The current numa meminfo code exports (via sysfs) pgdat->node_size, as
      totalram.  This variable is consistently used elsewhere to mean "the number
      of physical pages that this particular node spans".  This is _not_ what we
      want to see from meminfo, which is: "how much actual memory does this node
      have?"
      
      The following patch removes pgdat->node_size, and replaces it with
      ->node_spanned_pages.  This is to avoid confusion with a new variable,
      node_present_pages, which is the _actual_ value that we want to export in
      meminfo.  Most of the patch is a simple s/node_size/node_spanned_pages/.
      The node_size() macro is also removed, and replaced with new ones for
      node_{spanned,present}_pages() to avoid confusion.
      
      We were bitten by this problem in this bug:
      	http://bugme.osdl.org/show_bug.cgi?id=818
      
      Compiled and tested on NUMA-Q.
      d4388840
    • Andrew Morton's avatar
      [PATCH] page unmapping debug · 98eb235b
      Andrew Morton authored
      From: Manfred Spraul <manfred@colorfullife.com>
      
      Manfred's latest page unmapping debug patch.
      
      The patch adds support for a special debug mode to both the page and the slab
      allocator: Unused pages are removed from the kernel linear mapping.  This
      means that now any access to freed memory will cause an immediate exception.
      Right now, read accesses remain totally unnoticed and write accesses may be
      catched by the slab poisoning, but usually far too late for a meaningfull bug
      report.
      
      The implementation is based on a new arch dependant function,
      kernel_map_pages(), that removes the pages from the linear mapping.  It's
      right now only implemented for i386.
      
      Changelog:
      
      - Add kernel_map_pages() for i386, based on change_page_attr.  If
        DEBUG_PAGEALLOC is not set, then the function is an empty stub.  The stub
        is in <linux/mm.h>, i.e.  it exists for all archs.
      
      - Make change_page_attr irq safe.  Note that it's not fully irq safe due to
        the lack of the tlb flush ipi, but it's good enough for kernel_map_pages().
         Another problem is that kernel_map_pages is not permitted to fail, thus
        PSE is disabled if DEBUG_PAGEALLOC is enabled
      
      - use kernel_map pages for the page allocator.
      
      - use kernel_map_pages for the slab allocator.
      
        I couldn't resist and added additional debugging support into mm/slab.c:
      
        * at kfree time, the complete backtrace of the kfree caller is stored
          in the freed object.
      
        * a ptrinfo() function that dumps all known data about a kernel virtual
          address: the pte value, if it belongs to a slab cache the cache name and
          additional info.
      
        * merging of common code: new helper function obj_dbglen and obj_dbghdr
          for the conversion between the user visible object pointers/len and the
          actual, internal addresses and len values.
      98eb235b
    • Andrew Morton's avatar
      [PATCH] move_vma() make_pages_present() fix · 17003453
      Andrew Morton authored
      From: Hugh Dickins <hugh@veritas.com>
      
      mremap's move_vma VM_LOCKED case was still wrong.
      
      If the do_munmap unmaps a part of new_vma, then its vm_start and vm_end
      from before cannot both be the right addresses for the make_pages_present
      range, and may BUG() there.
      
      We need [new_addr, new_addr+new_len) to be locked down; but
      move_page_tables already transferred the locked pages [new_addr,
      new_addr+old_len), and they're either held in a VM_LOCKED vma throughout,
      or temporarily in no vma: in neither case can be swapped out, so no need to
      run over that range again.
      17003453
    • Dagfinn Ilmari Mannsåker's avatar
      [PATCH] Allow modular DM · eeb96479
      Dagfinn Ilmari Mannsåker authored
      With the recent fixes, io_schedule needs to be exported for modular dm
      to work.
      eeb96479
    • Linus Torvalds's avatar
      Linux 2.5.74 · 495c3da1
      Linus Torvalds authored
      495c3da1
    • Joe Thornber's avatar
      [PATCH] dm: remove bogus yields · 8732dde8
      Joe Thornber authored
      Replace a couple of bogus yields() with schedule() and io_schedule()
      respectively.
      8732dde8
    • Joe Thornber's avatar
      [PATCH] dm: fix memory leak · 2ea58325
      Joe Thornber authored
      2ea58325
  2. 01 Jul, 2003 22 commits