lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Thu, 24 May 2018 07:42:00 +0800
From:   Nicolas Boichat <drinkcat@...omium.org>
To:     Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Alan Stern <stern@...land.harvard.edu>
Cc:     linux-usb@...r.kernel.org,
        Mathias Nyman <mathias.nyman@...ux.intel.com>,
        Felipe Balbi <felipe.balbi@...ux.intel.com>,
        Eugene Korenevsky <ekorenevsky@...il.com>,
        Peter Chen <peter.chen@....com>,
        Daniel Drake <drake@...lessm.com>,
        Joe Perches <joe@...ches.com>, Johan Hovold <johan@...nel.org>,
        Richard Leitner <richard.leitner@...data.com>,
        lkml <linux-kernel@...r.kernel.org>,
        Guenter Roeck <groeck@...omium.org>
Subject: Re: [PATCH] usb: hub: Per-port setting to use old enumeration scheme

On Thu, May 24, 2018 at 12:39 AM, Greg Kroah-Hartman
<gregkh@...uxfoundation.org> wrote:
> On Wed, May 23, 2018 at 10:03:55AM -0400, Alan Stern wrote:
>> On Wed, 23 May 2018, Nicolas Boichat wrote:
>>
>> > The "old" enumeration scheme is considerably faster (it takes
>> > ~294ms instead of ~439ms to get the descriptor).
>> >
>> > It is currently only possible to use the old scheme globally
>> > (/sys/module/usbcore/parameters/old_scheme_first), which is not
>> > desirable as the new scheme was introduced to increase compatibility
>> > with more devices.
>> >
>> > However, in our case, we care about time-to-active for a specific
>> > USB device (which we make the firmware for), on a specific port
>> > (that is pogo-pin based: not a standard USB port). This new
>> > sysfs option makes it possible to use the old scheme on a single
>> > port only.
>> >
>> > Signed-off-by: Nicolas Boichat <drinkcat@...omium.org>
>> > ---
>> >
>> > There are other "quirks" that we could add to reduce further
>> > enumeration time (e.g. reduce USB debounce time, reduce TRSTRCY
>> > to 10ms instead of 50ms as used currently), but the logic is quite
>> > similar, so it'd be good to have this reviewed first.
>>
>> I'm not opposed to the idea in principle, although I don't like your
>> implementation because it breaks the original old_scheme_first
>> parameter.

I don't think it breaks the original parameter? I mean,
/sys/module/usbcore/parameters/old_scheme_first is still a global
default, while bit 0 of /sys/bus/usb/devices/x/y/z/quirks becomes a
port-specific override.

>> Let's see what some other people think.
>>
>> Yours is a rather special case, because you know exactly what device
>> will be attached to a specific port.  Still, I can see that sort of
>> thing happening in constrained and special-purpose settings.
>>
>> How do you arrange to set the new quirk before the device is
>> discovered?
>
> Yeah, this last question is what I had when looking at this.  Or does it
> not matter at first boot and only matters for wake-up?

It does not matter on boot, we have plenty of time to enumerate the
device. We use USB (auto-)suspend and remote wake, so no
re-enumeration there either. It only matters on unplug/replug where
the device needs to be re-enumerated.

Somewhere in an init script, we would do this (we know in advance that
usb1 port2 is the bus/port where we have our pogo-pin USB interface,
so we can hard-code the path):
echo 1 > /sys/bus/usb/devices/usb1/1-0:1.0/usb1-port2/quirks

We could try to add ACPI support (just like connect_type), but we
don't strictly need it for our application.

Thanks,

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