From: Keith W. <ke...@tu...> - 2005-12-08 13:35:17
|
Alan Cox wrote: > On Iau, 2005-12-08 at 19:52 +0800, Austin Yuan wrote: > >>buffer. Because the interface of "alloc_by_type" only receives a >>simple parameter "type", here I hide the user space address into >>"type" and re-get it in alloc_userspace_memory. > > > That should probably be fixed by extending the API to pass both > > >>I use this interface to easily implement XAA readpixmap/imagewrite >>driver interfaces, and get a better performance. Here, I didn't attach >>the patch for i810 driver. I just want to get some comments about it, >>and if you think it makes sense, I'd like to make it more generic. >> >>Any comments are appreciated, thanks. > > > > The one thing I don't understand looking at this is that I understood > AGP pages should be marked uncached. However user space pages may exist > in many mappings and the CPU also requires all mappings of a page are > consistent. > > Does i8xx need the page uncached or is it enough to wbinvd the pages in > question on writing and invalidate them before reading, or does the i8xx > in fact take full part in the cache coherency ? I believe the hardware can deal with both cases, and has rules for what uses each type of memory can be applied to. I think that it's ok to use snooped memory (in their parlance) for upload type tasks, but not for things like render destinations. I'll try and be more specific when I get time to review the docs. I'm pleased to see someone has taken on this much-talked about task. Austin - have you gotten any feel for how quick this sort of "upload" might be? Keith |