Messages in this thread | | | From | "Li, Shaohua" <> | Date | Mon, 18 Aug 2008 09:21:12 +0800 | Subject | RE: [patch 2/2] reduce tlb/cache flush times of agpgart memory allocation |
| |
>-----Original Message----- >From: Arjan van de Ven [mailto:arjan@infradead.org] >Sent: Friday, August 15, 2008 10:41 PM >To: Ingo Molnar >Cc: Li, Shaohua; lkml; airlied@linux.ie; Andrew Morton; Ingo Molnar; Siddha, >Suresh B; Pallipadi, Venkatesh; Thomas Gleixner; H. Peter Anvin >Subject: Re: [patch 2/2] reduce tlb/cache flush times of agpgart memory >allocation > >On Fri, 15 Aug 2008 16:31:31 +0200 >Ingo Molnar <mingo@elte.hu> wrote: > >> >> * Shaohua Li <shaohua.li@intel.com> wrote: >> >> > To reduce tlb/cache flush, makes agp memory allocation do one flush >> > after all pages in a region are changed to uc. >> > >> > All agp drivers except agp-sgi uses agp_generic_alloc_page() for >> > .agp_alloc_page, so the patch should work for them. agp-sgi is only >> > for ia64, so not a problem too. >> >> applied to tip/x86/pat - thanks! >> >> I've Cc:-ed more PAT folks - any objections? >> > >it really needs something else instead; it needs airlied's array >allocator >otherwise you hit the second wall as well (the pat checks per page) Somebody should have a measurement. In my test, the real bottleneck is the cache flush. It appears flush cache page is slow if there are a lot of pages, In my patch, I use a wbinvd. This can be optimized to do wbinvd with a threshold. Maybe airlied can change his patch with this way.
Thanks, Shaohua
| |