On Wed, 10 Apr 2013, Joonsoo Kim wrote: > Hello, Christoph. > > On Tue, Apr 09, 2013 at 02:28:06PM +0000, Christoph Lameter wrote: > > On Tue, 9 Apr 2013, Joonsoo Kim wrote: > > > > > Currently, freed pages via rcu is not counted for reclaimed_slab, because > > > it is freed in rcu context, not current task context. But, this free is > > > initiated by this task, so counting this into this task's reclaimed_slab > > > is meaningful to decide whether we continue reclaim, or not. > > > So change code to count these pages for this task's reclaimed_slab. > > > > slab->reclaim_state guides the reclaim actions in vmscan.c. With this > > patch slab->reclaim_state could get quite a high value without new pages > > being > > available for allocation. slab->reclaim_state will only be updated > > when the RCU period ends. > > Okay. > > In addition, there is a little place who use SLAB_DESTROY_BY_RCU. > I will drop this patch[2/3] and [3/3] for next spin.
What you have discoverd is an issue that we have so far overlooked. Could you add comments to both places explaining the situation? RCU is used for some inode and the dentry cache. Failing to account for these frees could pose a problem. One solution would be to ensure that we get through an RCU quiescent period in the slabs reclaim. If we can ensure that then your patch may be ok. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/