[PATCH v4 0/5] vduse: Add support for reconnection

Cindy Lu posted 5 patches 2 years ago
There is a newer version of this series
Documentation/userspace-api/vduse.rst |  32 +++++++
drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
include/uapi/linux/vduse.h            |   5 ++
3 files changed, 162 insertions(+)
[PATCH v4 0/5] vduse: Add support for reconnection
Posted by Cindy Lu 2 years ago
Here is the reconnect support in vduse,

Kernel will allocate pages for reconnection.
Userspace needs to use mmap to map the memory to userspace and use these pages to
save the reconnect information.

test passd in vduse+dpdk-testpmd

change in V2
1. Address the comments from v1
2. Add the document for reconnect process

change in V3
1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
3. Rewrite the commit message.
4. Only save the address for the page address and remove the index.
5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
6. Rewrite the document for the reconnect process to make it clearer.

change in v4
1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
2. Rewrite the document for the reconnect process to make it clearer.
3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS

Cindy Lu (5):
  vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
  vduse: Add new ioctl VDUSE_DEV_GET_STATUS
  vduse: Add function to get/free the pages for reconnection
  vduse: Add file operation for mmap
  Documentation: Add reconnect process for VDUSE

 Documentation/userspace-api/vduse.rst |  32 +++++++
 drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
 include/uapi/linux/vduse.h            |   5 ++
 3 files changed, 162 insertions(+)

-- 
2.43.0
Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Jason Wang 1 year, 11 months ago
On Wed, Feb 7, 2024 at 1:47 PM Cindy Lu <lulu@redhat.com> wrote:
>
> Here is the reconnect support in vduse,
>
> Kernel will allocate pages for reconnection.
> Userspace needs to use mmap to map the memory to userspace and use these pages to
> save the reconnect information.
>
> test passd in vduse+dpdk-testpmd
>
> change in V2
> 1. Address the comments from v1
> 2. Add the document for reconnect process
>
> change in V3
> 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> 3. Rewrite the commit message.
> 4. Only save the address for the page address and remove the index.
> 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> 6. Rewrite the document for the reconnect process to make it clearer.
>
> change in v4
> 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.

So this means the structure (e.g inflight descriptors) are application
specific, we can't do cross application reconnection?

Thanks

> 2. Rewrite the document for the reconnect process to make it clearer.
> 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
>
> Cindy Lu (5):
>   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
>   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
>   vduse: Add function to get/free the pages for reconnection
>   vduse: Add file operation for mmap
>   Documentation: Add reconnect process for VDUSE
>
>  Documentation/userspace-api/vduse.rst |  32 +++++++
>  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
>  include/uapi/linux/vduse.h            |   5 ++
>  3 files changed, 162 insertions(+)
>
> --
> 2.43.0
>
Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Cindy Lu 1 year, 11 months ago
On Fri, Mar 8, 2024 at 2:08 PM Jason Wang <jasowang@redhat.com> wrote:
>
> On Wed, Feb 7, 2024 at 1:47 PM Cindy Lu <lulu@redhat.com> wrote:
> >
> > Here is the reconnect support in vduse,
> >
> > Kernel will allocate pages for reconnection.
> > Userspace needs to use mmap to map the memory to userspace and use these pages to
> > save the reconnect information.
> >
> > test passd in vduse+dpdk-testpmd
> >
> > change in V2
> > 1. Address the comments from v1
> > 2. Add the document for reconnect process
> >
> > change in V3
> > 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> > 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> > 3. Rewrite the commit message.
> > 4. Only save the address for the page address and remove the index.
> > 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> > 6. Rewrite the document for the reconnect process to make it clearer.
> >
> > change in v4
> > 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
>
> So this means the structure (e.g inflight descriptors) are application
> specific, we can't do cross application reconnection?
>
> Thanks
>
yes, this is also defined by the application itself. so maybe we can't
support the
cross-application reconnection
thanks
cindy
> > 2. Rewrite the document for the reconnect process to make it clearer.
> > 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
> >
> > Cindy Lu (5):
> >   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
> >   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
> >   vduse: Add function to get/free the pages for reconnection
> >   vduse: Add file operation for mmap
> >   Documentation: Add reconnect process for VDUSE
> >
> >  Documentation/userspace-api/vduse.rst |  32 +++++++
> >  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
> >  include/uapi/linux/vduse.h            |   5 ++
> >  3 files changed, 162 insertions(+)
> >
> > --
> > 2.43.0
> >
>
Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Jason Wang 1 year, 11 months ago
On Fri, Mar 8, 2024 at 3:27 PM Cindy Lu <lulu@redhat.com> wrote:
>
> On Fri, Mar 8, 2024 at 2:08 PM Jason Wang <jasowang@redhat.com> wrote:
> >
> > On Wed, Feb 7, 2024 at 1:47 PM Cindy Lu <lulu@redhat.com> wrote:
> > >
> > > Here is the reconnect support in vduse,
> > >
> > > Kernel will allocate pages for reconnection.
> > > Userspace needs to use mmap to map the memory to userspace and use these pages to
> > > save the reconnect information.
> > >
> > > test passd in vduse+dpdk-testpmd
> > >
> > > change in V2
> > > 1. Address the comments from v1
> > > 2. Add the document for reconnect process
> > >
> > > change in V3
> > > 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> > > 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> > > 3. Rewrite the commit message.
> > > 4. Only save the address for the page address and remove the index.
> > > 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> > > 6. Rewrite the document for the reconnect process to make it clearer.
> > >
> > > change in v4
> > > 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
> >
> > So this means the structure (e.g inflight descriptors) are application
> > specific, we can't do cross application reconnection?
> >
> > Thanks
> >
> yes, this is also defined by the application itself. so maybe we can't
> support the
> cross-application reconnection
> thanks
> cindy

