My IXGBE data path journey made me ask questions, like the one above. Basically (I'm skipping a few steps here):
1. packet arrives to the card and is verified by MAC 2. packet is placed in the card's FIFO (which is small) 3. lots of steps here but finally card does DMA into one of receive buffers 4. are these buffers shared with skb->data ? Or does 82599 copy bits between rx buffers and skb->data ? Given that dma_map_single(rx_ring->dev, skb->data,...) is called in ixgbe_alloc_maped_skb() I would say "card does DMA into SKB" (excuse my oversimplification) but I'd like to verify it, especially that ixgbe_alloc_mapped_page() can be used instead, depending on CONFIG_IXGBE_DISABLE_PACKET_SPLIT I'm trying to understand where data copying occurs, because it might be impossible to go with some clever memory mappings. A side question - why is the FIFO buffer that small? What's stopping us from having it (theoretically) say 1GB? Some (super expensive) capture cards do this, but they have other challenges. Of course, X520 is not a capture card (but it's very efficient doing it, anyway). I do not believe in a dedicated hardware anymore. -- Michal Purzynski
------------------------------------------------------------------------------
_______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired