Re: Race condition between putback_lru_page and mem_cgroup_move_list

Lee Schermerhorn
2008-08-07T11:27:14Z

On Thu, 2008-08-07 at 20:00 +0900, KOSAKI Motohiro wrote:
> Hi
>
> > If you mean the "active/inactive list transition" in
> > shrink_[in]active_list(), these are already batched under zone lru_lock
> > with batch size determined by the 'release pages' pvec. So, I think
> > we're OK here.
>
> No.
>
> AFAIK shrink_inactive_list batched zone->lru_lock,
> but it doesn't batched mz->lru_lock.
>
> then, spin_lock_irqsave is freqently called.

Ah, I see what you mean. Yes, the mem cgroup zone lru_lock will be
cycled frequently as each back of pages is put back during reclaim. So,
you'd like to eliminate the mz lru_lock, move the mem cgroup zone info
under the corresponding zone lru_lock and move the page between memcg
lists atomically with adding to global lru lists?

Lee