Re: [PATCH v2 1/5] vduse: Remove unnecessary spin lock protection

From: Jason Wang
Date: Wed Jul 13 2022 - 01:44:11 EST



在 2022/7/6 13:04, Xie Yongji 写道:
Taking iotlb lock to access bounce page in page fault
handler is meaningless since vduse_domain_free_bounce_pages()
would only be called during file release.

Signed-off-by: Xie Yongji <xieyongji@xxxxxxxxxxxxx>
---
drivers/vdpa/vdpa_user/iova_domain.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/vdpa/vdpa_user/iova_domain.c b/drivers/vdpa/vdpa_user/iova_domain.c
index 6daa3978d290..bca1f0b8850c 100644
--- a/drivers/vdpa/vdpa_user/iova_domain.c
+++ b/drivers/vdpa/vdpa_user/iova_domain.c
@@ -211,17 +211,14 @@ static struct page *
vduse_domain_get_bounce_page(struct vduse_iova_domain *domain, u64 iova)
{
struct vduse_bounce_map *map;
- struct page *page = NULL;
+ struct page *page;
- spin_lock(&domain->iotlb_lock);
map = &domain->bounce_maps[iova >> PAGE_SHIFT];
if (!map->bounce_page)
- goto out;
+ return NULL;


Interesting, I wonder why we don't serialize with vduse_domain_map_bounce_page() with iotlb_lock?

Thanks


page = map->bounce_page;
get_page(page);
-out:
- spin_unlock(&domain->iotlb_lock);
return page;
}