]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
kmem slab magazine ageing deadlock
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 17 Feb 2009 23:52:18 +0000 (15:52 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 17 Feb 2009 23:52:18 +0000 (15:52 -0800)
commit9b1b8e4c2459a02fc230cdda65b13908f263fd36
treea07c353f6d12800d37ad8da669e0975649cc8c5a
parent1a944a7d0b1d9e62c7ac34d9041300007a656a17
kmem slab magazine ageing deadlock

- The previous magazine ageing sceme relied on the on_each_cpu()
  function to call spl_magazine_age() on each cpu.  It turns out
  this could deadlock with do_flush_tlb_all() which also relies
  on the IPI based on_each_cpu().  To avoid this problem a per-
  magazine delayed work item is created and indepentantly
  scheduled to the correct cpu removing the need for on_each_cpu().
- Additionally two unused fields were removed from the type
  spl_kmem_cache_t, they were hold overs from previous cleanup.
    - struct work_struct work
    - struct timer_list timer
include/sys/kmem.h
module/spl/spl-kmem.c