Re: [RFC PATCH 1/6] vdpa: add bind_mm callback

From: Jason Wang
Date: Wed Dec 21 2022 - 23:19:25 EST



在 2022/12/16 16:17, Stefano Garzarella 写道:
On Fri, Dec 16, 2022 at 02:37:45PM +0800, Jason Wang wrote:
On Thu, Dec 15, 2022 at 12:30 AM Stefano Garzarella <sgarzare@xxxxxxxxxx> wrote:

This new optional callback is used to bind the device to a specific
address space so the vDPA framework can use VA when this callback
is implemented.

Suggested-by: Jason Wang <jasowang@xxxxxxxxxx>
Signed-off-by: Stefano Garzarella <sgarzare@xxxxxxxxxx>
---
 include/linux/vdpa.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/linux/vdpa.h b/include/linux/vdpa.h
index 6d0f5e4e82c2..34388e21ef3f 100644
--- a/include/linux/vdpa.h
+++ b/include/linux/vdpa.h
@@ -282,6 +282,12 @@ struct vdpa_map_file {
  *                             @iova: iova to be unmapped
  *                             @size: size of the area
  *                             Returns integer: success (0) or error (< 0)
+ * @bind_mm:                   Bind the device to a specific address space
+ *                             so the vDPA framework can use VA when this
+ *                             callback is implemented. (optional)
+ *                             @vdev: vdpa device
+ *                             @mm: address space to bind

Do we need an unbind or did a NULL mm mean unbind?

Yep, your comment in patch 6 makes it necessary. I will add it!


+ *                             @owner: process that owns the address space

Any reason we need the task_struct here?

Mainly to attach to kthread to the process cgroups, but that part is still in TODO since I need to understand it better.


Ok I see.



Maybe we can remove the task_struct here and use `current` directly in the callback.


Yes, it's easier to start without cgroup and we can add it on top.

Thanks



Thanks,
Stefano