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: Wed, 20 May 2015 09:26:50 +0100 From: Wei Liu <wei.liu2@...rix.com> To: Julien Grall <julien.grall@...rix.com> CC: Wei Liu <wei.liu2@...rix.com>, <ian.campbell@...rix.com>, <stefano.stabellini@...citrix.com>, <netdev@...r.kernel.org>, <tim@....org>, <linux-kernel@...r.kernel.org>, <xen-devel@...ts.xenproject.org>, <linux-arm-kernel@...ts.infradead.org> Subject: Re: [Xen-devel] [RFC 21/23] net/xen-netback: Make it running on 64KB page granularity On Tue, May 19, 2015 at 11:56:39PM +0100, Julien Grall wrote: > > >>diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h > >>index 0eda6e9..c2a5402 100644 > >>--- a/drivers/net/xen-netback/common.h > >>+++ b/drivers/net/xen-netback/common.h > >>@@ -204,7 +204,7 @@ struct xenvif_queue { /* Per-queue data for xenvif */ > >> /* Maximum number of Rx slots a to-guest packet may use, including the > >> * slot needed for GSO meta-data. > >> */ > >>-#define XEN_NETBK_RX_SLOTS_MAX (MAX_SKB_FRAGS + 1) > >>+#define XEN_NETBK_RX_SLOTS_MAX ((MAX_SKB_FRAGS + 1) * XEN_PFN_PER_PAGE) > >> > >> enum state_bit_shift { > >> /* This bit marks that the vif is connected */ > >> > >>The function xenvif_wait_for_rx_work never returns. I guess it's because there > >>is not enough slot available. > >> > >>For 64KB page granularity we ask for 16 times more slots than 4KB page > >>granularity. Although, it's very unlikely that all the slot will be used. > >> > >>FWIW I pointed out the same problem on blkfront. > >> > > > >This is not going to work. The ring in netfront / netback has only 256 > >slots. Now you ask for netback to reserve more than 256 slots -- (17 + > >1) * (64 / 4) = 288, which can never be fulfilled. See the call to > >xenvif_rx_ring_slots_available. > > > >I think XEN_NETBK_RX_SLOTS_MAX derived from the fact the each packet to > >the guest cannot be larger than 64K. So you might be able to > > > >#define XEN_NETBK_RX_SLOTS_MAX ((65536 / XEN_PAGE_SIZE) + 1) > > I didn't know that packet cannot be larger than 64KB. That's simply a lot > the problem. > I think about this more, you will need one more slot for GSO information, so make it ((65536 / XEN_PAGE_SIZE) + 1 + 1). > > > >Blk driver may have a different story. But the default ring size (1 > >page) yields even less slots than net (given that sizeof(union(req/rsp)) > >is larger IIRC). > > I will see with Roger for Blkback. > > > -- > Julien Grall -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists