xen-devel
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
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- Re: [Xen-devel] PCI passthrough issue, (continued)
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
- Re: [Xen-devel] PCI passthrough issue, Ian Campbell
- Re: [Xen-devel] PCI passthrough issue, Konrad Rzeszutek Wilk
- Re: [Xen-devel] PCI passthrough issue,
Ian Campbell <=
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
- Re: [Xen-devel] PCI passthrough issue, Ian Campbell
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
- Re: [Xen-devel] PCI passthrough issue, Ian Campbell
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
- Re: [Xen-devel] PCI passthrough issue, Konrad Rzeszutek Wilk
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
- Re: [Xen-devel] PCI passthrough issue, Ian Campbell
- Re: [Xen-devel] PCI passthrough issue, Jean Baptiste Favre
|
|
|