Messages in this thread | | | Date | Tue, 29 May 2007 12:59:12 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH] MM: implement MADV_FREE lazy freeing of anonymous memory |
| |
Nick Piggin wrote: > Rik van Riel wrote: >> With lazy freeing of anonymous pages through MADV_FREE, performance of >> the MySQL sysbench workload more than doubles on my quad-core system. > > OK, I've run some tests on a 16 core Opteron system, both sysbench with > MySQL 5.33 (set up as described in the freebsd vs linux page), and with > ebizzy. > > What I found is that, on this system, MADV_FREE performance improvement > was in the noise when you look at it on top of the MADV_DONTNEED glibc > and down_read(mmap_sem) patch in sysbench.
It turns out that setting the pte accessed bit in hardware can apparently take a few thousand CPU cycles - 3000 cycles is the number I've heard for one CPU family.
This is a similar number of cycles as is needed to zero out a page. Giving a cache hot page to userspace could cancel out the rest of the cost of the page fault handling.
Lets stick with the simpler MADV_DONTNEED code for now and save the page flag for something else...
-- Politics is the struggle between those who want to make their country the best in the world, and those who believe it already is. Each group calls the other unpatriotic. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |