From patchwork Tue Oct 18 23:50:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Si-Wei Liu X-Patchwork-Id: 4396 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp62049wrs; Tue, 18 Oct 2022 18:00:44 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4+oD/br+mnckRSQaHchHsxY76mAyLtzHScfemIlKAhNg3hhWkHAi0I31ZmhRIFjNQ1vgN+ X-Received: by 2002:a63:470b:0:b0:442:24d7:578 with SMTP id u11-20020a63470b000000b0044224d70578mr5005253pga.198.1666141243888; Tue, 18 Oct 2022 18:00:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666141243; cv=none; d=google.com; s=arc-20160816; b=D0iLxAMPrfJGtRs49JcLjHLT+vp2l50fcTn/C0mmXv+zdPTY7CplDtachetY+kFj3t 9NOL0bjqIhTk1lv9YkrbS5wPKTwTExW+EJT7tTDw7DTg58htBFFhESjhe5zVbfcYVInF nd00oeyC1hdS5UgFqpoB+GDJ//WQyunUNusYDa1fGeMDObnLYpuiFuMFCz07o5EXgFKP zGp1XZAwIJwiNLgzyl/aIjv++vCNxv9Yv9k/tVFpemhwWNLfSgRSu/O2aXjUf3gmgltk 964xmsH3l1IXf/5hgHHqYKal2Pi3cMU3yRRoatIAGA50r0ZVo16UBeLVIjTgwaRdDpN7 TU9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=Vceponq7eAFUqTu6CGWdqDZyJ21Mh5Eod4o60p5T6SU=; b=Djc6T9BCCWs1b8GES8f6qNuIF3FB95umOG47q7kpF1OxUqiRzHdmVoLNETsJUDvlUA z1KZa2zl7YCcPCVXWhZsQrPuiBSGw2x2Y3B1VuYpRZhskNiFED5bWn5ADiFE7emTjUe+ ZxuO6UNjJvuQ2VFRT8PF4015j5OXoozf6N3q10wt5lJaB2A3ZMTgwTDhOiwOlVk2xLVi rKwRWwJnwFV0cdYS/CujIlzHrrEiduVhwESlR62MPXDvq6JLH71CS/pw1ZMP25yLIVXW 1tSwo8odroeXWS5zlQkceLqgeDvXgSbYZsnGxCxfHDmLMbWmc4ffG8GxgG0S5MdQ6oUv zYvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=eUxo+IE8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p1-20020a63c141000000b00429f2cb4a47si16297071pgi.491.2022.10.18.18.00.29; Tue, 18 Oct 2022 18:00:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=eUxo+IE8; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229785AbiJSA4V (ORCPT + 99 others); Tue, 18 Oct 2022 20:56:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229454AbiJSA4Q (ORCPT ); Tue, 18 Oct 2022 20:56:16 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 95C5DC97FD for ; Tue, 18 Oct 2022 17:56:15 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29INi8vU005567; Wed, 19 Oct 2022 00:56:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2022-7-12; bh=Vceponq7eAFUqTu6CGWdqDZyJ21Mh5Eod4o60p5T6SU=; b=eUxo+IE8H9VexyDBEWzD3uKw939uGXWeg+9S6CL3G/e5ypgEpMJP3CME+Ck6echR7xx9 nB6yl++raR8m7qfYgxSoDt6uCI+QsDZSrumF4+KjueyeNYz3lQTQWTVRIhRme4j4r9l6 0IWFYipweABlxyWyeKZbiQtShJ6glPxTsTUFdXU11/YXSFVS/IiPrU2skZ+9cOoIC+V3 iz7bIts5NZAR5rYYTFwsSQL/xZnfR6RAAcDb+KLZLAFHtocvUJ7a7zM11hAG45EXOQNt 89ONmtKHivP90JL1GIA3Bxj03PiU/droXcwV4n/5MooLVwc/58k6U0Joa/HLCzNa+sLg Yw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k7mu00ka4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Oct 2022 00:56:12 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29ILnUhH016678; Wed, 19 Oct 2022 00:56:11 GMT Received: from ban25x6uut24.us.oracle.com (ban25x6uut24.us.oracle.com [10.153.73.24]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3k8htgrhfm-2; Wed, 19 Oct 2022 00:56:11 +0000 From: Si-Wei Liu To: mst@redhat.com, jasowang@redhat.com Cc: virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/4] vdpa: save vdpa_dev_set_config in struct vdpa_device Date: Tue, 18 Oct 2022 16:50:29 -0700 Message-Id: <1666137032-28192-2-git-send-email-si-wei.liu@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> References: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-18_10,2022-10-18_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210190003 X-Proofpoint-ORIG-GUID: lrfdVwc3WsuiaWtj3PwmOzSJ3D1pqDll X-Proofpoint-GUID: lrfdVwc3WsuiaWtj3PwmOzSJ3D1pqDll X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747075720515115636?= X-GMAIL-MSGID: =?utf-8?q?1747075720515115636?= In order to allow live migration orchestration software to export the initial set of vdpa attributes with which the device was created, it will be useful if the vdpa tool can report the config on demand with simple query. This will ease the orchestration software implementation so that it doesn't have to keep track of vdpa config change, or have to persist vdpa attributes across failure and recovery, in fear of being killed due to accidental software error. This commit attempts to make struct vdpa_device contain the struct vdpa_dev_set_config, where all config attributes upon vdpa creation are carried over. Which will be used in subsequent commits. Signed-off-by: Si-Wei Liu --- include/linux/vdpa.h | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h index 6d0f5e4..f1838f5 100644 --- a/include/linux/vdpa.h +++ b/include/linux/vdpa.h @@ -58,6 +58,16 @@ struct vdpa_vq_state { }; }; +struct vdpa_dev_set_config { + u64 device_features; + struct { + u8 mac[ETH_ALEN]; + u16 mtu; + u16 max_vq_pairs; + } net; + u64 mask; +}; + struct vdpa_mgmt_dev; /** @@ -77,6 +87,8 @@ struct vdpa_vq_state { * @nvqs: maximum number of supported virtqueues * @mdev: management device pointer; caller must setup when registering device as part * of dev_add() mgmtdev ops callback before invoking _vdpa_register_device(). + * @vdev_cfg: initial device config on vdpa creation; useful when instantiate with + * the exact same config is needed. */ struct vdpa_device { struct device dev; @@ -91,6 +103,7 @@ struct vdpa_device { struct vdpa_mgmt_dev *mdev; unsigned int ngroups; unsigned int nas; + struct vdpa_dev_set_config vdev_cfg; }; /** @@ -103,16 +116,6 @@ struct vdpa_iova_range { u64 last; }; -struct vdpa_dev_set_config { - u64 device_features; - struct { - u8 mac[ETH_ALEN]; - u16 mtu; - u16 max_vq_pairs; - } net; - u64 mask; -}; - /** * Corresponding file area for device memory mapping * @file: vma->vm_file for the mapping From patchwork Tue Oct 18 23:50:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Si-Wei Liu X-Patchwork-Id: 4395 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp61380wrs; Tue, 18 Oct 2022 17:58:47 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7iriemykD5drOK8ptl9k1Y1aQxxIuRRfNHYq3qW5I9aQNWHVI1XUtNg7+pl1OPkv2FhWb2 X-Received: by 2002:a63:1e19:0:b0:460:869a:f5bc with SMTP id e25-20020a631e19000000b00460869af5bcmr5031835pge.537.1666141126805; Tue, 18 Oct 2022 17:58:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666141126; cv=none; d=google.com; s=arc-20160816; b=u+H6iVFYCREohE9vMwdZP4H9YzoC6Ppev+WWfgrjNgWR3sF8NiHXHpL6CjuwPbKX3H qNPsY7g63E4MyoJsNck2mBzdkhEU0hKInU8UtbgAARbSseaSKE+iPaHbsLOV3y7HRWfb NGj/WC5TwTJ6yqt2er6DjJAtcVQfCZ8QZPi2Xh+gwED5sxTYMh3Gg5zC3lFJ3tF1vhT4 /OKfGhaAVFiyOQqOfKtCb5fWJl2AlZCSinkojZ2JbF8eyPIFg4+xdglWzTtz4FerDwLe H4vsdkePjlRVsCpOHYJ4t/N6gLPJjILgnijf3brGA1QktsLto28kwPmC9KkLPPTvzzRX Tzkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=6OKBJgFbXS3OjE73iQJfSkItm6qvzXxZpGWp2/+KhZg=; b=ZEGq4ljZJOc2u9uGrxB7LyvbaOnh+wdoGreFZ6sTNHrkgmlqkaCpKyPBXlPmax9b4h 4gdm/RnmUNpsVVadcj7spz0U2Y4D/1/oaarIQYJ2Hot5RBYsV4zEw84n+4CZmvqt3KoP WAoSNZTJu8Lme9Yi3qQn+2t0AnqXaMFOJ50qIuWcjZ/en+ijxYLTiVwraeWT7JbXgooA Tt1D4wGqvF+yd9PaD8w39pWyBI8ByCoF3CwepQKVLv6jHZlWEDUYrXSGaOkjRoi8B3TL qLAh/8nLV7dkLnQSSlRorcicWIMZSUGq4WuBm9LXboFlCZYfZeS3gTN3V1sYR4jy8mq6 CvmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=2nEhbjlm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k1-20020a628401000000b005662e18c93asi15119630pfd.135.2022.10.18.17.58.34; Tue, 18 Oct 2022 17:58:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=2nEhbjlm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229756AbiJSA4T (ORCPT + 99 others); Tue, 18 Oct 2022 20:56:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32780 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229625AbiJSA4Q (ORCPT ); Tue, 18 Oct 2022 20:56:16 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E66D3CA8B1 for ; Tue, 18 Oct 2022 17:56:15 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29INi02T025707; Wed, 19 Oct 2022 00:56:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2022-7-12; bh=6OKBJgFbXS3OjE73iQJfSkItm6qvzXxZpGWp2/+KhZg=; b=2nEhbjlmXgIWhX4a9OIrCzxlfVq/emWvuMZWjo4TYevCuApKvldZ8fk+sxCtesLiErkF FYCecVmQqX58GFTmJ3W7ykgJOn65dfiL4gJtGRmJtTdridOH+vCGoNF2yqN5cUf0VSPD hX7+hg+6FBJXgcw9Emq/oN3p5lAknqZkXZ+67euo+gPIUTRM7bvpC/u2FWhNiVrNHpl0 iAS/EFd8WRXEHkJYSbKdNkurzAKQoBNv6RLnS4aIWfVmNDXS+wixpva5aGMzu+EcOeUh mJL4wpIeFQ9vdRjFSPyJQyP3r02EY5a2As4McJLeuGO5PMY6dVfFOdggZ/OQb45w3gCE sw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k7mw3gc6m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Oct 2022 00:56:12 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29ILnUhI016678; Wed, 19 Oct 2022 00:56:12 GMT Received: from ban25x6uut24.us.oracle.com (ban25x6uut24.us.oracle.com [10.153.73.24]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3k8htgrhfm-3; Wed, 19 Oct 2022 00:56:12 +0000 From: Si-Wei Liu To: mst@redhat.com, jasowang@redhat.com Cc: virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/4] vdpa: pass initial config to _vdpa_register_device() Date: Tue, 18 Oct 2022 16:50:30 -0700 Message-Id: <1666137032-28192-3-git-send-email-si-wei.liu@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> References: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-18_10,2022-10-18_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210190003 X-Proofpoint-ORIG-GUID: zVT2XndAdswwS49CRlU8k2umoOeBn3Wt X-Proofpoint-GUID: zVT2XndAdswwS49CRlU8k2umoOeBn3Wt X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747075598069550097?= X-GMAIL-MSGID: =?utf-8?q?1747075598069550097?= Just as _vdpa_register_device taking @nvqs as the number of queues to feed userspace inquery via vdpa_dev_fill(), we can follow the same to stash config attributes in struct vdpa_device at the time of vdpa registration. Signed-off-by: Si-Wei Liu --- drivers/vdpa/ifcvf/ifcvf_main.c | 2 +- drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 +- drivers/vdpa/vdpa.c | 15 +++++++++++---- drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 2 +- drivers/vdpa/vdpa_sim/vdpa_sim_net.c | 2 +- drivers/vdpa/vdpa_user/vduse_dev.c | 2 +- drivers/vdpa/virtio_pci/vp_vdpa.c | 3 ++- include/linux/vdpa.h | 3 ++- 8 files changed, 20 insertions(+), 11 deletions(-) diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c index f9c0044..c54ab2c 100644 --- a/drivers/vdpa/ifcvf/ifcvf_main.c +++ b/drivers/vdpa/ifcvf/ifcvf_main.c @@ -771,7 +771,7 @@ static int ifcvf_vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name, else ret = dev_set_name(&vdpa_dev->dev, "vdpa%u", vdpa_dev->index); - ret = _vdpa_register_device(&adapter->vdpa, vf->nr_vring); + ret = _vdpa_register_device(&adapter->vdpa, vf->nr_vring, config); if (ret) { put_device(&adapter->vdpa.dev); IFCVF_ERR(pdev, "Failed to register to vDPA bus"); diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c index 9091336..376082e 100644 --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -3206,7 +3206,7 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name, mlx5_notifier_register(mdev, &ndev->nb); ndev->nb_registered = true; mvdev->vdev.mdev = &mgtdev->mgtdev; - err = _vdpa_register_device(&mvdev->vdev, max_vqs + 1); + err = _vdpa_register_device(&mvdev->vdev, max_vqs + 1, add_config); if (err) goto err_reg; diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index febdc99..566c1c6 100644 --- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c @@ -215,11 +215,16 @@ static int vdpa_name_match(struct device *dev, const void *data) return (strcmp(dev_name(&vdev->dev), data) == 0); } -static int __vdpa_register_device(struct vdpa_device *vdev, u32 nvqs) +static int __vdpa_register_device(struct vdpa_device *vdev, u32 nvqs, + const struct vdpa_dev_set_config *cfg) { struct device *dev; vdev->nvqs = nvqs; + if (cfg) + vdev->vdev_cfg = *cfg; + else + vdev->vdev_cfg.mask = 0ULL; lockdep_assert_held(&vdpa_dev_lock); dev = bus_find_device(&vdpa_bus, NULL, dev_name(&vdev->dev), vdpa_name_match); @@ -237,15 +242,17 @@ static int __vdpa_register_device(struct vdpa_device *vdev, u32 nvqs) * callback after setting up valid mgmtdev for this vdpa device. * @vdev: the vdpa device to be registered to vDPA bus * @nvqs: number of virtqueues supported by this device + * @cfg: initial config on vdpa device creation * * Return: Returns an error when fail to add device to vDPA bus */ -int _vdpa_register_device(struct vdpa_device *vdev, u32 nvqs) +int _vdpa_register_device(struct vdpa_device *vdev, u32 nvqs, + const struct vdpa_dev_set_config *cfg) { if (!vdev->mdev) return -EINVAL; - return __vdpa_register_device(vdev, nvqs); + return __vdpa_register_device(vdev, nvqs, cfg); } EXPORT_SYMBOL_GPL(_vdpa_register_device); @@ -262,7 +269,7 @@ int vdpa_register_device(struct vdpa_device *vdev, u32 nvqs) int err; down_write(&vdpa_dev_lock); - err = __vdpa_register_device(vdev, nvqs); + err = __vdpa_register_device(vdev, nvqs, NULL); up_write(&vdpa_dev_lock); return err; } diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c index c6db1a1..5e1cebc 100644 --- a/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c +++ b/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c @@ -387,7 +387,7 @@ static int vdpasim_blk_dev_add(struct vdpa_mgmt_dev *mdev, const char *name, if (IS_ERR(simdev)) return PTR_ERR(simdev); - ret = _vdpa_register_device(&simdev->vdpa, VDPASIM_BLK_VQ_NUM); + ret = _vdpa_register_device(&simdev->vdpa, VDPASIM_BLK_VQ_NUM, config); if (ret) goto put_dev; diff --git a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c index c3cb225..06ef5a0 100644 --- a/drivers/vdpa/vdpa_sim/vdpa_sim_net.c +++ b/drivers/vdpa/vdpa_sim/vdpa_sim_net.c @@ -260,7 +260,7 @@ static int vdpasim_net_dev_add(struct vdpa_mgmt_dev *mdev, const char *name, vdpasim_net_setup_config(simdev, config); - ret = _vdpa_register_device(&simdev->vdpa, VDPASIM_NET_VQ_NUM); + ret = _vdpa_register_device(&simdev->vdpa, VDPASIM_NET_VQ_NUM, config); if (ret) goto reg_err; diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index 35dceee..6530fd2 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -1713,7 +1713,7 @@ static int vdpa_dev_add(struct vdpa_mgmt_dev *mdev, const char *name, if (ret) return ret; - ret = _vdpa_register_device(&dev->vdev->vdpa, dev->vq_num); + ret = _vdpa_register_device(&dev->vdev->vdpa, dev->vq_num, config); if (ret) { put_device(&dev->vdev->vdpa.dev); return ret; diff --git a/drivers/vdpa/virtio_pci/vp_vdpa.c b/drivers/vdpa/virtio_pci/vp_vdpa.c index d448db0..ffdc90e 100644 --- a/drivers/vdpa/virtio_pci/vp_vdpa.c +++ b/drivers/vdpa/virtio_pci/vp_vdpa.c @@ -538,7 +538,8 @@ static int vp_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name, vp_vdpa->config_irq = VIRTIO_MSI_NO_VECTOR; vp_vdpa->vdpa.mdev = &vp_vdpa_mgtdev->mgtdev; - ret = _vdpa_register_device(&vp_vdpa->vdpa, vp_vdpa->queues); + ret = _vdpa_register_device(&vp_vdpa->vdpa, vp_vdpa->queues, + add_config); if (ret) { dev_err(&pdev->dev, "Failed to register to vdpa bus\n"); goto err; diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h index f1838f5..b9d50e8 100644 --- a/include/linux/vdpa.h +++ b/include/linux/vdpa.h @@ -381,7 +381,8 @@ struct vdpa_device *__vdpa_alloc_device(struct device *parent, int vdpa_register_device(struct vdpa_device *vdev, u32 nvqs); void vdpa_unregister_device(struct vdpa_device *vdev); -int _vdpa_register_device(struct vdpa_device *vdev, u32 nvqs); +int _vdpa_register_device(struct vdpa_device *vdev, u32 nvqs, + const struct vdpa_dev_set_config *cfg); void _vdpa_unregister_device(struct vdpa_device *vdev); /** From patchwork Tue Oct 18 23:50:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Si-Wei Liu X-Patchwork-Id: 4397 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp62156wrs; Tue, 18 Oct 2022 18:00:57 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Urmax6C7TmXSi9yWsF3H63kiLupQsbebaznaToPI2BqgJ4USaFEf47k20DkmNXXNG4XEN X-Received: by 2002:a63:5702:0:b0:44b:290:f24f with SMTP id l2-20020a635702000000b0044b0290f24fmr4954440pgb.558.1666141257508; Tue, 18 Oct 2022 18:00:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666141257; cv=none; d=google.com; s=arc-20160816; b=RaBFORriqEDAHIEHGoC8ZzX/AdwxzoemEWVSX1YYR09Vuxq2lSMIk6yJ131TTTySCi i48/3ujrRgYUUo2d8Q7pZoMcOF4qRB2fBz7HLXSRTncyux/iDM4j0Jyq+ooG5CkesY+p 0jDUCkY351PzT+YtmtFpukM8dJkpY498+QAzBjruhaflxipFJbpcNRpze2497aHVATFD 7tvMZhHiXstfRc14QaxgDCphyEAmvqCygknZAjMA29MLAaNMzARGJCe8prC36Xg526LD b1VKzzyG/5Z6vTPHma2lDIXRq5QLppfC//N0xpCsLeTuBZXuvabymCuqZSpHDKK7XDhj GCyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=4nx+iApfvHRVvMFxSVa+tU7zlotqTeZHlPcdBrN2+4E=; b=vRj82U3k4OIdUWOB6dkZg9c8FTfSrzBb8Bf307DQkbASAq9Eh3HG8x4LnbrblIdzIb e5k6gHk5idDA3iMJArT96VMTP4v3Dje6MlnD0H7v/YQWliXf5dbiw965ob9mPmGeF6Wt d9FszGHrqYbGKstY7Sxeh/kE0uyQeiyoElhTyngivqdeI4fqkKiUKK5KGGFcKflcel5O MoAZPTM6ZbYGLiFehxGd0ayiAWGTE1WNoW6WCuXQJsygOwhAz8y5/grJhKg2k8uxVLKd BtK92vMlp+6WpRQe07XrcyOHP58hGGYghtJKQZBEGzwP48n5KhsA7BZcFYcV62QcTFyJ aWXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=tUnxhwi7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 7-20020a630007000000b0045075b52a0fsi15006068pga.534.2022.10.18.18.00.45; Tue, 18 Oct 2022 18:00:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=tUnxhwi7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229911AbiJSA4c (ORCPT + 99 others); Tue, 18 Oct 2022 20:56:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229705AbiJSA4R (ORCPT ); Tue, 18 Oct 2022 20:56:17 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC142CA8B9 for ; Tue, 18 Oct 2022 17:56:16 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29INiEL4015089; Wed, 19 Oct 2022 00:56:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2022-7-12; bh=4nx+iApfvHRVvMFxSVa+tU7zlotqTeZHlPcdBrN2+4E=; b=tUnxhwi7kZotAbWL+FVUdF8HK/MdvBOEe/hK4a124Ih3AWAqpJp3aTXzAuK9gOmMHdWG r0kSgOPn1wm9UyS4iwUZF1fft++lJzMJtGdNfnCQtzrU8O7+5saGAKonyLhy1GaFFgGT TgHg4iVY218J0JUYdau0ly8MQ2fruWL5J4uYpH1PGm1kNVV/qAmhrQrllAYqt5ebzlni L4rG0RBx3yF6C8j6vm/gMl0y46Cb70kFtcR+aIA6X3vzvfABbl5Ex6SPH/Kff/CnhScL a7NRDI4ckPcQMcNsEuqKnNaS8FkSl3e+hDzXsu6REH52ygR0ve5Nk7/srdLRyKAMd7Kl Sg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k9b7skyym-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Oct 2022 00:56:13 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29ILnUhJ016678; Wed, 19 Oct 2022 00:56:12 GMT Received: from ban25x6uut24.us.oracle.com (ban25x6uut24.us.oracle.com [10.153.73.24]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3k8htgrhfm-4; Wed, 19 Oct 2022 00:56:12 +0000 From: Si-Wei Liu To: mst@redhat.com, jasowang@redhat.com Cc: virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/4] vdpa: show dev config as-is in "vdpa dev show" output Date: Tue, 18 Oct 2022 16:50:31 -0700 Message-Id: <1666137032-28192-4-git-send-email-si-wei.liu@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> References: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-18_10,2022-10-18_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210190003 X-Proofpoint-GUID: 9cpqheKdIGEWX87YA7drLLE3qIvH6cMb X-Proofpoint-ORIG-GUID: 9cpqheKdIGEWX87YA7drLLE3qIvH6cMb X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747075735010854254?= X-GMAIL-MSGID: =?utf-8?q?1747075735010854254?= Live migration of vdpa would typically require re-instate vdpa device with an idential set of configs on the destination node, same way as how source node created the device in the first place. In order to save orchestration software from memorizing and keeping track of vdpa config, it will be helpful if the vdpa tool provides the aids for exporting the initial configs from which vdpa device was created as-is. The "vdpa dev show" command seems to be the right vehicle for that. It is unlike the "vdpa dev config show" command output that usually goes with the live value in the device config space, which is not quite reliable subject to the dynamics of feature negotiation and possible change in device config space. Examples: 1) Create vDPA by default without any config attribute $ vdpa dev add mgmtdev pci/0000:41:04.2 name vdpa0 $ vdpa dev show vdpa0 vdpa0: type network mgmtdev pci/0000:41:04.2 vendor_id 5555 max_vqs 9 max_vq_size 256 $ vdpa dev -jp show vdpa0 { "dev": { "vdpa0": { "type": "network", "mgmtdev": "pci/0000:41:04.2", "vendor_id": 5555, "max_vqs": 9, "max_vq_size": 256, } } } 2) Create vDPA with config attribute(s) specified $ vdpa dev add mgmtdev pci/0000:41:04.2 name vdpa0 \ mac e4:11:c6:d3:45:f0 max_vq_pairs 4 $ vdpa dev show vdpa0: type network mgmtdev pci/0000:41:04.2 vendor_id 5555 max_vqs 9 max_vq_size 256 virtio_config: mac e4:11:c6:d3:45:f0 max_vq_pairs 4 $ vdpa dev -jp show { "dev": { "vdpa0": { "type": "network", "mgmtdev": "pci/0000:41:04.2", "vendor_id": 5555, "max_vqs": 9, "max_vq_size": 256, "virtio_config": { "mac": "e4:11:c6:d3:45:f0", "max_vq_pairs": 4 } } } } Signed-off-by: Si-Wei Liu --- drivers/vdpa/vdpa.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index 566c1c6..91eca6d 100644 --- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c @@ -677,6 +677,41 @@ static int vdpa_nl_cmd_dev_del_set_doit(struct sk_buff *skb, struct genl_info *i } static int +vdpa_dev_cfgattrs_fill(struct vdpa_device *vdev, struct sk_buff *msg, u32 device_id) +{ + struct vdpa_dev_set_config *cfg = &vdev->vdev_cfg; + int err = -EMSGSIZE; + + if (!cfg->mask) + return 0; + + switch (device_id) { + case VIRTIO_ID_NET: + if ((cfg->mask & BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MACADDR)) != 0 && + nla_put(msg, VDPA_ATTR_DEV_NET_CFG_MACADDR, + sizeof(cfg->net.mac), cfg->net.mac)) + return err; + if ((cfg->mask & BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MTU)) != 0 && + nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MTU, cfg->net.mtu)) + return err; + if ((cfg->mask & BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MAX_VQP)) != 0 && + nla_put_u16(msg, VDPA_ATTR_DEV_NET_CFG_MAX_VQP, + cfg->net.max_vq_pairs)) + return err; + break; + default: + break; + } + + if ((cfg->mask & BIT_ULL(VDPA_ATTR_DEV_FEATURES)) != 0 && + nla_put_u64_64bit(msg, VDPA_ATTR_DEV_FEATURES, + cfg->device_features, VDPA_ATTR_PAD)) + return err; + + return 0; +} + +static int vdpa_dev_fill(struct vdpa_device *vdev, struct sk_buff *msg, u32 portid, u32 seq, int flags, struct netlink_ext_ack *extack) { @@ -715,6 +750,10 @@ static int vdpa_nl_cmd_dev_del_set_doit(struct sk_buff *skb, struct genl_info *i if (nla_put_u16(msg, VDPA_ATTR_DEV_MIN_VQ_SIZE, min_vq_size)) goto msg_err; + err = vdpa_dev_cfgattrs_fill(vdev, msg, device_id); + if (err) + goto msg_err; + genlmsg_end(msg, hdr); return 0; From patchwork Tue Oct 18 23:50:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Si-Wei Liu X-Patchwork-Id: 4394 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4ac7:0:0:0:0:0 with SMTP id y7csp61301wrs; Tue, 18 Oct 2022 17:58:26 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5lw+ti3N465rIamVsfXiRgQOABjaMyDLu/3M09bHhuy5K4lG3E8m+G0mv7+BcxTZbiAO/v X-Received: by 2002:a17:902:7c0d:b0:178:a6ca:1dbc with SMTP id x13-20020a1709027c0d00b00178a6ca1dbcmr5812476pll.115.1666141105908; Tue, 18 Oct 2022 17:58:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666141105; cv=none; d=google.com; s=arc-20160816; b=Q+Q/OzMk3hBKEKJwzTX3EDkpfuyq9ynFrkxrIv9v+QNAzezQctkvZ55ju0avw0FG+T KwCvb+bAgVMynsZPVvtTpLcQXElVE7ejOQDvem+isFZoFrewZIJkqPHZkBCrQx1/fgJs 4zR5Du14406KMNa9aZnz8ihZZbE4pqAklZLslLqQ/1YIiVjN8QQmRJYymluDW7Z7qb1K SktafXHk5/j8Nr0jCqVmGid6A18VNo3R9VAAPo8xKh3/bc2jndo2GQISc2hLZbl4bZEh ofYsTR7/smHDKJvNmXg68qKKVtE1lxTlTFsZrJpLlKBnctAVlz5q02y1l10lFx0TYx1O /hjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:dkim-signature; bh=9ktHFLbxiHPNJk8/uwRXopWzYH45YEFFBA2qhx+h77s=; b=XGg7GwqrHfHlUksZ/CTqRIsCcV5u5ZMpYKQlI2RjvM+tDoytClitRDo9QBxTEJql1r 5KWeoUsOkajB3fWKYAE/EdTXEoXt0SxTBuyjbeeWvbSOWKlLkB/wt3aqyHd1wdKaOEXg ZYAV/WcI/INoFB16vQJ8wtKoqOZaN2BVq3OdwJJRTiAbaYCxXTBJThSff0KKsEq+mETl gm4iWxgffaGGsZaVykz/HR4uH+IkU3zv5QDuFVejH8OJZDryYXQHMvszkjR/i+Vgy3ei KYpURqxWy/VvahZjZUnOIAAkr4DOawzzncBaUf2Pqk4Vqkfv/1IURHWkDGv/jboJaizU qazw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=lxHjyJGc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k12-20020a6568cc000000b0041b577f3356si16770990pgt.720.2022.10.18.17.58.13; Tue, 18 Oct 2022 17:58:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2022-7-12 header.b=lxHjyJGc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229870AbiJSA4Y (ORCPT + 99 others); Tue, 18 Oct 2022 20:56:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229691AbiJSA4R (ORCPT ); Tue, 18 Oct 2022 20:56:17 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2DB9CA8B3 for ; Tue, 18 Oct 2022 17:56:16 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29INiAZs005578; Wed, 19 Oct 2022 00:56:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2022-7-12; bh=9ktHFLbxiHPNJk8/uwRXopWzYH45YEFFBA2qhx+h77s=; b=lxHjyJGcLn6xDsyFIThSUcKj7O+7uYmeG1W20ghtS7E2KBdpdLCMKNGMT1HJ5RLMJ2dy e39egAsrMWR8IstBllcsQLbxlfnyu3bErI+A0zGDSsjNDXGagXwlHp+rac9OL0I7WXje pH9/OESzFRQOwAt9MnKdZv1wDzXz2hHUH/VwqIe4Zxsl6EYD+VtUaDseouEfSEm7hioc i7A/GreVM2y1XHZo3w7z5dbsJEkDThl57eM7a9ybWQYBfLyFT/QOGEQBaW7WDX8gIRNx CnyxtJNezCSdYYKlXjma61DfsMDUtPFKw+rJy/LCyJqyS4YRyWdB5vvANfxjiHmZMXT9 2g== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k7mu00ka5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 19 Oct 2022 00:56:13 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29ILnUhK016678; Wed, 19 Oct 2022 00:56:12 GMT Received: from ban25x6uut24.us.oracle.com (ban25x6uut24.us.oracle.com [10.153.73.24]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id 3k8htgrhfm-5; Wed, 19 Oct 2022 00:56:12 +0000 From: Si-Wei Liu To: mst@redhat.com, jasowang@redhat.com Cc: virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/4] vdpa: fix improper error message when adding vdpa dev Date: Tue, 18 Oct 2022 16:50:32 -0700 Message-Id: <1666137032-28192-5-git-send-email-si-wei.liu@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> References: <1666137032-28192-1-git-send-email-si-wei.liu@oracle.com> X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-18_10,2022-10-18_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 malwarescore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210190003 X-Proofpoint-ORIG-GUID: vPljvJ3jKbXm8D5VYQgw19smUI1U2Xz5 X-Proofpoint-GUID: vPljvJ3jKbXm8D5VYQgw19smUI1U2Xz5 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747075576264355307?= X-GMAIL-MSGID: =?utf-8?q?1747075576264355307?= In below example, before the fix, mtu attribute is supported by the parent mgmtdev, but the error message showing "All provided are not supported" is just misleading. $ vdpa mgmtdev show vdpasim_net: supported_classes net max_supported_vqs 3 dev_features MTU MAC CTRL_VQ CTRL_MAC_ADDR ANY_LAYOUT VERSION_1 ACCESS_PLATFORM $ vdpa dev add mgmtdev vdpasim_net name vdpasim0 mtu 5000 max_vqp 2 Error: vdpa: All provided attributes are not supported. kernel answers: Operation not supported After fix, the relevant error message will be like: $ vdpa dev add mgmtdev vdpasim_net name vdpasim0 mtu 5000 max_vqp 2 Error: vdpa: Some provided attributes are not supported. kernel answers: Operation not supported $ vdpa dev add mgmtdev vdpasim_net name vdpasim0 max_vqp 2 Error: vdpa: All provided attributes are not supported. kernel answers: Operation not supported Signed-off-by: Si-Wei Liu Acked-by: Jason Wang --- drivers/vdpa/vdpa.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index 91eca6d..ff15e0a 100644 --- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c @@ -629,13 +629,20 @@ static int vdpa_nl_cmd_dev_add_set_doit(struct sk_buff *skb, struct genl_info *i err = PTR_ERR(mdev); goto err; } - if ((config.mask & mdev->config_attr_mask) != config.mask) { + if (config.mask && (config.mask & mdev->config_attr_mask) == 0) { NL_SET_ERR_MSG_MOD(info->extack, "All provided attributes are not supported"); err = -EOPNOTSUPP; goto err; } + if ((config.mask & mdev->config_attr_mask) != config.mask) { + NL_SET_ERR_MSG_MOD(info->extack, + "Some provided attributes are not supported"); + err = -EOPNOTSUPP; + goto err; + } + err = mdev->ops->dev_add(mdev, name, &config); err: up_write(&vdpa_dev_lock);