Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp873077ybl; Thu, 23 Jan 2020 09:16:58 -0800 (PST) X-Google-Smtp-Source: APXvYqzkJkXgSoILaKfd0pIDC8hW5x85UMTILn8LpckCb0csze8RaWRjjeVQxs2p/oWxHTjW5HeL X-Received: by 2002:a9d:2028:: with SMTP id n37mr12511147ota.127.1579799818696; Thu, 23 Jan 2020 09:16:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579799818; cv=none; d=google.com; s=arc-20160816; b=jwXbx1Ki1ol+ZqSQMgvRiDEzU+6+x29j3tVvCRP1F8Vs7oew3W9uCMeyVR4CuqAz5r Hj09UQ5RoWOMDua6QsFHEnDe7QgE1QpUCqrAflwMFPKgyrxjEr3kL//Zb6hFvFyNrYqc 5l3+tvkRjzT4Is+ob9I+yur4TWxxGdoiQ4XTbMvrKDrxasTE2WoVqn3mQ0HHzIs1PHDG NoUsbpgXNzMcbEM0WIiJEUdA47JLicvJIGGEQcXg910jqAnfGJrr97VKQRigLPYjn+TW P6/gdWvAmagKwlWWxiIyOy7w98FxS2b3lpI19JBpLESwN4b0WdOxmgJnygZ1PWHfjifg gBKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=F9Lon82Bq0GznLQHv0vh/PgGmN9m+NsKDzVl2oeCVk8=; b=xfv8Z/9i/b11wJNxRUUWYf3Shs9+2sTKEI/IyNOYsaPknafouOjXkeBokbRDHh98KI ipUaJ8zI009wyNlmhUr44qq4vNF59ZTx/4kgEv3+93KgvDnbazXrLigO0BmNc1apVFkV XLORTIgyjgw/XOGqtVLfCMmHpVbKNg4By7u40h9ZL4opAl+cjPTSAnRLBdoPoeOmYrF2 u9qP01qoNKdX7sv2IbAFMshJjhCdkfdTVhGoluuKQXFGpYOMQZ1Fg6ylMzBFlgksi1sO OagrL5Y04gDCAYKry0SVxE3y1FCN0SkNS0oKE6VdsPToDkdg6xGDtoobhHiuFqtD2B+Q s+sA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0N8Psd0u; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f15si1098340oib.61.2020.01.23.09.16.46; Thu, 23 Jan 2020 09:16:58 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=0N8Psd0u; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729643AbgAWQ7I (ORCPT + 99 others); Thu, 23 Jan 2020 11:59:08 -0500 Received: from mail.kernel.org ([198.145.29.99]:49316 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728731AbgAWQ7H (ORCPT ); Thu, 23 Jan 2020 11:59:07 -0500 Received: from cakuba (unknown [199.201.64.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D5D982071E; Thu, 23 Jan 2020 16:59:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1579798747; bh=kSGcMTzAf4NiR0SgzGIPmzGXO+zaWusO8GxX42p0iIc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=0N8Psd0uums0PGJRB9OdJVzkPo9Mfe++Q1LgNtwD1fi5N1TZBFx8eYEUAjT1pbh63 Sv8OX4mDZmVVfeP9DrbffU9L9jFVm184UokrlZWMMcKzTT62mXb8shjU9Wo3QmjgOO l+TP4ZNPwFb7EcA9dzJv9I3HGCmPRvCCqWrsTZjk= Date: Thu, 23 Jan 2020 08:59:06 -0800 From: Jakub Kicinski To: Haiyang Zhang Cc: sashal@kernel.org, linux-hyperv@vger.kernel.org, netdev@vger.kernel.org, kys@microsoft.com, sthemmin@microsoft.com, olaf@aepfle.de, vkuznets@redhat.com, davem@davemloft.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH V3,net-next, 1/2] hv_netvsc: Add XDP support Message-ID: <20200123085906.20608707@cakuba> In-Reply-To: <1579713814-36061-2-git-send-email-haiyangz@microsoft.com> References: <1579713814-36061-1-git-send-email-haiyangz@microsoft.com> <1579713814-36061-2-git-send-email-haiyangz@microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 22 Jan 2020 09:23:33 -0800, Haiyang Zhang wrote: > This patch adds support of XDP in native mode for hv_netvsc driver, and > transparently sets the XDP program on the associated VF NIC as well. > > Setting / unsetting XDP program on synthetic NIC (netvsc) propagates to > VF NIC automatically. Setting / unsetting XDP program on VF NIC directly > is not recommended, also not propagated to synthetic NIC, and may be > overwritten by setting of synthetic NIC. > > The Azure/Hyper-V synthetic NIC receive buffer doesn't provide headroom > for XDP. We thought about re-use the RNDIS header space, but it's too > small. So we decided to copy the packets to a page buffer for XDP. And, > most of our VMs on Azure have Accelerated Network (SRIOV) enabled, so > most of the packets run on VF NIC. The synthetic NIC is considered as a > fallback data-path. So the data copy on netvsc won't impact performance > significantly. > > XDP program cannot run with LRO (RSC) enabled, so you need to disable LRO > before running XDP: > ethtool -K eth0 lro off > > XDP actions not yet supported: > XDP_REDIRECT > > Signed-off-by: Haiyang Zhang > > --- > Changes: > v3: Minor code and comment updates. > v2: Added XDP_TX support. Addressed review comments. How does the locking of the TX path work? You seem to be just calling the normal xmit method, but you don't hold the xmit queue lock, so the stack can start xmit concurrently, no?