Messages in this thread | | | Date | Mon, 18 Mar 2013 19:42:34 +0800 | From | Ric Mason <> | Subject | Re: [PATCHv2, RFC 00/30] Transparent huge page cache |
| |
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@linux.intel.com> >>>>>> >>>>>> 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. >
| |