get_user_pages() cache issues on ARM

From: Miklos Szeredi
Date: Sat Sep 30 2006 - 13:02:28 EST

Hi Russell,

The get_user_pages() vs dcache coherency issue still seems to be
unresolved on ARM.

See flush_anon_page() and flush_kernel_dcache_page() in
Documentation/cachetlb.txt and their implementation on PARISC.

Can you please take a look at this?


------- Start of forwarded message -------
Date: Sun, 24 Sep 2006 20:20:15 -0700
From: "Dave Hylands" <dhylands@xxxxxxxxx>
To: "Miklos Szeredi" <miklos@xxxxxxxxxx>
Subject: Re: [fuse-devel] ARM cross build issues
Cc: guinan@xxxxxxxxxxxxxx, fuse-devel@xxxxxxxxxxxxxxxxxxxxx
In-Reply-To: <E1GR461-0003WJ-00@xxxxxxxxxxxxxxxxxxxxxx>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi Miklos,

Sending this to the list...

> > 2.6.18 still calls get_user_pages will the NULL vma. I verified that
> > the flush_cache_all patch made things work for me under 2.6.11
> > (big-endian ARM) and 2.6.17 (little-endian ARM).
> get_user_pages() should do the right thing on it's own. So passing
> NULL vma is the normal thing to do, and the workaround should not be
> needed.
> So if 2.6.18 works without the patch, then it's fixed, otherwise not.

So 2.6.18 does NOT work on the ARM using the fuse.ko that gets built from the
kernel sources.

If I add the flush_cache_all() patch or the DCAHCE_BUG patch, then
everything works fine.

This was tested on my gumstix, which is an ARM XScale PXA255 running
in little-endian mode, using 2.6.18. I was using the hello filesystem
for the tests.

- --
Dave Hylands
Vancouver, BC, Canada
------- End of forwarded message -------
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at