On 26/09/14 12:56, Richard Weinberger wrote:

[snip]

> +#ifdef CONFIG_X86_32
> +     alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2);
> +#else
> +     asm volatile("mfence":::"memory");
> +#endif
> Why not mb()?
> I'm not sure whether this fix is correct.

Looking at the actual defines that would work. I was originally looking 
at asm-generic instead of x86/um/asm/barrier.h and the asm-generic 
barrier() would have been insufficent.

x86/um/asm/barrier.h has literally the same define, so as you noted - 
using mb() will have the same effect.

As far as is this fix correct or not - I do not know myself. I said it 
when submitting it :)

It definitely fixes the problem - both the original (and extremely 
difficult to reproduce) D|Z in the stock UML and the similar (and much 
easier to reproduce) D|Z which you get with all the disk subsystem 
improvement patches.

I will reissue it with mb() shortly.

A.

>
> Thanks,
> //richard

------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to