1. 09 Apr, 2003 16 commits
    • Andrew Morton's avatar
      [PATCH] epoll cross-thread deletion fix · 92a88ec9
      Andrew Morton authored
      From: Davide Libenzi <davidel@xmailserver.org>
      
      
      This fixes a bug that might happen having a thread doing epoll_wait() with
      another thread doing epoll_ctl(EPOLL_CTL_DEL) and close(). The fast check
      inside eventpoll_release() is good to not effect performace of code not
      using epoll, but it requires get_file() to be called ( that can be avoided
      by dropping the fast check ). I opted to keep the fast check and to have
      epoll to call get_file() before the event send loop. I tested it on UP and
      2SMP with a bug-exploiting program provided by @pivia.com ( thx to them )
      and it looks fine. I also update the 2.4.20 epoll patch with this fix :
      92a88ec9
    • Andrew Morton's avatar
      [PATCH] Allow panics and reboots at oops time. · 7b78878b
      Andrew Morton authored
      From: Russell Miller <rmiller@duskglow.com>
      
      A BUG or an oops will often leave a machine in a useless state.  There is no
      way to remotely recover the machine from that state.
      
      The patch adds a /proc/sys/kernel/panic_on_oops sysctl which, when set, will
      cause the x86 kernel to call panic() at the end of the oops handler.  If the
      user has also set /proc/sys/kernel/panic then a reboot will occur.
      
      The implementation will try to sleep for a while before panicing so the oops
      info has a chance of hitting the logs.
      
      The implementation is designed so that other architectures can easily do this
      in their oops handlers.
      7b78878b
    • Andrew Morton's avatar
      [PATCH] task_vsize() speedup · 2040ae81
      Andrew Morton authored
      From: William Lee Irwin III <wli@holomorphy.com>
      
      task_vsize() mysteriously appeared on my profiles.  This should remove it
      from them by using the already in-use elsewhere for rlimit checks
      mm->total_vm for the benefit of O(1) cachelines touched.
      2040ae81
    • Andrew Morton's avatar
      [PATCH] JBD pasting warning fix · e1851a6c
      Andrew Morton authored
      From: "Hua Zhong" <hzhong@cisco.com>
      
      Fix a token-pasting warning from recent gcc's
      e1851a6c
    • Andrew Morton's avatar
      [PATCH] fix unuse_pmd fixme · 6f924b79
      Andrew Morton authored
      From: Hugh Dickins <hugh@veritas.com>
      
      try_to_unuse drop mmlist_lock across unuse_process (with pretty dance
      of atomic_incs and mmputs of various mmlist markers, and a polite new
      cond_resched there), so unuse_process can pte_chain_alloc(GFP_KERNEL)
      and pass that down and down and down and down to unuse_pte: which
      cannot succeed more than once on a given mm (make that explicit by
      returning back up once succeeded).  Preliminary checks moved up from
      unuse_pte to unuse_pmd, and done more efficiently (avoid that extra
      pte_file test added recently), swapoff spends far too long in here.
      Updated locking comments and references to try_to_swap_out.
      6f924b79
    • Andrew Morton's avatar
      [PATCH] rmap comments · 9549db1d
      Andrew Morton authored
      From: Hugh Dickins <hugh@veritas.com>
      
      Update a few locking comments in rmap.c.
      9549db1d
    • Andrew Morton's avatar
      [PATCH] Replace the radix-tree rwlock with a spinlock · 8e98702b
      Andrew Morton authored
      Spinlocks don't have a buslocked unlock and are faster.
      
      On a P4, time to write a 4M file with 4M one-byte-write()s:
      
      Before:
      	0.72s user 5.47s system 99% cpu 6.227 total
      	0.76s user 5.40s system 100% cpu 6.154 total
      	0.77s user 5.38s system 100% cpu 6.146 total
      
      After:
      	1.09s user 4.92s system 99% cpu 6.014 total
      	0.74s user 5.28s system 99% cpu 6.023 total
      	1.03s user 4.97s system 100% cpu 5.991 total
      8e98702b
    • Andrew Morton's avatar
      [PATCH] misc rmap speedups · df921d4d
      Andrew Morton authored
      Even a BUG_ON() makes a measurable difference.  So remove some gratuitous
      ones which will just trigger a null pointer deref anyway.
      
      Also remove some debug code which isn't really being maintained any more.
      
      Also replace (effectively):
      
      	test_bit(N, foo);
      	set_bit(N, foo);
      
      with
      
      	set_bit(N, foo);
      	test_bit(N, foo);
      
      In the first case we'll go onto the bus twice: once for the cache miss and
      once to get exclusive write access.  In the second case we only go on the bus
      once.  I think.  Certainly this trick chaved 40% off the cost of
      shrink_list() when I did it there...
      
      This patch is worth 1% or so on the bash script testing.
      df921d4d
    • Andrew Morton's avatar
      [PATCH] speed up rmap searching · 3523bd55
      Andrew Morton authored
      several functions in rmap.c are searching the ptes[] array fo find the first
      non-null entry.
      
      Despite the fact tha the whole lot is in L1 cache, it is expensive,
      especially on 128-byte cacheline machines.
      
      We can encode the index of the first non-null pte entry inside the
      pte_chain's `next' field and remove those searches altogether.
      
      This reduces the rmap CPU tax by about 25% on a P4.  For a total runtime
      reduction of around 5% in the bash-script intensive test which I use.
      3523bd55
    • Andrew Morton's avatar
      [PATCH] remove nr_reverse_maps VM accounting · 596c3a20
      Andrew Morton authored
      Maintaining the `nr_reverse_maps' provides makes a small but
      measurable decrease in page_add_rmap() overhead.
      
      I don't think it's a very useful metric, and it can be sort-of inferred from
      slabinfo.
      596c3a20
    • Andrew Morton's avatar
      [PATCH] null-terminate the kmalloc tables · 7ffbbaf2
      Andrew Morton authored
      From: David Mosberger <davidm@napali.hpl.hp.com>
      
      The cache_sizes array needs to be NULL terminated, otherwise an oversized
      kmalloc request runs off the end of the table.
      7ffbbaf2
    • Andrew Morton's avatar
      [PATCH] Enforce gcc-2.95 as the minimum compiler requirement · 545e7a03
      Andrew Morton authored
      Now that sparc64 is using gcc-3.x we can disallow gcc-2.91, etc.
      
      Documentation/Changes already says 2.95.3, which is working fine for me.
      
      With this change, we no longer require that per-cpu data definitions be
      initialised.  That was a workaround for a bug in older gccs.  So remove the
      build infrastructure which was checking for that.
      
      Also, mention that nfs-utils-1.0.3 is required.  It isn't required yet, but
      will be once we enable larger dev_t: there is an interface for exportfs which
      passes dev_t's into the kernel which breaks with larger dev_t.  That
      interface is old, deprecated and is not used in nfs-utils-1.0.3.
      545e7a03
    • Andrew Morton's avatar
      [PATCH] fix wait_on_buffer() debug code · 3c45e4d6
      Andrew Morton authored
      The wait_on_buffer() debug code is generating false warnings when called from
      __block_prepare_write().  It is legal to wait on a zero-ref buffer when its
      page is locked.  The page lock keeps try_to_free_buffers() away.
      
      This debug code hasn't found any bugs yet.
      3c45e4d6
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.5 · faedca65
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      faedca65
    • Linus Torvalds's avatar
      da220b09
    • Linus Torvalds's avatar
      User pointers are not just in another address space, they also · d97a291a
      Linus Torvalds authored
      must never be dereferenced directly. Make that clear in the
      attribute.
      d97a291a
  2. 08 Apr, 2003 24 commits