On Sun, Oct 09, 2016 at 06:46:44PM +0800, linhaifeng wrote:
> ? 2016/8/23 16:10, Yuanhan Liu ??:
> > The basic idea of Tx zero copy is, instead of copying data from the
> > desc buf, here we let the mbuf reference the desc buf addr directly.
> 
> Is there problem when push vlan to the mbuf which reference the desc buf addr 
> directly?

Yes, you can't do that when zero copy is enabled, due to following code
piece:

    +               if (unlikely(dev->dequeue_zero_copy && (hpa = 
gpa_to_hpa(dev,
    +                                       desc->addr + desc_offset, 
cpy_len)))) {
    +                       cur->data_len = cpy_len;
==> +                       cur->data_off = 0;
    +                       cur->buf_addr = (void *)(uintptr_t)desc_addr;
    +                       cur->buf_physaddr = hpa;

The marked line basically makes the mbuf has no headroom to use.

        --yliu

> We know if guest use virtio_net(kernel) maybe skb has no headroom.

Reply via email to