From: Jason Wang <jasowang@redhat.com> To: mst@redhat.com, jasowang@redhat.com Cc: elic@nvidia.com, si-wei.liu@oracle.com, parav@nvidia.com, wuzongyong@linux.alibaba.com, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, eperezma@redhat.com, lingshan.zhu@intel.com, gdawar@xilinx.com, lulu@redhat.com, xieyongji@bytedance.com Subject: [PATCH V2 1/3] vdpa: device feature provisioning Date: Thu, 22 Sep 2022 10:43:03 +0800 [thread overview] Message-ID: <20220922024305.1718-2-jasowang@redhat.com> (raw) In-Reply-To: <20220922024305.1718-1-jasowang@redhat.com> This patch allows the device features to be provisioned through netlink. A new attribute is introduced to allow the userspace to pass a 64bit device features during device adding. This provides several advantages: - Allow to provision a subset of the features to ease the cross vendor live migration. - Better debug-ability for vDPA framework and parent. Reviewed-by: Eli Cohen <elic@nvidia.com> Signed-off-by: Jason Wang <jasowang@redhat.com> --- drivers/vdpa/vdpa.c | 5 +++++ include/linux/vdpa.h | 1 + include/uapi/linux/vdpa.h | 2 ++ 3 files changed, 8 insertions(+) diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index c06c02704461..278e26bfa492 100644 --- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c @@ -600,6 +600,11 @@ static int vdpa_nl_cmd_dev_add_set_doit(struct sk_buff *skb, struct genl_info *i } config.mask |= BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MAX_VQP); } + if (nl_attrs[VDPA_ATTR_DEV_FEATURES]) { + config.device_features = + nla_get_u64(nl_attrs[VDPA_ATTR_DEV_FEATURES]); + config.mask |= BIT_ULL(VDPA_ATTR_DEV_FEATURES); + } /* Skip checking capability if user didn't prefer to configure any * device networking attributes. It is likely that user might have used diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h index d282f464d2f1..6d0f5e4e82c2 100644 --- a/include/linux/vdpa.h +++ b/include/linux/vdpa.h @@ -104,6 +104,7 @@ struct vdpa_iova_range { }; struct vdpa_dev_set_config { + u64 device_features; struct { u8 mac[ETH_ALEN]; u16 mtu; diff --git a/include/uapi/linux/vdpa.h b/include/uapi/linux/vdpa.h index 25c55cab3d7c..9dc855f37c59 100644 --- a/include/uapi/linux/vdpa.h +++ b/include/uapi/linux/vdpa.h @@ -52,6 +52,8 @@ enum vdpa_attr { VDPA_ATTR_DEV_VENDOR_ATTR_NAME, /* string */ VDPA_ATTR_DEV_VENDOR_ATTR_VALUE, /* u64 */ + VDPA_ATTR_DEV_FEATURES, /* u64 */ + /* new attributes must be added above here */ VDPA_ATTR_MAX, }; -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Jason Wang <jasowang@redhat.com> To: mst@redhat.com, jasowang@redhat.com Cc: lulu@redhat.com, xieyongji@bytedance.com, linux-kernel@vger.kernel.org, gdawar@xilinx.com, virtualization@lists.linux-foundation.org, eperezma@redhat.com, wuzongyong@linux.alibaba.com, elic@nvidia.com, lingshan.zhu@intel.com Subject: [PATCH V2 1/3] vdpa: device feature provisioning Date: Thu, 22 Sep 2022 10:43:03 +0800 [thread overview] Message-ID: <20220922024305.1718-2-jasowang@redhat.com> (raw) In-Reply-To: <20220922024305.1718-1-jasowang@redhat.com> This patch allows the device features to be provisioned through netlink. A new attribute is introduced to allow the userspace to pass a 64bit device features during device adding. This provides several advantages: - Allow to provision a subset of the features to ease the cross vendor live migration. - Better debug-ability for vDPA framework and parent. Reviewed-by: Eli Cohen <elic@nvidia.com> Signed-off-by: Jason Wang <jasowang@redhat.com> --- drivers/vdpa/vdpa.c | 5 +++++ include/linux/vdpa.h | 1 + include/uapi/linux/vdpa.h | 2 ++ 3 files changed, 8 insertions(+) diff --git a/drivers/vdpa/vdpa.c b/drivers/vdpa/vdpa.c index c06c02704461..278e26bfa492 100644 --- a/drivers/vdpa/vdpa.c +++ b/drivers/vdpa/vdpa.c @@ -600,6 +600,11 @@ static int vdpa_nl_cmd_dev_add_set_doit(struct sk_buff *skb, struct genl_info *i } config.mask |= BIT_ULL(VDPA_ATTR_DEV_NET_CFG_MAX_VQP); } + if (nl_attrs[VDPA_ATTR_DEV_FEATURES]) { + config.device_features = + nla_get_u64(nl_attrs[VDPA_ATTR_DEV_FEATURES]); + config.mask |= BIT_ULL(VDPA_ATTR_DEV_FEATURES); + } /* Skip checking capability if user didn't prefer to configure any * device networking attributes. It is likely that user might have used diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h index d282f464d2f1..6d0f5e4e82c2 100644 --- a/include/linux/vdpa.h +++ b/include/linux/vdpa.h @@ -104,6 +104,7 @@ struct vdpa_iova_range { }; struct vdpa_dev_set_config { + u64 device_features; struct { u8 mac[ETH_ALEN]; u16 mtu; diff --git a/include/uapi/linux/vdpa.h b/include/uapi/linux/vdpa.h index 25c55cab3d7c..9dc855f37c59 100644 --- a/include/uapi/linux/vdpa.h +++ b/include/uapi/linux/vdpa.h @@ -52,6 +52,8 @@ enum vdpa_attr { VDPA_ATTR_DEV_VENDOR_ATTR_NAME, /* string */ VDPA_ATTR_DEV_VENDOR_ATTR_VALUE, /* u64 */ + VDPA_ATTR_DEV_FEATURES, /* u64 */ + /* new attributes must be added above here */ VDPA_ATTR_MAX, }; -- 2.25.1 _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2022-09-22 2:43 UTC|newest] Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-22 2:43 [PATCH V2 0/3] vdpa: device feature provisioning Jason Wang 2022-09-22 2:43 ` Jason Wang 2022-09-22 2:43 ` Jason Wang [this message] 2022-09-22 2:43 ` [PATCH V2 1/3] " Jason Wang 2022-09-22 2:43 ` [PATCH V2 2/3] vdpa_sim_net: support " Jason Wang 2022-09-22 2:43 ` Jason Wang 2022-09-22 5:13 ` Eli Cohen 2022-09-22 7:29 ` Michael S. Tsirkin 2022-09-22 7:29 ` Michael S. Tsirkin 2022-09-22 7:47 ` Eli Cohen 2022-09-22 7:53 ` Michael S. Tsirkin 2022-09-22 7:53 ` Michael S. Tsirkin 2022-09-22 8:01 ` Eli Cohen 2022-09-22 9:11 ` Michael S. Tsirkin 2022-09-22 9:11 ` Michael S. Tsirkin 2022-09-23 4:17 ` Jason Wang 2022-09-23 4:17 ` Jason Wang 2022-09-23 4:20 ` Jason Wang 2022-09-23 4:20 ` Jason Wang 2022-09-22 9:22 ` Stefano Garzarella 2022-09-22 9:22 ` Stefano Garzarella 2022-09-23 3:33 ` Jason Wang 2022-09-23 3:33 ` Jason Wang 2022-09-23 20:01 ` Si-Wei Liu 2022-09-23 20:01 ` Si-Wei Liu 2022-09-26 7:11 ` Jason Wang 2022-09-26 7:11 ` Jason Wang 2022-09-26 7:11 ` Jason Wang 2022-09-26 7:11 ` Jason Wang 2022-09-27 1:01 ` Si-Wei Liu 2022-09-27 3:59 ` Jason Wang 2022-09-27 3:59 ` Jason Wang 2022-09-27 4:07 ` Jason Wang 2022-09-27 4:07 ` Jason Wang 2022-09-27 10:00 ` Si-Wei Liu 2022-09-29 4:10 ` Jason Wang 2022-09-29 4:10 ` Jason Wang 2022-10-10 17:44 ` Si-Wei Liu 2022-10-10 17:44 ` Si-Wei Liu 2022-09-27 9:41 ` Si-Wei Liu 2022-09-29 4:55 ` Jason Wang 2022-09-29 4:55 ` Jason Wang 2022-10-07 0:35 ` Si-Wei Liu 2022-10-07 0:35 ` Si-Wei Liu 2022-10-13 7:10 ` Jason Wang 2022-10-13 7:10 ` Jason Wang 2022-10-17 18:43 ` Si-Wei Liu 2022-10-18 7:45 ` Jason Wang 2022-10-18 7:45 ` Jason Wang 2022-09-22 2:43 ` [PATCH V2 3/3] vp_vdpa: " Jason Wang 2022-09-22 2:43 ` Jason Wang 2022-09-23 20:11 ` Si-Wei Liu 2022-09-23 20:11 ` Si-Wei Liu 2022-09-26 7:14 ` Jason Wang 2022-09-26 7:14 ` Jason Wang
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220922024305.1718-2-jasowang@redhat.com \ --to=jasowang@redhat.com \ --cc=elic@nvidia.com \ --cc=eperezma@redhat.com \ --cc=gdawar@xilinx.com \ --cc=lingshan.zhu@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=lulu@redhat.com \ --cc=mst@redhat.com \ --cc=parav@nvidia.com \ --cc=si-wei.liu@oracle.com \ --cc=virtualization@lists.linux-foundation.org \ --cc=wuzongyong@linux.alibaba.com \ --cc=xieyongji@bytedance.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.