lkml.org 
[lkml]   [2015]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCHv5 19/28] mm: store mapcount for compound page separately
On 05/19/2015 05:55 AM, Kirill A. Shutemov wrote:
>>
>>> + if (compound_mapcount(page))
>>> + ret += compound_mapcount(page) - 1;
>>
>> This looks like it could uselessly duplicate-inline the code for
>> compound_mapcount(). It has atomics and smp_rmb() so I'm not sure if the
>> compiler can just "squash it".
>
> Good point. I'll rework this.

Hm BTW I think same duplication of compound_head() happens in
lock_page(), where it's done by trylock_page() and then __lock_page(),
which is also in different compilation unit to make things worse.

I can imagine it's solvable by introducing variants of __lock_page* that
expect to be already given a head page... if it's worth the trouble.

>>
>> On the other hand, a simple atomic read that was page_mapcount() has turned
>> into multiple atomic reads and flag checks. What about the stability of the
>> whole result? Are all callers ok? (maybe a later page deals with it).
>
> Urghh.. I'll look into this.
>



\
 
 \ /
  Last update: 2015-05-19 11:41    [W:0.063 / U:1.580 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site