Re: [PATCH] mm/fadvise: discard partial pages iff endbyte is also eof

From: åå(Caspar)
Date: Thu Jan 04 2018 - 06:38:22 EST




On 2018/1/4 19:34, Mel Gorman wrote:
On Thu, Jan 04, 2018 at 02:13:43PM +0800, ??????(Caspar) wrote:


On 2018/1/3 18:48, Mel Gorman wrote:
On Wed, Jan 03, 2018 at 02:53:43PM +0800, ??????(Caspar) wrote:


?? 2017??12??23????12:16?????? <shidao.ytt@xxxxxxxxxxxxxxx> ??????

From: "shidao.ytt" <shidao.ytt@xxxxxxxxxxxxxxx>

in commit 441c228f817f7 ("mm: fadvise: document the
fadvise(FADV_DONTNEED) behaviour for partial pages") Mel Gorman
explained why partial pages should be preserved instead of discarded
when using fadvise(FADV_DONTNEED), however the actual codes to calcuate
end_index was unexpectedly wrong, the code behavior didn't match to the
statement in comments; Luckily in another commit 18aba41cbf
("mm/fadvise.c: do not discard partial pages with POSIX_FADV_DONTNEED")
Oleg Drokin fixed this behavior

Here I come up with a new idea that actually we can still discard the
last parital page iff the page-unaligned endbyte is also the end of
file, since no one else will use the rest of the page and it should be
safe enough to discard.

+akpm...

Hi Mel, Andrew:

Would you please take a look at this patch, to see if this proposal
is reasonable enough, thanks in advance!


I'm backlogged after being out for the Christmas. Superficially the patch
looks ok but I wondered how often it happened in practice as we already
would discard files smaller than a page on DONTNEED. It also requires

Actually, we would *not*. Let's look into the codes.


You're right of course. I suggest updating the changelog with what you
found and the test case. I think it's reasonable to special case the
discarding of partial pages if it's the end of a file with the potential
addendum of checking if the endbyte is past the end of the file. The man
page should also be updated.

Sure, will do and send out v2.

Thanks,
Caspar