All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shuah Khan <shuah@kernel.org>
To: Brian Norris <briannorris@chromium.org>
Cc: David Valleau <valleau@chromium.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux USB Mailing List <linux-usb@vger.kernel.org>,
	Michael Grzeschik <m.grzeschik@pengutronix.de>,
	Valentina Manea <valentina.manea.m@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sasha Levin <alexander.levin@microsoft.com>,
	shuah <shuah@kernel.org>
Subject: tools: usb: usbip: adding support for older kernel versions
Date: Mon, 25 Mar 2019 09:51:21 -0600	[thread overview]
Message-ID: <caee30e2-ddc4-0076-907e-558dbcfe7c52@kernel.org> (raw)

On 3/18/19 12:23 PM, Brian Norris wrote:
> On Sat, Mar 16, 2019 at 4:40 PM shuah <shuah@kernel.org> wrote:
>> usbip tool is tied to the kernel version. This is reason why it is
>> co-located with the usbip driver in the kernel sources. This is not
>> a typical tool scenario to be able to use new tool on old kernels.
>>
>> I would like to understand the reasons for wanting to run new tool on
>> old kernels.
> 
> On Chromium OS, we ship more or less the same user space for a variety
> of systems, but not all of those run the same kernel. That's not
> exactly a novel concept -- many good tools are written such that they
> degrade gracefully when running with reduced feature sets (e.g., older
> kernels). While we are working on reducing the divergence and number
> of kernels we ship, it's currently a fact of life that we have to
> support multiple target kernel versions.

Thanks for the context for this change.

> 
> Is there a fundamental problem with VHCI such that it doesn't have a
> stable ABI that tools can be written against?
> 

In general the ABI is stable.

+#define V3_18_STATUS_HEADER "prt sta spd bus dev socket 
local_busid"

What's your 3.18 kernel version? I think you are missing security
fixes that prevent socket address leak in the status file.

+#define V4_4_STATUS_HEADER "prt sta spd dev      sockfd local_busid"
+#define V4_14_STATUS_HEADER "hub port sta spd dev      sockfd local_busid"

The difference here is the high speed support. Let's find a better
way to fix this than hard-coding kernel revisions in the tool.

> If stability is possible but you just don't care, then I guess we can
> fork our own version...
> 
> Or even worse, we could build N copies of usbip for N kernels. But we
> don't do that for any other user space component.
> 

It might be easier to build N versions than maintaining the fork :)

In any case, let's find ways to fix the problem with a constructive
approach.

thanks,
-- Shuah

WARNING: multiple messages have this Message-ID (diff)
From: shuah <shuah@kernel.org>
To: Brian Norris <briannorris@chromium.org>
Cc: David Valleau <valleau@chromium.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux USB Mailing List <linux-usb@vger.kernel.org>,
	Michael Grzeschik <m.grzeschik@pengutronix.de>,
	Valentina Manea <valentina.manea.m@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Sasha Levin <alexander.levin@microsoft.com>,
	shuah <shuah@kernel.org>
Subject: Re: [PATCH] tools: usb: usbip: adding support for older kernel versions
Date: Mon, 25 Mar 2019 09:51:21 -0600	[thread overview]
Message-ID: <caee30e2-ddc4-0076-907e-558dbcfe7c52@kernel.org> (raw)
In-Reply-To: <CA+ASDXMcnEfZzTjDGsDbZxX2Xknv6dt3H-3kN79WdKFzif2zsA@mail.gmail.com>

On 3/18/19 12:23 PM, Brian Norris wrote:
> On Sat, Mar 16, 2019 at 4:40 PM shuah <shuah@kernel.org> wrote:
>> usbip tool is tied to the kernel version. This is reason why it is
>> co-located with the usbip driver in the kernel sources. This is not
>> a typical tool scenario to be able to use new tool on old kernels.
>>
>> I would like to understand the reasons for wanting to run new tool on
>> old kernels.
> 
> On Chromium OS, we ship more or less the same user space for a variety
> of systems, but not all of those run the same kernel. That's not
> exactly a novel concept -- many good tools are written such that they
> degrade gracefully when running with reduced feature sets (e.g., older
> kernels). While we are working on reducing the divergence and number
> of kernels we ship, it's currently a fact of life that we have to
> support multiple target kernel versions.

Thanks for the context for this change.

> 
> Is there a fundamental problem with VHCI such that it doesn't have a
> stable ABI that tools can be written against?
> 

In general the ABI is stable.

+#define V3_18_STATUS_HEADER "prt sta spd bus dev socket 
local_busid"

What's your 3.18 kernel version? I think you are missing security
fixes that prevent socket address leak in the status file.

+#define V4_4_STATUS_HEADER "prt sta spd dev      sockfd local_busid"
+#define V4_14_STATUS_HEADER "hub port sta spd dev      sockfd local_busid"

The difference here is the high speed support. Let's find a better
way to fix this than hard-coding kernel revisions in the tool.

> If stability is possible but you just don't care, then I guess we can
> fork our own version...
> 
> Or even worse, we could build N copies of usbip for N kernels. But we
> don't do that for any other user space component.
> 

It might be easier to build N versions than maintaining the fork :)

In any case, let's find ways to fix the problem with a constructive
approach.

thanks,
-- Shuah

             reply	other threads:[~2019-03-25 15:51 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-25 15:51 Shuah Khan [this message]
2019-03-25 15:51 ` [PATCH] tools: usb: usbip: adding support for older kernel versions shuah
  -- strict thread matches above, loose matches on Subject: below --
2019-03-27  1:16 Brian Norris
2019-03-27  1:16 ` [PATCH] " Brian Norris
2019-03-26  1:59 Shuah Khan
2019-03-26  1:59 ` [PATCH] " shuah
2019-03-26  1:29 Brian Norris
2019-03-26  1:29 ` [PATCH] " Brian Norris
2019-03-26  1:28 Brian Norris
2019-03-26  1:28 ` [PATCH] " Brian Norris
2019-03-26  0:55 Greg Kroah-Hartman
2019-03-26  0:55 ` [PATCH] " Greg Kroah-Hartman
2019-03-26  0:49 Brian Norris
2019-03-26  0:49 ` [PATCH] " Brian Norris
2019-03-26  0:13 Greg Kroah-Hartman
2019-03-26  0:13 ` [PATCH] " Greg Kroah-Hartman
2019-03-26  0:04 Shuah Khan
2019-03-26  0:04 ` [PATCH] " shuah
2019-03-25 23:02 Brian Norris
2019-03-25 23:02 ` [PATCH] " Brian Norris
2019-03-25 22:07 Shuah Khan
2019-03-25 22:07 ` [PATCH] " shuah
2019-03-25 17:56 Brian Norris
2019-03-25 17:56 ` [PATCH] " Brian Norris
2019-03-18 18:23 Brian Norris
2019-03-18 18:23 ` [PATCH] " Brian Norris
2019-03-16 23:39 Shuah Khan
2019-03-16 23:39 ` [PATCH] " shuah
2019-03-06 21:47 David Valleau
2019-03-06 21:47 ` [PATCH] " David Valleau

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=caee30e2-ddc4-0076-907e-558dbcfe7c52@kernel.org \
    --to=shuah@kernel.org \
    --cc=alexander.levin@microsoft.com \
    --cc=briannorris@chromium.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=m.grzeschik@pengutronix.de \
    --cc=valentina.manea.m@gmail.com \
    --cc=valleau@chromium.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.