From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuanhan Liu Subject: Re: [PATCH 0/6] vhost: add Tx zero copy support Date: Mon, 10 Oct 2016 16:03:39 +0800 Message-ID: <20161010080339.GC1597@yliu-dev.sh.intel.com> References: <1471939839-29778-1-git-send-email-yuanhan.liu@linux.intel.com> <57FA2014.1020904@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: dev@dpdk.org, Maxime Coquelin To: linhaifeng Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 3B08B6A73 for ; Mon, 10 Oct 2016 10:02:49 +0200 (CEST) Content-Disposition: inline In-Reply-To: <57FA2014.1020904@huawei.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" 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.