1. 09 1月, 2006 1 次提交
    • C
      [PATCH] add schedule_on_each_cpu() · 15316ba8
      Christoph Lameter 提交于
      swap migration's isolate_lru_page() currently uses an IPI to notify other
      processors that the lru caches need to be drained if the page cannot be
      found on the LRU.  The IPI interrupt may interrupt a processor that is just
      processing lru requests and cause a race condition.
      
      This patch introduces a new function run_on_each_cpu() that uses the
      keventd() to run the LRU draining on each processor.  Processors disable
      preemption when dealing the LRU caches (these are per processor) and thus
      executing LRU draining from another process is safe.
      
      Thanks to Lee Schermerhorn <lee.schermerhorn@hp.com> for finding this race
      condition.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      15316ba8
  2. 29 11月, 2005 1 次提交
    • B
      [PATCH] Fix hardcoded cpu=0 in workqueue for per_cpu_ptr() calls · bce61dd4
      Ben Collins 提交于
      Tracked this down on an Ultra Enterprise 3000.  It's a 6-way machine.  Odd
      thing about this machine (and it's good for finding bugs like this) is that
      the CPU id's are not 0 based.  For instance, on my machine the CPU's are
      6/7/10/11/14/15.
      
      This caused some NULL pointer dereference in kernel/workqueue.c because for
      single_threaded workqueue's, it hardcoded the cpu to 0.
      
      I changed the 0's to any_online_cpu(cpu_online_mask), which cpumask.h
      claims is "First cpu in mask".  So this fits the same usage.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      bce61dd4
  3. 07 11月, 2005 1 次提交
    • H
      [PATCH] cpu hoptlug: avoid usage of smp_processor_id() in preemptible code · a4c4af7c
      Heiko Carstens 提交于
      Replace smp_processor_id() with any_online_cpu(cpu_online_map) in order to
      avoid lots of "BUG: using smp_processor_id() in preemptible [00000001]
      code:..." messages in case taking a cpu online fails.
      
      All the traces start at the last notifier_call_chain(...) in kernel/cpu.c.
      Since we hold the cpu_control semaphore it shouldn't be any problem to access
      cpu_online_map.
      
      The reason why cpu_up failed is simply that the cpu that was supposed to be
      taken online wasn't even there.  That is because on s390 we never know when a
      new cpu comes and therefore cpu_possible_map consists of only ones and doesn't
      reflect reality.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a4c4af7c
  4. 31 10月, 2005 1 次提交
  5. 08 9月, 2005 2 次提交
  6. 11 8月, 2005 1 次提交
    • J
      [PATCH] remove name length check in a workqueue · 60686744
      James Bottomley 提交于
      We have a chek in there to make sure that the name won't overflow
      task_struct.comm[], but it's triggering for scsi with lots of HBAs, only
      scsi is using single-threaded workqueues which don't append the "/%d"
      anyway.
      
      All too hard.  Just kill the BUG_ON.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      
      [ kthread_create() uses vsnprintf() and limits the thing, so no
        actual overflow can actually happen regardless ]
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      60686744
  7. 17 4月, 2005 2 次提交
    • J
      [PATCH] re-export cancel_rearming_delayed_workqueue · 81ddef77
      James Bottomley 提交于
      This was unexported by Arjan because we have no current users.
      
      However, during a conversion from tasklets to workqueues of the parisc led
      functions, we ran across a case where this was needed.  In particular, the
      open coded equivalent of cancel_rearming_delayed_workqueue was implemented
      incorrectly, which is, I think, all the evidence necessary that this is a
      useful API.
      Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      81ddef77
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4