Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp4045642pxb; Mon, 1 Feb 2021 10:56:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJyVHy3ydbAtYYaiVXjoz++X6OHTKvDXjULps0aSD7nZQixoJyNjSc0LuxWofjOADozyG2A3 X-Received: by 2002:a05:6402:228a:: with SMTP id cw10mr19833366edb.195.1612205763523; Mon, 01 Feb 2021 10:56:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1612205763; cv=none; d=google.com; s=arc-20160816; b=ILrH3RBVtDmsH5YtSnvZXgqZqHMi1gSzK/6vsmQ+f62B4xlinZXet2NDJGs/MeDri8 W/Vh7dODKUk9425f9dXL41xhCgotyLw0C24/tXPONv8i3SnieWFHXEJeBX5RtOQgqbJ0 h0JObHk9zI70bbm1OUt36kun5PiVnO8s+MkhKebf09Armqf//rpjvRBMqwW4LFkTN6nz lzhud1mSAgvfJjFY2unJ/dfwc9TZ5ZuqtTaZWDjqMleRvmjLPhakf2dVCvScPww5oxne tKgLtMpdRNG4x2pu9fPz/JJsNWN0qEk9wHp5y6xksqZty5lovbIARsxsN3l+97VOkFo7 4PwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=t+1ROMgCAtu/xArHYsFd1+YZoT/w+IqsJ+s+xa9cGnA=; b=LEjL/73ondeuzbG3AMty2bxlXmxUMTmG5bqOcmb9cLaKWMDzbwYzCri1yw0Wh44qLC vns/U81et3rLLi40OlqYgE9BEWL58fEyWAefCMhhut5LXCxSYKA5ye80JDIvLJHb7WnS Af2MkeGz6SCrilhHHhO7JXFUXKHFyxM7ioW13HdS+5BzzVnw6G5oCWBaz/n23+feI5Xy rBFyPaISxLra43AFDHopISwqUxW3nOox+uXpCAy5kw1PSQObHxF8zzGyYHbZOpiTa2rU x3UEPtwChAT9jDEEpismVkNC7cQyJtbtq6vvCTTP0gxkBsr0JB6F2M76Ak6njd3wiLF1 nyGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=guYjshs7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qt28si9264536ejb.470.2021.02.01.10.55.37; Mon, 01 Feb 2021 10:56:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=guYjshs7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232224AbhBASwO (ORCPT + 99 others); Mon, 1 Feb 2021 13:52:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57086 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231945AbhBASwJ (ORCPT ); Mon, 1 Feb 2021 13:52:09 -0500 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 988ACC061573; Mon, 1 Feb 2021 10:51:28 -0800 (PST) Received: by mail-wm1-x344.google.com with SMTP id m2so238589wmm.1; Mon, 01 Feb 2021 10:51:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=t+1ROMgCAtu/xArHYsFd1+YZoT/w+IqsJ+s+xa9cGnA=; b=guYjshs7HC0I62X3kkx+RuXbELZ4OroN7UlF1sFZvbTo5jY5iab7DOjQ+EgsZ9Y3zN XimK9A3IfKNlQxOPGATUL1K5/0p9nJp9lH4rvPiKQqLGsvMOsS/d41zMTBwn8FHtorDV 2SMUugxEH40GJ/7q5+67s7xGJyl7lGyqy6kSIUtJ2veA2QBD8GRkf5mMkq5RwLgWz0Qr 3ZCP1a4xYPwqoBc0j1K3dlH8AjY9U8RWi8w32TvcV7Y7JnSwHSixCzFUviHgtgEksQhF xl49u7rWwyxBUbAaFa2daVYcYliQVWPX7ge76Tces1eY0woLpagr1vM/AeYTsiZlccUu k7Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=t+1ROMgCAtu/xArHYsFd1+YZoT/w+IqsJ+s+xa9cGnA=; b=B4QIlb7wzB00SyFRPeLLO5nAvWNu4HzcQrgpoA7SPIjWIKjdHFzBhm4S3vQxfvQ+NH Zx59j+mvIweGAv+Ost6qX2HuOZ6Zu0fgN+BVZrHHkr62PT70OcXY8oRpLiMAv9IK6xpY REFS6So6pHE8MC+GdqvNrhHjWvQ0OGljDWjgSmzGG5oGfaqFI8BUy09OVy04Vk3eDyxG J8fC4RHluL/Vd3XioAkkt0gWI0JYM/oj+mlD+OgwHoJyDDVTALD+4viLMSvANtKBJPWc J0SgWOl6IYWiuSiZYC8rlvo+3SqwECDJuef6GvzN4drNSO8XZEBwwNEtCTEtirIgPo5s 3OYg== X-Gm-Message-State: AOAM531pYf3IVi03YhliEkws0WIrS1/Z4HOszon34y0gesbiztcxlMOt zDgDoLpZhhgB9m0l+39PdHivY/Sgm9OJ0uXfkiA= X-Received: by 2002:a05:600c:354c:: with SMTP id i12mr235435wmq.51.1612205487194; Mon, 01 Feb 2021 10:51:27 -0800 (PST) MIME-Version: 1.0 References: <20210128134130.3051-1-elic@nvidia.com> <20210128134130.3051-2-elic@nvidia.com> In-Reply-To: <20210128134130.3051-2-elic@nvidia.com> From: Si-Wei Liu Date: Mon, 1 Feb 2021 10:51:15 -0800 Message-ID: Subject: Re: [PATCH 1/2] vdpa/mlx5: Avoid unnecessary query virtqueue To: Eli Cohen Cc: mst@redhat.com, jasowang@redhat.com, virtualization@lists.linux-foundation.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, lulu@redhat.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 28, 2021 at 5:46 AM Eli Cohen wrote: > > suspend_vq should only suspend the VQ on not save the current available > index. This is done when a change of map occurs when the driver calls > save_channel_info(). Hmmm, suspend_vq() is also called by teardown_vq(), the latter of which doesn't save the available index as save_channel_info() doesn't get called in that path at all. How does it handle the case that aget_vq_state() is called from userspace (e.g. QEMU) while the hardware VQ object was torn down, but userspace still wants to access the queue index? Refer to https://lore.kernel.org/netdev/1601583511-15138-1-git-send-email-si-wei.liu@oracle.com/ vhost VQ 0 ring restore failed: -1: Resource temporarily unavailable (11) vhost VQ 1 ring restore failed: -1: Resource temporarily unavailable (11) QEMU will complain with the above warning while VM is being rebooted or shut down. Looks to me either the kernel driver should cover this requirement, or the userspace has to bear the burden in saving the index and not call into kernel if VQ is destroyed. -Siwei > > Signed-off-by: Eli Cohen > --- > drivers/vdpa/mlx5/net/mlx5_vnet.c | 8 -------- > 1 file changed, 8 deletions(-) > > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c > index 88dde3455bfd..549ded074ff3 100644 > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > @@ -1148,8 +1148,6 @@ static int setup_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq) > > static void suspend_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq) > { > - struct mlx5_virtq_attr attr; > - > if (!mvq->initialized) > return; > > @@ -1158,12 +1156,6 @@ static void suspend_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *m > > if (modify_virtqueue(ndev, mvq, MLX5_VIRTIO_NET_Q_OBJECT_STATE_SUSPEND)) > mlx5_vdpa_warn(&ndev->mvdev, "modify to suspend failed\n"); > - > - if (query_virtqueue(ndev, mvq, &attr)) { > - mlx5_vdpa_warn(&ndev->mvdev, "failed to query virtqueue\n"); > - return; > - } > - mvq->avail_idx = attr.available_index; > } > > static void suspend_vqs(struct mlx5_vdpa_net *ndev) > -- > 2.29.2 >