[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] PCI passthrough issue
On Wed, 2011-02-02 at 15:38 +0000, Konrad Rzeszutek Wilk wrote: > > > Ping tests work whatever can be packet size. > > > > > > If I understood well what you explain to me, it's now clear that the > > > problem is somewhat Xen related, isn't it ? > > > > It certainly seems that way. I'm not 100% sure that swiotlb=force will > > have actually made the driver use the swiotlb, it may just have forced > > It should have. > > > the swiotlb to be allocated. Konrad? > > Both. It would allocate it and force all DMA operations to go through > the bounce buffer. > > Let me take a look at the driver itself. Ah, so I had a similar card: 3c59x > which hit the same type of failure way back in 2.6.31 time. It had the > pci_dma_sync_single_for_cpu(.. PCI_DMA_FROMDEVICE) turned around so it would > never > copy properly. But in my tree (2.6.38) the sky driver looks to be doing just > right.. It has PCI_DMA_FROMDEVICE.. > > Well this looks odd: > > 2330 skb = netdev_alloc_skb_ip_align(sky2->netdev, length); > 2331 if (likely(skb)) { > 2332 pci_dma_sync_single_for_cpu(sky2->hw->pdev, > re->data_addr, > 2333 length, PCI_DMA_FROMDEVICE); > =======> skb_copy_from_linear_data(re->skb, skb->data, length); > <==== > 2335 skb->ip_summed = re->skb->ip_summed; > 2336 skb->csum = re->skb->csum; > 2337 pci_dma_sync_single_for_device(sky2->hw->pdev, > re->data_addr, > 2338 length, > PCI_DMA_FROMDEVICE); > 2339 re->skb->ip_summed = CHECKSUM_NONE; > 2340 skb_put(skb, length); > 2341 } > > It copies from skb->data (just allocated) to re->skb (seems that the > re->skb->data > has been earlier DMA-mapped). > > But there is no data in skb->data as we just allocated it? Shouldn't this > be the other way around? Like this: skb_copy_from_linear_data's arguments are the other way round to what you may be expecting: static inline void skb_copy_from_linear_data(const struct sk_buff *skb, void *to, const unsigned int len) So the above line is correctly copying from re->skb->data to skb->data not the other way round. I stared at that exact line for ages this morning ;-) Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |