[parisc-linux] memory management issues

Ollie Wild aaw at google.com
Thu May 3 02:11:04 MDT 2007


Thanks, James.

> The first thing this does is
> immediately decohere the page because we zero it through the user
> mapping before adding it to the vma.  Fortunately get_user_pages()
> should make it coherent again.

This is the critical insight I was missing.  I was assuming the page
was unaccessed prior to mapping it into the kernel.  The zeroing
hadn't occurred to me.  Unfortunately, it looks like get_user_pages()
doesn't make it coherent again.  Calling flush_kernel_dcache_page()
alone fails to resolve the problem.  Calling flush_cache_page() after
kmap() and flush_kernel_dcache_page() before kunmap() does.

Is this a bug in get_user_pages()?  Should it be calling
flush_cache_page() directly?

By the way, I've left my kernel running on iodine.  Try running:

    ulimit -s unlimited
    ls -l `find /usr -type f`

Ollie



More information about the parisc-linux mailing list