Messages in this thread | | | Subject | Re: AZFS file system proposal | From | Benjamin Herrenschmidt <> | Date | Wed, 09 Jul 2008 16:48:06 +1000 |
| |
> Cc:'ing some more people that might have more of a clue on this question. > _memcpy_fromio does a "sync" at the start and an "eieio" at the end. > IFAICT, neither are needed here because the source is always memory. > > It also handles unaligned memory accesses, which copy_to_user should > also do correctly, so it *looks* like it should work with just a > copy_to_user, but it still feels wrong to use an __iomem pointer > as the source for a copy_to_user. > > Any ideas?
It's a bit nasty yes. The problem is that copy_to/from_user might do cache tricks which will blow up if the area is non-cacheable.
We have a similar problem with Mark's work on faster copy functions since things like sys_read() can be called on userspace non-cacheable memory such as spu local stores.
So I'm not 100% sure what the right approach here. Our copy_tofrom_user today does dcbt on the source for example, which I hope only turns into a no-op... The risk is if we start using dcbz.
Cheers, Ben.
| |