From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [RFC PATCH 0/4] vhost_net: support for cross endian guests Date: Mon, 3 Nov 2014 18:23:49 +0200 Message-ID: <20141103162349.GB24877@redhat.com> References: <1414571925-16918-1-git-send-email-clg@fr.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, agraf@suse.de, paulus@samba.org, gkurz@linux.vnet.ibm.com.patch, aik@ozlabs.ru To: =?iso-8859-1?Q?C=E9dric?= Le Goater Return-path: Content-Disposition: inline In-Reply-To: <1414571925-16918-1-git-send-email-clg@fr.ibm.com> Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On Wed, Oct 29, 2014 at 09:38:41AM +0100, C=E9dric Le Goater wrote: > This patchset adds a VHOST_VRING_F_BYTESWAP flag to inform the host=20 > to byteswap data of the vring when the guest and the host have a=20 > different endian order. The flag is stored at initialization in an=20 > attribute of the virtio queues. It is then used to byteswap, or not,=20 > the vring indexes and descriptors shared with the guest OS. >=20 > The last patch adds the byteswapping of the virtio_net header as it=20 > is done in qemu. Hi Cedric, Thanks for submitting this. One general problem with this approach, is that it adds overhead e.g. for x86 on x86 unconditionally. I will in a couple of days post a patch adding virtio 1.0 support for vhost. This will serve as a better basis for cross-endian support in vhost, on top. I'll try to remember to Cc you. > The patches apply on linux-3.18-rc2 and the tests were done on PowerP= C=20 > using the following hosts : > =20 > fedora21/ppc64, utopic/ppc64le =20 >=20 > with various guests :=20 >=20 > trusty/ppc64le, utopic/ppc64le, debian/ppc64le,=20 > rhel6.5/ppc64, fedora21/ppc64, debian/ppc64 >=20 > Regressions tests for x86_64 were done a debian host using rhel6.6,=20 > fedora20 and debian guests. > =09 >=20 > C=E9dric Le Goater (4): > vhost: add VHOST_VRING_F_BYTESWAP flag > vhost: add byteswap routines > vhost: byteswap virtqueue attributes > vhost_net: byteswap virtio_net header >=20 > drivers/vhost/net.c | 39 +++++++++--- > drivers/vhost/vhost.c | 150 ++++++++++++++++++++++++++++++++++= ++++++---- > drivers/vhost/vhost.h | 1 + > include/uapi/linux/vhost.h | 3 + > 4 files changed, 171 insertions(+), 22 deletions(-) >=20 > --=20 > 1.7.10.4