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