From: Lars Gunnarsson <gunnarsson.lars@gmail.com>
To: Shuah Khan <skhan@linuxfoundation.org>
Cc: Valentina Manea <valentina.manea.m@gmail.com>,
Shuah Khan <shuah@kernel.org>,
linux-usb@vger.kernel.org
Subject: Re: [PATCH v6 0/5] tools/usbip: Patch set summary
Date: Thu, 16 Dec 2021 22:01:16 +0100 [thread overview]
Message-ID: <20211216210116.GA5743@dell-precision-T3610> (raw)
In-Reply-To: <475637fb-6636-aaa5-39e4-ec7eed0ee995@linuxfoundation.org>
On Tue, Dec 14, 2021 at 03:22:57PM -0700, Shuah Khan wrote:
> On 12/9/21 2:11 PM, Lars Gunnarsson wrote:
> > On Mon, Dec 06, 2021 at 01:02:35PM -0700, Shuah Khan wrote:
> > > On 11/30/21 3:22 PM, Lars Gunnarsson wrote:
> > > > To forward a remote usb device over usbip the following steps is required:
> > > >
> > > > 1. Execute "usbip bind" on remote end.
> > > > 2. Execute "usbip attach" on local end.
> > > >
> > > > These steps must be perfomed in above order and after usb device is plugged in.
> > > > If the usb device is unplugged on the remote end the steps above needs to be
> > > > performed again to establish the connection. This patch set implements a feature
> > > > to persistently forward devices on a given bus. When using flag "-p|--persistent"
> > > > on remot end, the USB device becomes exported when plugged in. When using flag
> > > > "-p|--persistent" on local end, the USB device becomes imported when available
> > > > on remote end. Thus it is only required to run the usbip command once on each
> > > > end, in any order, to persistently forward usb devices on a given bus.
> > > >
> > > > This is sent in five separate patches:
> > > > tools/usbip: update protocol documentation
> > > > tools/usbip: update manual pages
> > > > tools/usbip: add usb event monitor into libusbip
> > > > tools/usbip: export USB devices on a given bus persistently
> > > > tools/usbip: import USB devices on a given bus persistently
> > > >
> > >
> > > When -p is used, the command stays in foreground. This is a very
> > > different use model compared to current model. In addition, once
> > > persistent flag is set on a bus, all devices even the ones that
> > > are inserted in the future get exported. What happens if one of
> > > the devices shouldn't be exported?
> >
> > Yes it's conceptually more like exporting/importing the physical usb port,
> > rather than exporting/importing a device plugged into the usb port. Using flag
> > "-p" on both ends will behave like a "virtual" usb hub, a device plugged in on
> > the server (on a chosen bus) will automatically be available on the client.
> > Using flag "-p" has no dependency on the other end though. Using "-p" on one end
> > doesn't enforce usage on the other end. It is only for exporting and importing
> > devices automatically when they become available.
> >
> > There might be better choices than naming flag to "persistent" for easily
> > communicate this concept. Would "port" be more intuitive?
> > "usbip attach --port 3-3.1" and "usbip bind --port 3-3.1"
> >
>
> Terminology isn't what I am concerned about. My concern is the idea of
> automatically making devices available for export at bus level.
>
> > >
> > > There are several conditions to be thought through:
> > >
> > > - What happens if if the command that is running on the foreground
> > > is killed on either end?
> >
> > If "attach" cmd gets killed (client side) it will stop the foreground
> > monitoring. The device will still remain imported if user exit at imported state.
> > The user then needs to manually unimport the device with "detach".
> >
> > If "bind" cmd gets killed (server side) it will stop the foreground monitoring.
> > The device will still remain exported if exit at exported state. The user then
> > needs to manually unexport the device with "unbind".
> >
>
> My concern is the persistence nature of these exports/imports through
> reboots. I have to give it some though on how this can be implemented
> addressing my concerns.
Can you elaborate on your thoughts about "the persistence nature of these exports/imports through reboots"?
reboot as in exit from foreground and run the command again?
>
> > > - What happens when one or more devices are detached?
> >
> > If user exit from "attach" cmd running in foreground, followed by detaching the
> > device manually, it will work as previously. The device will become available on
> > the server for importing again.
> >
> > If user running "attach" cmd in foreground, while executing "detach" manually
> > from another terminal or similar, the foreground "attach" command will detect
> > the disconnection and re-establish the import. I don't see any use case for
> > this, it's just for explaining.
> >
> > If user running "attach" cmd in foreground, while the remote device becomes
> > unexported (or disconnected) it will start polling the usbipd.
> > When a device becomes exported on the chosen bus it gets imported immediately.
> >
> > > - What happens when one or more devices are unbound from
> > > the server?
> > >
> > > Let's walk through these scenarios.
> >
> > If user exit from "bind" cmd running in foreground, followed by unbind the
> > device manually it will work as previous. The usb device will become available
> > on the server again.
> >
> > If user running "bind" cmd in foreground, while executing "unbind" from another
> > terminal or similar, the foreground "bind" command will detect the unexport
> > and re-establish the export. I don't see any use case for this, it's just for
> > explaining.
> >
> > If user running "bind" cmd in foreground, while the device becomes unexported
> > or disconnected it will restart monitoring the busid. When a device becomes
> > plugged in on the chosen usb port it gets exported immediately.
> >
> > One option to consider is to unexport & unimport the device at exit, but this
> > comes with the cost of creating a source code dependency between
> > bind --> unbind and attach --> detach.
> >
>
> How does this look like in code?
>
> thanks,
> -- Shuah
next prev parent reply other threads:[~2021-12-16 21:01 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-30 22:22 [PATCH v6 0/5] tools/usbip: Patch set summary Lars Gunnarsson
2021-12-03 11:17 ` Greg KH
2021-12-06 20:02 ` Shuah Khan
2021-12-09 21:11 ` Lars Gunnarsson
2021-12-14 22:22 ` Shuah Khan
2021-12-16 21:01 ` Lars Gunnarsson [this message]
2021-12-23 19:22 ` Shuah Khan
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=20211216210116.GA5743@dell-precision-T3610 \
--to=gunnarsson.lars@gmail.com \
--cc=linux-usb@vger.kernel.org \
--cc=shuah@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=valentina.manea.m@gmail.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox