Re: [PATCHv2, RFC 00/30] Transparent huge page cache

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

 



On 03/18/2013 07:42 PM, Kirill A. Shutemov wrote:
Simon Jeons wrote:
Hi Kirill,
On 03/18/2013 07:19 PM, Kirill A. Shutemov wrote:
Simon Jeons wrote:
On 03/18/2013 12:03 PM, Simon Jeons wrote:
Hi Kirill,
On 03/15/2013 01:50 AM, Kirill A. Shutemov wrote:
From: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx>

Here's the second version of the patchset.

The intend of the work is get code ready to enable transparent huge page
cache for the most simple fs -- ramfs.

We have read()/write()/mmap() functionality now. Still plenty work
ahead.
One offline question.

Why set PG_mlocked to page_tail which be splited in function
__split_huge_page_refcount?
Not set, but copied from head page. Head page represents up-to-date sate
of compound page, we need to copy it to all tail pages on split.
I always see up-to-date state, could you conclude to me which state can
be treated as up-to-date? :-)
While we work with huge page we only alter flags (like mlocked or
uptodate) of head page, but not tail, so we have to copy flags to all tail
pages on split. We also need to distribute _count and _mapcount properly.
Just read the code.

Sorry, you can treat this question as an offline one and irrelevant thp. Which state of page can be treated as up-to-date?


Also why can't find where _PAGE_SPLITTING and _PAGE_PSE flags are
cleared in split_huge_page path?
The pmd is invalidated and replaced with reference to page table at the end
of __split_huge_page_map.
Since pmd is populated by page table and new flag why need
invalidated(clear present flag) before it?
Comment just before pmdp_invalidate() in __split_huge_page_map() is fairly
informative.


--
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]