On 04/11/2017 08:08 PM, Alexey Kuznetsov wrote:
> Hello!
> 
> Good job!
> 
> Before submitting this to mainstream look
> at truncate_inode_pages.
> 
> It has condition:
> 
> if (mapping->nrpages == 0 && mapping->nrexceptional == 0)
>                 return;
> 
> I have no idea what are those exceptions are, but it definitely
> looks illegal to check only for nrpages in invalidate_inode_pages2_range,
> it clears exceptional entries as well.
> 

AFAIU exceptional entries are either dax entires, they store sector number and
entry size (PMD, PTE,...), or they used by workingset code to store some 
information
about page eviction. 

Given that, invalidate_inode_pages2_range() supposed to invalidate stale data 
in page
cache/cleancache (per my understanding at least) I would say that 
invalidate_inode_pages2_range()
shouldn't remove exceptional entries. But not sure that my understanding is 
correct,
so I'm going to add ->nrexceptional check in v2, but will ask about this 
ambiguousity
upstream folks.

> Also I see no point in invalidation of cleancache on entry
> to these routines. It is waste of time, cleancache will be
> repopulated by invalidation (which it stupid, of course).
> It is enough to do this once at exit.
> 

Agreed.
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to