lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 3 Nov 2015 09:53:17 +0900 From: Minchan Kim <minchan@...nel.org> To: Michal Hocko <mhocko@...nel.org> CC: Andrew Morton <akpm@...ux-foundation.org>, linux-kernel@...r.kernel.org, linux-mm@...ck.org, Michael Kerrisk <mtk.manpages@...il.com>, linux-api@...r.kernel.org, Hugh Dickins <hughd@...gle.com>, Johannes Weiner <hannes@...xchg.org>, zhangyanfei@...fujitsu.com, Rik van Riel <riel@...hat.com>, Mel Gorman <mgorman@...e.de>, KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>, Jason Evans <je@...com>, Daniel Micay <danielmicay@...il.com>, "Kirill A. Shutemov" <kirill@...temov.name>, yalin.wang2010@...il.com, Shaohua Li <shli@...nel.org> Subject: Re: [PATCH 4/8] mm: free swp_entry in madvise_free On Fri, Oct 30, 2015 at 01:28:14PM +0100, Michal Hocko wrote: > On Fri 30-10-15 16:01:40, Minchan Kim wrote: > > When I test below piece of code with 12 processes(ie, 512M * 12 = 6G > > consume) on my (3G ram + 12 cpu + 8G swap, the madvise_free is siginficat > > slower (ie, 2x times) than madvise_dontneed. > > > > loop = 5; > > mmap(512M); > > while (loop--) { > > memset(512M); > > madvise(MADV_FREE or MADV_DONTNEED); > > } > > > > The reason is lots of swapin. > > > > 1) dontneed: 1,612 swapin > > 2) madvfree: 879,585 swapin > > > > If we find hinted pages were already swapped out when syscall is called, > > it's pointless to keep the swapped-out pages in pte. > > Instead, let's free the cold page because swapin is more expensive > > than (alloc page + zeroing). > > > > With this patch, it reduced swapin from 879,585 to 1,878 so elapsed time > > > > 1) dontneed: 6.10user 233.50system 0:50.44elapsed > > 2) madvfree: 6.03user 401.17system 1:30.67elapsed > > 2) madvfree + below patch: 6.70user 339.14system 1:04.45elapsed > > > > Acked-by: Hugh Dickins <hughd@...gle.com> > > Signed-off-by: Minchan Kim <minchan@...nel.org> > > Yes this makes a lot of sense. > > Acked-by: Michal Hocko <mhocko@...e.com> Thanks! > > One nit below. > > > --- > > mm/madvise.c | 26 +++++++++++++++++++++++++- > > 1 file changed, 25 insertions(+), 1 deletion(-) > > > > diff --git a/mm/madvise.c b/mm/madvise.c > > index 640311704e31..663bd9fa0ae0 100644 > > --- a/mm/madvise.c > > +++ b/mm/madvise.c > > @@ -270,6 +270,8 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr, > > spinlock_t *ptl; > > pte_t *pte, ptent; > > struct page *page; > > + swp_entry_t entry; > > This could go into !pte_present if block Sure, I fixed. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists