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

From: Stefano Garzarella
Date: Fri Dec 16 2022 - 03:18:41 EST


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.

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

Thanks,
Stefano