From mboxrd@z Thu Jan 1 00:00:00 1970 From: linhaifeng Subject: Re: [PATCH 0/6] vhost: add Tx zero copy support Date: Fri, 14 Oct 2016 15:30:35 +0800 Message-ID: <5800899B.8080604@huawei.com> References: <1471939839-29778-1-git-send-email-yuanhan.liu@linux.intel.com> <57FA2014.1020904@huawei.com> <20161010080339.GC1597@yliu-dev.sh.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Cc: , Maxime Coquelin To: Yuanhan Liu Return-path: Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [119.145.14.66]) by dpdk.org (Postfix) with ESMTP id 1EE645592 for ; Fri, 14 Oct 2016 09:31:21 +0200 (CEST) In-Reply-To: <20161010080339.GC1597@yliu-dev.sh.intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 在 2016/10/10 16:03, Yuanhan Liu 写道: > 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. > > . > It ok to set data_off zero. But we also can use 128 bytes headromm when guest use virtio_net PMD but not for virtio_net kernel driver. I think it's better to add headroom size to desc and kernel dirver support set headroom size.