[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45B584E7.30407@in.ibm.com>
Date: Tue, 23 Jan 2007 09:15:43 +0530
From: Balbir Singh <balbir@...ibm.com>
To: Christoph Lameter <clameter@....com>
CC: Andrea Arcangeli <andrea@...e.de>,
Niki Hammler <mailinglists@...aq.net>,
linux-kernel@...r.kernel.org,
Vaidyanathan Srinivasan <svaidy@...ux.vnet.ibm.com>
Subject: Re: Why active list and inactive list?
Christoph Lameter wrote:
> On Tue, 23 Jan 2007, Balbir Singh wrote:
>
>> When you unmap or map, you need to touch the pte entries and know the
>> pages involved, so shouldn't be equivalent to a list_del and list_add
>> for each page impacted by the map/unmap operation?
>
> When you unmap and map you must currently get exclusive access to the
> cachelines of the pte and the cacheline of the page struct. If we use a
> list_move on page->lru then we have would have to update pointers in up
> to 4 other page structs. Thus we need exclusive access to 4 additional
> cachelines. This triples the number of cachelines touched. Instead of 2
> cachelines we need 6.
>
>
Yes, good point, I see what you mean in terms of impact. But the trade
off could come from shrink_active_list() which does
list_del(&page->lru)
if (!reclaim_mapped && other_conditions)
list_add(&page->lru, &l_active);
...
In the case mentioned above, we would triple the cachlines when an area
is mapped/unmapped (which might be acceptable since it is a state change
for the page ;) ). In the trade-off I mentioned, it would happen
everytime reclaim is invoked and it has nothing to do with a page changing
state.
Did I miss something?
--
Balbir Singh
Linux Technology Center
IBM, ISTL
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists