xfs
[Top] [All Lists]

Re: [PATCH 09/19] list_lru: per-node list infrastructure

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 09/19] list_lru: per-node list infrastructure
From: Glauber Costa <glommer@xxxxxxxxxxxxx>
Date: Thu, 17 Jan 2013 16:51:03 -0800
Cc: <linux-kernel@xxxxxxxxxxxxxxx>, <linux-fsdevel@xxxxxxxxxxxxxxx>, <linux-mm@xxxxxxxxx>, <xfs@xxxxxxxxxxx>, Greg Thelen <gthelen@xxxxxxxxxx>, Ying Han <yinghan@xxxxxxxxxx>, Suleiman Souhlal <suleiman@xxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20130118001029.GK2498@dastard>
References: <1354058086-27937-1-git-send-email-david@xxxxxxxxxxxxx> <1354058086-27937-10-git-send-email-david@xxxxxxxxxxxxx> <50F6FDC8.5020909@xxxxxxxxxxxxx> <20130116225521.GF2498@dastard> <50F7475F.90609@xxxxxxxxxxxxx> <20130117042245.GG2498@dastard> <50F84118.7030608@xxxxxxxxxxxxx> <20130118001029.GK2498@dastard>
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0
On 01/17/2013 04:10 PM, Dave Chinner wrote:
> and we end up with:
> 
> lru_add(struct lru_list *lru, struct lru_item *item)
> {
>       node_id = min(object_to_nid(item), lru->numnodes);
>       
>       __lru_add(lru, node_id, &item->global_list);
>       if (memcg) {
>               memcg_lru = find_memcg_lru(lru->memcg_lists, memcg_id)
>               __lru_add_(memcg_lru, node_id, &item->memcg_list);
>       }
> }

A follow up thought: If we have multiple memcgs, and global pressure
kicks in (meaning none of them are particularly under pressure),
shouldn't we try to maintain fairness among them and reclaim equal
proportions from them all the same way we do with sb's these days, for
instance?

I would argue that if your memcg is small, the list of dentries is
small: scan it all for the nodes you want shouldn't hurt.

if the memcg is big, it will have per-node lists anyway.

Given that, do we really want to pay the price of two list_heads in the
objects?


<Prev in Thread] Current Thread [Next in Thread>