Re: [usb-storage] Re: [PATCH] usb-storage: Optimize scan delay more precisely
From: Matthew Dharm
Date: Thu Mar 28 2024 - 11:21:45 EST
On Thu, Mar 28, 2024 at 7:51 AM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Thu, Mar 28, 2024 at 03:04:47AM +0000, Norihiko Hama wrote:
> > > On Wed, Mar 27, 2024 at 07:39:55AM +0000, Norihiko Hama wrote:
> > > > > Sorry, but module parameters are from the 1990's, we will not go back to that if at all possible as it's not easy to maintain and will not work properly for multiple devices.
> > > > >
> > > > > I can understand wanting something between 1 and 0 seconds, but adding yet-another-option isn't probably the best way, sorry.
> > > > 1 second does not meet with performance requirement.
> > > > I have no good idea except module parameter so that we can maintain backward compatibility but be configurable out of module.
> > > > Do you have any other better solution?
> > >
> > > Can you accomplish what you want with a quirk flag?
> >
> > I think that it's hard to do that because 'quirk' is specified for a device
> > but it's difficult to identify the devices to make quirk, especially for future introduced devices.
> >
> > Can we change the design of existing 'delay_use' ?
> > For example, 'delay_use' is 32-bit value and the value "1000 secs" does not make sense to set it,
> > So if it's set to '1100', it's treated as "100 / 1000 = 0.1 sec". Is this possible?
>
> Here's an approach that Greg might accept.
>
> Since we already have a delay_use module parameter, we could add a
> delay_use_ms parameter. The two module parameters would display the
> same value, but delay_use_ms would be in milliseconds instead of in
> seconds. (This is similar to what we did for the autosuspend and
> autosuspend_delay_ms sysfs attributes.)
What about just changing the parser on the currently delay_use
parameter to accept an optional suffix? If it's just digits, it is in
seconds. If it ends in "ms", then interpret it as milliseconds. This
would be backwards compatible with existing uses, give you the
flexibility you want, avoid adding another modules parameter, and
potentially be expandable in the future (if, for some reason, someone
wanted microseconds or kiloseconds).
Matt