lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 15 May 2009 14:48:49 +0930 From: Rusty Russell <rusty@...tcorp.com.au> To: Or Gerlitz <ogerlitz@...taire.com> Cc: Avi Kivity <avi@...hat.com>, netdev@...r.kernel.org, Gregory Haskins <ghaskins@...ell.com>, Anthony Liguori <anthony@...emonkey.ws> Subject: Re: user space virtio-net exits with "truncating packet" error On Thu, 14 May 2009 11:34:48 pm Or Gerlitz wrote: > Rusty Russell wrote: > > The answer is that virtio_net by default only supports 1500 > > MTU; I've not tried larger MTUs. > > Rusty, > > I hoped to get some performance boost from using checksum and large-send > offloads as an alternative to jumbo frames. Looking in the virtio-net > kernel driver, I see that the probe function checks if virtio_has_feature > VIRTIO_NET_F_CSUM ... VIRTIO_NET_F_HOST_TSO ... and if yes sets the > relevant bits in the NIC features mask. Looking in the virtio qemu code, I > also see some offload related code. Yes, which is why MTU is a bit misleading. This patch may help diagnostics tho. Cheers, Rusty. virtio: expose features in sysfs Each device negotiates feature bits; expose these in sysfs to help diagnostics and debugging. Signed-off-by: Rusty Russell <rusty@...tcorp.com.au> --- drivers/virtio/virtio.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c --- a/drivers/virtio/virtio.c +++ b/drivers/virtio/virtio.c @@ -31,11 +31,27 @@ static ssize_t modalias_show(struct devi return sprintf(buf, "virtio:d%08Xv%08X\n", dev->id.device, dev->id.vendor); } +static ssize_t features_show(struct device *_d, + struct device_attribute *attr, char *buf) +{ + struct virtio_device *dev = container_of(_d, struct virtio_device, dev); + unsigned int i; + ssize_t len = 0; + + /* We actually represent this as a bitstring, as it could be + * arbitrary length in future. */ + for (i = 0; i < ARRAY_SIZE(dev->features)*BITS_PER_LONG; i++) + len += sprintf(buf+len, "%c", + test_bit(i, dev->features) ? '1' : '0'); + len += sprintf(buf+len, "\n"); + return len; +} static struct device_attribute virtio_dev_attrs[] = { __ATTR_RO(device), __ATTR_RO(vendor), __ATTR_RO(status), __ATTR_RO(modalias), + __ATTR_RO(features), __ATTR_NULL }; -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists