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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 17 Jul 2007 09:45:11 +0100 From: Stephen Hemminger <shemminger@...ux-foundation.org> To: Jeremy Fitzhardinge <jeremy@...source.com> Cc: Linus Torvalds <torvalds@...ux-foundation.com>, Andi Kleen <ak@...e.de>, Andrew Morton <akpm@...ux-foundation.com>, lkml <linux-kernel@...r.kernel.org>, Jeremy Fitzhardinge <jeremy@...p.org>, Xen-devel <xen-devel@...ts.xensource.com>, Chris Wright <chrisw@...s-sol.org>, Ian Pratt <ian.pratt@...source.com>, Christian Limpach <Christian.Limpach@...cam.ac.uk>, Jeff Garzik <jeff@...zik.org>, Christoph Hellwig <hch@...radead.org>, Rusty Russell <rusty@...tcorp.com.au>, Herbert Xu <herbert@...dor.apana.org.au>, Keir Fraser <Keir.Fraser@...cam.ac.uk>, netdev@...r.kernel.org Subject: Re: [patch 37/44] xen: add virtual network device driver > +struct netfront_info { > + struct list_head list; > + struct net_device *netdev; > + > + struct net_device_stats stats; There is now a net_device_stats element inside net_device on 2.6.21 or later. > + > + struct xen_netif_tx_front_ring tx; > + struct xen_netif_rx_front_ring rx; > + > + spinlock_t tx_lock; > + spinlock_t rx_lock; It might be a performance advantage to reorder/align these structure elements to put transmit hot elements together, and put tx and rx on different cache lines? > + unsigned int evtchn; > + > + /* Receive-ring batched refills. */ > +#define RX_MIN_TARGET 8 > +#define RX_DFL_MIN_TARGET 64 > +#define RX_MAX_TARGET min_t(int, NET_RX_RING_SIZE, 256) > + unsigned rx_min_target, rx_max_target, rx_target; > + struct sk_buff_head rx_batch; > + > + struct timer_list rx_refill_timer; > + > + /* > + * {tx,rx}_skbs store outstanding skbuffs. Free tx_skb entries > + * are linked from tx_skb_freelist through skb_entry.link. > + * > + * NB. Freelist index entries are always going to be less than > + * PAGE_OFFSET, whereas pointers to skbs will always be equal or > + * greater than PAGE_OFFSET: we use this property to distinguish > + * them. > + */ > + union skb_entry { > + struct sk_buff *skb; > + unsigned link; > + } tx_skbs[NET_TX_RING_SIZE]; > + grant_ref_t gref_tx_head; > + grant_ref_t grant_tx_ref[NET_TX_RING_SIZE]; > + unsigned tx_skb_freelist; > + > + struct sk_buff *rx_skbs[NET_RX_RING_SIZE]; > + grant_ref_t gref_rx_head; > + grant_ref_t grant_rx_ref[NET_RX_RING_SIZE]; > + > + struct xenbus_device *xbdev; > + int tx_ring_ref; > + int rx_ring_ref; > + > + unsigned long rx_pfn_array[NET_RX_RING_SIZE]; > + struct multicall_entry rx_mcl[NET_RX_RING_SIZE+1]; > + struct mmu_update rx_mmu[NET_RX_RING_SIZE]; > +}; - 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