[Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-03 Thread Tiejun Chen
clflush is a light weight but not serializing instruction, so hence memory fence is necessary to make sure all load/store visible before flush cache line. Signed-off-by: Tiejun Chen --- xen/drivers/passthrough/vtd/x86/vtd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xen/drivers/passth

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-03 Thread Zhang, Yang Z
Chen, Tiejun wrote on 2015-05-04: > clflush is a light weight but not serializing instruction, so hence > memory fence is necessary to make sure all load/store visible before flush > cache line. > > Signed-off-by: Tiejun Chen Acked-by: Yang Zhang > --- > xen/drivers/passthrough/vtd/x86/vtd.c

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Jan Beulich
>>> On 04.05.15 at 04:16, wrote: > --- a/xen/drivers/passthrough/vtd/x86/vtd.c > +++ b/xen/drivers/passthrough/vtd/x86/vtd.c > @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) > > void cacheline_flush(char * addr) > { > +mb(); > clflush(addr); > +mb(); > } I think the pu

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Andrew Cooper
On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: >> --- a/xen/drivers/passthrough/vtd/x86/vtd.c >> +++ b/xen/drivers/passthrough/vtd/x86/vtd.c >> @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) >> >> void cacheline_flush(char * addr) >> { >> +mb(); >>

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Jan Beulich
>>> On 04.05.15 at 11:14, wrote: > On 04/05/2015 09:52, Jan Beulich wrote: > On 04.05.15 at 04:16, wrote: >>> --- a/xen/drivers/passthrough/vtd/x86/vtd.c >>> +++ b/xen/drivers/passthrough/vtd/x86/vtd.c >>> @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) >>> >>> void cacheline_flus

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Chen, Tiejun
On 2015/5/4 16:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) void cacheline_flush(char * addr) { +mb(); clflush(addr); +mb();

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Jan Beulich
>>> On 04.05.15 at 12:39, wrote: > On 2015/5/4 16:52, Jan Beulich wrote: > On 04.05.15 at 04:16, wrote: >>> --- a/xen/drivers/passthrough/vtd/x86/vtd.c >>> +++ b/xen/drivers/passthrough/vtd/x86/vtd.c >>> @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) >>> >>> void cacheline_flush(c

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Tian, Kevin
> From: Jan Beulich [mailto:jbeul...@suse.com] > Sent: Monday, May 04, 2015 6:44 PM > > >>> On 04.05.15 at 12:39, wrote: > > On 2015/5/4 16:52, Jan Beulich wrote: > > On 04.05.15 at 04:16, wrote: > >>> --- a/xen/drivers/passthrough/vtd/x86/vtd.c > >>> +++ b/xen/drivers/passthrough/vtd/x86/vt

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Chen, Tiejun
On 2015/5/4 18:52, Tian, Kevin wrote: From: Jan Beulich [mailto:jbeul...@suse.com] Sent: Monday, May 04, 2015 6:44 PM On 04.05.15 at 12:39, wrote: On 2015/5/4 16:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vt

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Konrad Rzeszutek Wilk
On Mon, May 04, 2015 at 06:39:56PM +0800, Chen, Tiejun wrote: > On 2015/5/4 16:52, Jan Beulich wrote: > On 04.05.15 at 04:16, wrote: > >>--- a/xen/drivers/passthrough/vtd/x86/vtd.c > >>+++ b/xen/drivers/passthrough/vtd/x86/vtd.c > >>@@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) > >>

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Andrew Cooper
On 04/05/2015 16:22, Konrad Rzeszutek Wilk wrote: > On Mon, May 04, 2015 at 06:39:56PM +0800, Chen, Tiejun wrote: >> On 2015/5/4 16:52, Jan Beulich wrote: >> On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Zhang, Yang Z
Jan Beulich wrote on 2015-05-04: On 04.05.15 at 11:14, wrote: >> On 04/05/2015 09:52, Jan Beulich wrote: >> On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@ unsigned int get_cache_line_si

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Tian, Kevin
> From: Chen, Tiejun > Sent: Monday, May 04, 2015 7:26 PM > > On 2015/5/4 18:52, Tian, Kevin wrote: > >> From: Jan Beulich [mailto:jbeul...@suse.com] > >> Sent: Monday, May 04, 2015 6:44 PM > >> > > On 04.05.15 at 12:39, wrote: > >>> On 2015/5/4 16:52, Jan Beulich wrote: > >>> On 04.05.15

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-04 Thread Chen, Tiejun
On 2015/5/4 18:43, Jan Beulich wrote: On 04.05.15 at 12:39, wrote: On 2015/5/4 16:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) void cach

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-05 Thread Jan Beulich
>>> On 05.05.15 at 04:45, wrote: > Does this work for everyone? Please first of all explain why the interfaces in asm/flushtlb.h can't be used here (at least when flushing entire pages). Because - as said before - for a complete fix you'd need to deal with the CLFLUSH use(s) elsewhere in the syst

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-05 Thread Boris Ostrovsky
On 05/04/2015 05:14 AM, Andrew Cooper wrote: On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@ unsigned int get_cache_line_size(void) void cacheline_flush(char * ad

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-05 Thread Jan Beulich
>>> On 05.05.15 at 17:46, wrote: > On 05/04/2015 05:14 AM, Andrew Cooper wrote: >> On 04/05/2015 09:52, Jan Beulich wrote: >> On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@ unsigned int get_

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-05 Thread Boris Ostrovsky
On 05/05/2015 11:58 AM, Jan Beulich wrote: On 05.05.15 at 17:46, wrote: On 05/04/2015 05:14 AM, Andrew Cooper wrote: On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-05 Thread Chen, Tiejun
On 2015/5/5 17:24, Jan Beulich wrote: On 05.05.15 at 04:45, wrote: Does this work for everyone? Please first of all explain why the interfaces in asm/flushtlb.h can't be used here (at least when flushing entire pages). Because - as I also don't understand any reason we didn't use this previ

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-06 Thread Chen, Tiejun
On 2015/5/5 23:46, Boris Ostrovsky wrote: On 05/04/2015 05:14 AM, Andrew Cooper wrote: On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x86/vtd.c +++ b/xen/drivers/passthrough/vtd/x86/vtd.c @@ -56,7 +56,9 @@ unsigned int get_cache_line_siz

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-06 Thread Jan Beulich
>>> On 05.05.15 at 18:11, wrote: > On 05/05/2015 11:58 AM, Jan Beulich wrote: > On 05.05.15 at 17:46, wrote: >>> On 05/04/2015 05:14 AM, Andrew Cooper wrote: On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: >> --- a/xen/drivers/passthrough/vtd/x86/vtd.c

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-06 Thread Jan Beulich
>>> On 06.05.15 at 08:47, wrote: > On 2015/5/5 17:24, Jan Beulich wrote: >> Btw, isn't the !iommus_incoherent check in that function inverted? >> I.e. why would we _not_ need to flush caches when IOMMUs >> are not coherent (and why would flushing be needed when they're >> coherent anyway)? >> > >

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-06 Thread Chen, Tiejun
On 2015/5/6 15:12, Jan Beulich wrote: On 05.05.15 at 18:11, wrote: On 05/05/2015 11:58 AM, Jan Beulich wrote: On 05.05.15 at 17:46, wrote: On 05/04/2015 05:14 AM, Andrew Cooper wrote: On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/vtd/x

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-06 Thread Jan Beulich
>>> On 06.05.15 at 09:26, wrote: > On 2015/5/6 15:12, Jan Beulich wrote: > On 05.05.15 at 18:11, wrote: >>> On 05/05/2015 11:58 AM, Jan Beulich wrote: >>> On 05.05.15 at 17:46, wrote: > On 05/04/2015 05:14 AM, Andrew Cooper wrote: >> On 04/05/2015 09:52, Jan Beulich wrote: >>

Re: [Xen-devel] [PATCH 1/3] xen/vt-d: need barriers to workaround CLFLUSH

2015-05-06 Thread Boris Ostrovsky
On 05/06/2015 03:12 AM, Jan Beulich wrote: On 05.05.15 at 18:11, wrote: On 05/05/2015 11:58 AM, Jan Beulich wrote: On 05.05.15 at 17:46, wrote: On 05/04/2015 05:14 AM, Andrew Cooper wrote: On 04/05/2015 09:52, Jan Beulich wrote: On 04.05.15 at 04:16, wrote: --- a/xen/drivers/passthrough/