Re: Why is wmb() a no-op on x86_64?

From: Bryan O'Sullivan
Date: Wed Jan 18 2006 - 11:51:29 EST


On Wed, 2006-01-18 at 17:29 +0100, Andi Kleen wrote:

> Actually it is a compiler optimizer barrier, not a no-op.

Sorry, braino.

> Hmm, I suppose one could add a wc_wmb() or somesuch, but WC
> is currently deeply architecture specific so I'm not sure
> how you can even use it portably.
>
> Why do you need the barrier?

On x86_64, we fiddle with the MTRRs to enable write combining, which
makes a huge difference to performance. It's not clear to me what we
should even do on other architectures, since the only generic entry
point that even exposes write combining is pci_mmap_page_range, which is
for PCI mmap through userspace, and half the arches I've looked at
ignore its write_combine parameter.

<b

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/