Well, ok. We can probably start from this but let's document this
explicitly in the doc patch.

Thanks

> > > 2. Rewrite the document for the reconnect process to make it clearer.
> > > 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
> > >
> > > Cindy Lu (5):
> > >   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
> > >   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
> > >   vduse: Add function to get/free the pages for reconnection
> > >   vduse: Add file operation for mmap
> > >   Documentation: Add reconnect process for VDUSE
> > >
> > >  Documentation/userspace-api/vduse.rst |  32 +++++++
> > >  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
> > >  include/uapi/linux/vduse.h            |   5 ++
> > >  3 files changed, 162 insertions(+)
> > >
> > > --
> > > 2.43.0
> > >
> >
>
Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Michael S. Tsirkin 1 year, 11 months ago
On Wed, Feb 07, 2024 at 01:43:27PM +0800, Cindy Lu wrote:
> Here is the reconnect support in vduse,
> 
> Kernel will allocate pages for reconnection.
> Userspace needs to use mmap to map the memory to userspace and use these pages to
> save the reconnect information.

What is "reconnect"? Not really clear from documentation - it seems to
be assumed that reader has an idea but most don't.

Also what's with all the typos? reconnect with 3 nnn s, sutiable and so
on. Can you pls run a speller?

> test passd in vduse+dpdk-testpmd
> 
> change in V2
> 1. Address the comments from v1
> 2. Add the document for reconnect process
> 
> change in V3
> 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> 3. Rewrite the commit message.
> 4. Only save the address for the page address and remove the index.
> 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> 6. Rewrite the document for the reconnect process to make it clearer.
> 
> change in v4
> 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
> 2. Rewrite the document for the reconnect process to make it clearer.
> 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
> 
> Cindy Lu (5):
>   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
>   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
>   vduse: Add function to get/free the pages for reconnection
>   vduse: Add file operation for mmap
>   Documentation: Add reconnect process for VDUSE
> 
>  Documentation/userspace-api/vduse.rst |  32 +++++++
>  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
>  include/uapi/linux/vduse.h            |   5 ++
>  3 files changed, 162 insertions(+)
> 
> -- 
> 2.43.0
Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Cindy Lu 1 year, 11 months ago
On Fri, Feb 23, 2024 at 3:18 AM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Wed, Feb 07, 2024 at 01:43:27PM +0800, Cindy Lu wrote:
> > Here is the reconnect support in vduse,
> >
> > Kernel will allocate pages for reconnection.
> > Userspace needs to use mmap to map the memory to userspace and use these pages to
> > save the reconnect information.
>
> What is "reconnect"? Not really clear from documentation - it seems to
> be assumed that reader has an idea but most don't.
>
> Also what's with all the typos? reconnect with 3 nnn s, sutiable and so
> on. Can you pls run a speller?
>
Thanks a lot, Micheal. I will fix these and also update the speller
thanks
Cindy
> > test passd in vduse+dpdk-testpmd
> >
> > change in V2
> > 1. Address the comments from v1
> > 2. Add the document for reconnect process
> >
> > change in V3
> > 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> > 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> > 3. Rewrite the commit message.
> > 4. Only save the address for the page address and remove the index.
> > 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> > 6. Rewrite the document for the reconnect process to make it clearer.
> >
> > change in v4
> > 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
> > 2. Rewrite the document for the reconnect process to make it clearer.
> > 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
> >
> > Cindy Lu (5):
> >   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
> >   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
> >   vduse: Add function to get/free the pages for reconnection
> >   vduse: Add file operation for mmap
> >   Documentation: Add reconnect process for VDUSE
> >
> >  Documentation/userspace-api/vduse.rst |  32 +++++++
> >  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
> >  include/uapi/linux/vduse.h            |   5 ++
> >  3 files changed, 162 insertions(+)
> >
> > --
> > 2.43.0
>
Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Michael S. Tsirkin 1 year, 10 months ago
On Fri, Mar 08, 2024 at 03:29:50PM +0800, Cindy Lu wrote:
> On Fri, Feb 23, 2024 at 3:18 AM Michael S. Tsirkin <mst@redhat.com> wrote:
> >
> > On Wed, Feb 07, 2024 at 01:43:27PM +0800, Cindy Lu wrote:
> > > Here is the reconnect support in vduse,
> > >
> > > Kernel will allocate pages for reconnection.
> > > Userspace needs to use mmap to map the memory to userspace and use these pages to
> > > save the reconnect information.
> >
> > What is "reconnect"? Not really clear from documentation - it seems to
> > be assumed that reader has an idea but most don't.
> >
> > Also what's with all the typos? reconnect with 3 nnn s, sutiable and so
> > on. Can you pls run a speller?
> >
> Thanks a lot, Micheal. I will fix these and also update the speller
> thanks
> Cindy

