[Ksummit-discuss] [TECH TOPIC] (PCI) driver rebinding

Hannes Reinecke hare at suse.com
Sun Jun 25 15:39:34 UTC 2017


Hi all,

here's a thing which came up recently on the SCSI ml:

How should we handle devices with _several_ possible drivers?

Case in point are some HBAs, for which the plan is to have distinct
drivers for either target or initiator mode.

There are several options how this could be handled:
- Have a default driver, and manually rebind the 'real' driver once the
configuration could be read and acted upon.
That would have the drawback that we do an initialisation in the 'wrong'
mode, and later have to switch configuration. Which at best will 'just'
induce some pointless initialisation, at worst confuse attached devices
to no end. Not to mention introducing lots of interesting races with
udev and systemd
- Inhibit default binding, and load the correct drivers after the
configuration has been read.
Would be a deviation from the original scenario (where the driver are
bound/loaded as soon as the device becomes available). Has the drawback
that one would need to inhibit automatic bindings on the _bus_ level (ie
PCI), which will be even more interesting.
- Add some bus-specific (or even general?) device configuration syntax,
which would allow to pass in the required configuration from the
command-line (or reasonably early, anyway). For which we need a syntax
first, anyway. And need to figure out if we can have an abstract syntax
or would need to have a bus- (or even driver-) specific configuration.

So no easy way out here, and it might be worth having input from other
parties. And some might have similar problems (just thinking of
usb-modeswitch ...), so there might be some synergies to be had.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare at suse.com			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)


More information about the Ksummit-discuss mailing list