Re: [PULL] virtio/vhost: cross endian support
From: Greg Kurz <hidden>
Date: 2015-07-02 09:13:17
Also in:
kvm, lkml, virtualization
On Thu, 2 Jul 2015 08:01:28 +0200 "Michael S. Tsirkin" [off-list ref] wrote:
On Wed, Jul 01, 2015 at 12:02:50PM -0700, Linus Torvalds wrote:quoted
On Wed, Jul 1, 2015 at 2:31 AM, Michael S. Tsirkin [off-list ref] wrote:quoted
virtio/vhost: cross endian supportUgh. Does this really have to be dynamic? Can't virtio do the sane thing, and just use a _fixed_ endianness? Doing a unconditional byte swap is faster and simpler than the crazy conditionals. That's true regardless of endianness, but gets to be even more so if the fixed endianness is little-endian, since BE is not-so-slowly fading from the world. LinusYea, well - support for legacy BE guests on the new LE hosts is exactly the motivation for this. I dislike it too, but there are two redeeming properties that made me merge this: 1. It's a trivial amount of code: since we wrap host/guest accesses anyway, almost all of it is well hidden from drivers. 2. Sane platforms would never set flags like VHOST_CROSS_ENDIAN_LEGACY - and when it's clear, there's zero overhead (as some point it was tested by compiling with and without the patches, got the same stripped binary). Maybe we could create a Kconfig symbol to enforce point (2): prevent people from enabling it e.g. on x86. I will look into this - but it can be done by a patch on top, so I think this can be merged as is.
This cross-endian *oddity* is targeting PowerPC book3s_64 processors... I am not aware of any other users. Maybe create a symbol that would be only selected by PPC_BOOK3S_64 ?
Or do you know of someone using kernel with all config options enabled undiscriminately? Thanks,