Didn't get an updated version, dropped the patch from the pull for this
merge window.

> > > test passd in vduse+dpdk-testpmd
> > >
> > > change in V2
> > > 1. Address the comments from v1
> > > 2. Add the document for reconnect process
> > >
> > > change in V3
> > > 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> > > 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> > > 3. Rewrite the commit message.
> > > 4. Only save the address for the page address and remove the index.
> > > 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> > > 6. Rewrite the document for the reconnect process to make it clearer.
> > >
> > > change in v4
> > > 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
> > > 2. Rewrite the document for the reconnect process to make it clearer.
> > > 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
> > >
> > > Cindy Lu (5):
> > >   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
> > >   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
> > >   vduse: Add function to get/free the pages for reconnection
> > >   vduse: Add file operation for mmap
> > >   Documentation: Add reconnect process for VDUSE
> > >
> > >  Documentation/userspace-api/vduse.rst |  32 +++++++
> > >  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
> > >  include/uapi/linux/vduse.h            |   5 ++
> > >  3 files changed, 162 insertions(+)
> > >
> > > --
> > > 2.43.0
> >

Re: [PATCH v4 0/5] vduse: Add support for reconnection
Posted by Cindy Lu 1 year, 10 months ago
On Tue, Mar 19, 2024 at 2:37 PM Michael S. Tsirkin <mst@redhat.com> wrote:
>
> On Fri, Mar 08, 2024 at 03:29:50PM +0800, Cindy Lu wrote:
> > On Fri, Feb 23, 2024 at 3:18 AM Michael S. Tsirkin <mst@redhat.com> wrote:
> > >
> > > On Wed, Feb 07, 2024 at 01:43:27PM +0800, Cindy Lu wrote:
> > > > Here is the reconnect support in vduse,
> > > >
> > > > Kernel will allocate pages for reconnection.
> > > > Userspace needs to use mmap to map the memory to userspace and use these pages to
> > > > save the reconnect information.
> > >
> > > What is "reconnect"? Not really clear from documentation - it seems to
> > > be assumed that reader has an idea but most don't.
> > >
> > > Also what's with all the typos? reconnect with 3 nnn s, sutiable and so
> > > on. Can you pls run a speller?
> > >
> > Thanks a lot, Micheal. I will fix these and also update the speller
> > thanks
> > Cindy
>
> Didn't get an updated version, dropped the patch from the pull for this
> merge window.
>
Hi Micheal
Really apologize for the delay, I was working in an emergency bug, I
will provide the updated version soon
apologize again for this mistake
Thanks
Cindy
> > > > test passd in vduse+dpdk-testpmd
> > > >
> > > > change in V2
> > > > 1. Address the comments from v1
> > > > 2. Add the document for reconnect process
> > > >
> > > > change in V3
> > > > 1. Move the vdpa_vq_state to the uAPI.  vduse will use this to synchronize the vq info between the kernel and userspace app.
> > > > 2. Add a new ioctl VDUSE_DEV_GET_CONFIG. userspace app use this to get config space
> > > > 3. Rewrite the commit message.
> > > > 4. Only save the address for the page address and remove the index.
> > > > 5. remove the ioctl VDUSE_GET_RECONNECT_INFO, userspace app will use uAPI VDUSE_RECONNCT_MMAP_SIZE to mmap
> > > > 6. Rewrite the document for the reconnect process to make it clearer.
> > > >
> > > > change in v4
> > > > 1. Change the number of map pages to VQ numbers. UserSpace APP can define and maintain the structure for saving reconnection information in userspace. The kernel will not maintain this information.
> > > > 2. Rewrite the document for the reconnect process to make it clearer.
> > > > 3. add the new ioctl for VDUSE_DEV_GET_CONFIG/VDUSE_DEV_GET_STATUS
> > > >
> > > > Cindy Lu (5):
> > > >   vduse: Add new ioctl VDUSE_DEV_GET_CONFIG
> > > >   vduse: Add new ioctl VDUSE_DEV_GET_STATUS
> > > >   vduse: Add function to get/free the pages for reconnection
> > > >   vduse: Add file operation for mmap
> > > >   Documentation: Add reconnect process for VDUSE
> > > >
> > > >  Documentation/userspace-api/vduse.rst |  32 +++++++
> > > >  drivers/vdpa/vdpa_user/vduse_dev.c    | 125 ++++++++++++++++++++++++++
> > > >  include/uapi/linux/vduse.h            |   5 ++
> > > >  3 files changed, 162 insertions(+)
> > > >
> > > > --
> > > > 2.43.0
> > >
>