From: Kirti Wankhede <kwankhede@nvidia.com> To: <alex.williamson@redhat.com>, <cjia@nvidia.com> Cc: <kevin.tian@intel.com>, <ziye.yang@intel.com>, <changpeng.liu@intel.com>, <yi.l.liu@intel.com>, <mlevitsk@redhat.com>, <eskultet@redhat.com>, <cohuck@redhat.com>, <dgilbert@redhat.com>, <jonathan.davies@nutanix.com>, <eauger@redhat.com>, <aik@ozlabs.ru>, <pasic@linux.ibm.com>, <felipe@nutanix.com>, <Zhengxiao.zx@Alibaba-inc.com>, <shuangtai.tst@alibaba-inc.com>, <Ken.Xue@amd.com>, <zhi.a.wang@intel.com>, <yan.y.zhao@intel.com>, <qemu-devel@nongnu.org>, <kvm@vger.kernel.org>, "Kirti Wankhede" <kwankhede@nvidia.com> Subject: [PATCH v12 Kernel 2/7] vfio iommu: Remove atomicity of ref_count of pinned pages Date: Sat, 8 Feb 2020 01:12:29 +0530 [thread overview] Message-ID: <1581104554-10704-3-git-send-email-kwankhede@nvidia.com> (raw) In-Reply-To: <1581104554-10704-1-git-send-email-kwankhede@nvidia.com> vfio_pfn.ref_count is always updated by holding iommu->lock, using atomic variable is overkill. Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com> Reviewed-by: Neo Jia <cjia@nvidia.com> --- drivers/vfio/vfio_iommu_type1.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index a177bf2c6683..d386461e5d11 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -111,7 +111,7 @@ struct vfio_pfn { struct rb_node node; dma_addr_t iova; /* Device address */ unsigned long pfn; /* Host pfn */ - atomic_t ref_count; + unsigned int ref_count; }; struct vfio_regions { @@ -232,7 +232,7 @@ static int vfio_add_to_pfn_list(struct vfio_dma *dma, dma_addr_t iova, vpfn->iova = iova; vpfn->pfn = pfn; - atomic_set(&vpfn->ref_count, 1); + vpfn->ref_count = 1; vfio_link_pfn(dma, vpfn); return 0; } @@ -250,7 +250,7 @@ static struct vfio_pfn *vfio_iova_get_vfio_pfn(struct vfio_dma *dma, struct vfio_pfn *vpfn = vfio_find_vpfn(dma, iova); if (vpfn) - atomic_inc(&vpfn->ref_count); + vpfn->ref_count++; return vpfn; } @@ -258,7 +258,8 @@ static int vfio_iova_put_vfio_pfn(struct vfio_dma *dma, struct vfio_pfn *vpfn) { int ret = 0; - if (atomic_dec_and_test(&vpfn->ref_count)) { + vpfn->ref_count--; + if (!vpfn->ref_count) { ret = put_pfn(vpfn->pfn, dma->prot); vfio_remove_from_pfn_list(dma, vpfn); } -- 2.7.0
WARNING: multiple messages have this Message-ID (diff)
From: Kirti Wankhede <kwankhede@nvidia.com> To: <alex.williamson@redhat.com>, <cjia@nvidia.com> Cc: Zhengxiao.zx@Alibaba-inc.com, kevin.tian@intel.com, yi.l.liu@intel.com, yan.y.zhao@intel.com, kvm@vger.kernel.org, eskultet@redhat.com, ziye.yang@intel.com, qemu-devel@nongnu.org, cohuck@redhat.com, shuangtai.tst@alibaba-inc.com, dgilbert@redhat.com, zhi.a.wang@intel.com, mlevitsk@redhat.com, pasic@linux.ibm.com, aik@ozlabs.ru, Kirti Wankhede <kwankhede@nvidia.com>, eauger@redhat.com, felipe@nutanix.com, jonathan.davies@nutanix.com, changpeng.liu@intel.com, Ken.Xue@amd.com Subject: [PATCH v12 Kernel 2/7] vfio iommu: Remove atomicity of ref_count of pinned pages Date: Sat, 8 Feb 2020 01:12:29 +0530 [thread overview] Message-ID: <1581104554-10704-3-git-send-email-kwankhede@nvidia.com> (raw) In-Reply-To: <1581104554-10704-1-git-send-email-kwankhede@nvidia.com> vfio_pfn.ref_count is always updated by holding iommu->lock, using atomic variable is overkill. Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com> Reviewed-by: Neo Jia <cjia@nvidia.com> --- drivers/vfio/vfio_iommu_type1.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index a177bf2c6683..d386461e5d11 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -111,7 +111,7 @@ struct vfio_pfn { struct rb_node node; dma_addr_t iova; /* Device address */ unsigned long pfn; /* Host pfn */ - atomic_t ref_count; + unsigned int ref_count; }; struct vfio_regions { @@ -232,7 +232,7 @@ static int vfio_add_to_pfn_list(struct vfio_dma *dma, dma_addr_t iova, vpfn->iova = iova; vpfn->pfn = pfn; - atomic_set(&vpfn->ref_count, 1); + vpfn->ref_count = 1; vfio_link_pfn(dma, vpfn); return 0; } @@ -250,7 +250,7 @@ static struct vfio_pfn *vfio_iova_get_vfio_pfn(struct vfio_dma *dma, struct vfio_pfn *vpfn = vfio_find_vpfn(dma, iova); if (vpfn) - atomic_inc(&vpfn->ref_count); + vpfn->ref_count++; return vpfn; } @@ -258,7 +258,8 @@ static int vfio_iova_put_vfio_pfn(struct vfio_dma *dma, struct vfio_pfn *vpfn) { int ret = 0; - if (atomic_dec_and_test(&vpfn->ref_count)) { + vpfn->ref_count--; + if (!vpfn->ref_count) { ret = put_pfn(vpfn->pfn, dma->prot); vfio_remove_from_pfn_list(dma, vpfn); } -- 2.7.0
next prev parent reply other threads:[~2020-02-07 20:16 UTC|newest] Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-07 19:42 [PATCH v12 Kernel 0/7] KABIs to support migration for VFIO devices Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-07 19:42 ` [PATCH v12 Kernel 1/7] vfio: KABI for migration interface for device state Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-10 17:25 ` Alex Williamson 2020-02-10 17:25 ` Alex Williamson 2020-02-12 20:56 ` Kirti Wankhede 2020-02-12 20:56 ` Kirti Wankhede 2020-02-14 10:21 ` Cornelia Huck 2020-02-14 10:21 ` Cornelia Huck 2020-02-27 8:58 ` Yan Zhao 2020-02-27 8:58 ` Yan Zhao 2020-02-07 19:42 ` Kirti Wankhede [this message] 2020-02-07 19:42 ` [PATCH v12 Kernel 2/7] vfio iommu: Remove atomicity of ref_count of pinned pages Kirti Wankhede 2020-02-07 19:42 ` [PATCH v12 Kernel 3/7] vfio iommu: Add ioctl definition for dirty pages tracking Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-07 19:42 ` [PATCH v12 Kernel 4/7] vfio iommu: Implementation of ioctl to " Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-10 9:49 ` Yan Zhao 2020-02-10 9:49 ` Yan Zhao 2020-02-10 19:44 ` Alex Williamson 2020-02-10 19:44 ` Alex Williamson 2020-02-11 2:52 ` Yan Zhao 2020-02-11 2:52 ` Yan Zhao 2020-02-11 3:45 ` Alex Williamson 2020-02-11 3:45 ` Alex Williamson 2020-02-11 4:11 ` Yan Zhao 2020-02-11 4:11 ` Yan Zhao 2020-02-10 17:25 ` Alex Williamson 2020-02-10 17:25 ` Alex Williamson 2020-02-12 20:56 ` Kirti Wankhede 2020-02-12 20:56 ` Kirti Wankhede 2020-02-12 23:13 ` Alex Williamson 2020-02-12 23:13 ` Alex Williamson 2020-02-13 20:11 ` Kirti Wankhede 2020-02-13 20:11 ` Kirti Wankhede 2020-02-13 23:20 ` Alex Williamson 2020-02-13 23:20 ` Alex Williamson 2020-02-17 19:13 ` Kirti Wankhede 2020-02-17 19:13 ` Kirti Wankhede 2020-02-17 20:55 ` Alex Williamson 2020-02-17 20:55 ` Alex Williamson 2020-02-18 5:58 ` Kirti Wankhede 2020-02-18 5:58 ` Kirti Wankhede 2020-02-18 21:41 ` Alex Williamson 2020-02-18 21:41 ` Alex Williamson 2020-02-19 4:21 ` Kirti Wankhede 2020-02-19 4:21 ` Kirti Wankhede 2020-02-19 4:53 ` Alex Williamson 2020-02-19 4:53 ` Alex Williamson 2020-02-07 19:42 ` [PATCH v12 Kernel 5/7] vfio iommu: Update UNMAP_DMA ioctl to get dirty bitmap before unmap Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-10 17:48 ` Alex Williamson 2020-02-10 17:48 ` Alex Williamson 2020-02-07 19:42 ` [PATCH v12 Kernel 6/7] vfio iommu: Adds flag to indicate dirty pages tracking capability support Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-07 19:42 ` [PATCH v12 Kernel 7/7] vfio: Selective dirty page tracking if IOMMU backed device pins pages Kirti Wankhede 2020-02-07 19:42 ` Kirti Wankhede 2020-02-10 18:14 ` Alex Williamson 2020-02-10 18:14 ` Alex Williamson 2020-03-09 7:46 ` [PATCH v12 Kernel 0/7] KABIs to support migration for VFIO devices Zengtao (B) 2020-03-09 7:46 ` Zengtao (B)
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=1581104554-10704-3-git-send-email-kwankhede@nvidia.com \ --to=kwankhede@nvidia.com \ --cc=Ken.Xue@amd.com \ --cc=Zhengxiao.zx@Alibaba-inc.com \ --cc=aik@ozlabs.ru \ --cc=alex.williamson@redhat.com \ --cc=changpeng.liu@intel.com \ --cc=cjia@nvidia.com \ --cc=cohuck@redhat.com \ --cc=dgilbert@redhat.com \ --cc=eauger@redhat.com \ --cc=eskultet@redhat.com \ --cc=felipe@nutanix.com \ --cc=jonathan.davies@nutanix.com \ --cc=kevin.tian@intel.com \ --cc=kvm@vger.kernel.org \ --cc=mlevitsk@redhat.com \ --cc=pasic@linux.ibm.com \ --cc=qemu-devel@nongnu.org \ --cc=shuangtai.tst@alibaba-inc.com \ --cc=yan.y.zhao@intel.com \ --cc=yi.l.liu@intel.com \ --cc=zhi.a.wang@intel.com \ --cc=ziye.yang@intel.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.