[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] [PATCH] x86: add SSE-based copy_page()



I haven't had a chance to test this further yet,
but I see the patch was already taken (c/s 18772).

Why, given that performance gets worse under some
circumstances?  At least maybe there should be two
interfaces: copy_page_cold_cache() and
copy_page_warm_cache() rather than just assume?

I'll post measurements when I get a chance to test,
but bring this up as a placeholder for now.

Thanks,
Dan

> -----Original Message-----
> From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
> Sent: Friday, November 14, 2008 7:16 AM
> To: Dan Magenheimer; Cui, Dexuan; Jan Beulich
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Xen-devel] [PATCH] x86: add SSE-based copy_page()
>
>
> That should indeed do the job.
>
>  -- Keir
>
> On 14/11/08 14:10, "Dan Magenheimer"
> <dan.magenheimer@xxxxxxxxxx> wrote:
>
> > Thanks Dexuan!  I don't want to flush the TLB (which
> > wbinvd does) so it looks like the way to flush cache
> > on a page in Xen is:
> >
> > #include <xen/flushtlb.h>
> > flush_area_local(va,FLUSH_CACHE|FLUSH_ORDER(0))
> >
> >
> >> -----Original Message-----
> >> From: Cui, Dexuan [mailto:dexuan.cui@xxxxxxxxx]
> >> Sent: Thursday, November 13, 2008 8:08 PM
> >> To: Dan Magenheimer; Jan Beulich
> >> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> >> Subject: RE: [Xen-devel] [PATCH] x86: add SSE-based copy_page()
> >>
> >>
> >> Hi Dan,
> >> clflush(flush a cache line; you may need a loop to flush a
> >> page.) or wbinvd(flush all the caches) should be what you
> >> need to flush caches on x86.
> >>
> >> Thanks,
> >> -- Dexuan
> >>
> >>
> >> -----Original Message-----
> >> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
> >> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
> >> Dan Magenheimer
> >> Sent: 2008年11月14日 7:42
> >> To: Jan Beulich
> >> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> >> Subject: RE: [Xen-devel] [PATCH] x86: add SSE-based copy_page()
> >>
> >>> This very much depends on whether the page(s) are in any
> caches - in
> >>> the general case (e.g. when dealing with large sets of
> data, or data
> >>> just read from disk), you'd expect both pages (source and
> >> destination)
> >>> not to be in any cache. This is where using the streaming
> >> instructions
> >>> helps.
> >>>
> >>> However, when dealing with a small set of pages (or even
> >> just a single
> >>> source/destination pair), you'd easily run entirely on L1 or
> >>> L2 data, which
> >>> certainly performs better using the non-streaming instructions.
> >>
> >> Is there a way to force-flush-cache on a page full of
> data?  (I knew
> >> how to do this once on ia64...)  I can easily measure
> warm-start but
> >> am not sure how to measure cold-start without some kind of flush.
> >>
> >> Thanks,
> >> Dan
> >>
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@xxxxxxxxxxxxxxxxxxx
> >> http://lists.xensource.com/xen-devel
> >>
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
>

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.