Messages in this thread | | | Date | Mon, 4 Aug 2008 16:53:37 +1000 | From | "Dave Airlie" <> | Subject | Re: [patch 0/2] reduce agpgart memory allocation time |
| |
On Mon, Aug 4, 2008 at 4:51 PM, Shaohua Li <shaohua.li@intel.com> wrote: > agpgart memory allocation is quite expensive. For each page agpgart > allocated, it changes the page to uc and as result flush tlb/cache for > the page. In my test, Intel Xorg driver takes about 0.2s for a 32M 3D > fb, and the total time for memory allocation is about 0.33s when intel > xorg driver initializes. Below patches fix the gap. It can reduce the > time to 0.03s, so xserver can boot 0.3s faster. >
This approach is quite like what was there before, and I think was objected to on the grounds the caller might forget to call the flush and leave the system in an inconsistent state. Personally I've never bought that argument, its not like we have thousands of users for this API.
I proposed an alternative interface but I failed to get it merged and ran out of time http://www.ussg.iu.edu/hypermail/linux/kernel/0804.3/1112.html
I was trying to get the cpa interface to allow arrays of pages to be passed in, I was then going to change AGP like http://git.kernel.org/?p=linux/kernel/git/airlied/agp-2.6.git;a=shortlog;h=agp-pageattr2
I really should fix those patches up at some point, feel free to base a system on those if someone objects to the method with the call site doing the flush.
Dave.
| |