Re: [PATCHv5 19/28] mm: store mapcount for compound page separately

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]