[dpdk-users] [ovs-discuss] [announce] driverctl: utility for persistent alternative driver binding

Panu Matilainen pmatilai at redhat.com
Tue Dec 8 13:04:38 CET 2015


On 12/04/2015 05:44 PM, Gray, Mark D wrote:
> I welcome this initiative, one question below:
>
>> -----Original Message-----
>> From: discuss [mailto:discuss-bounces at openvswitch.org] On Behalf Of Panu
>> Matilainen
>> Sent: Friday, December 4, 2015 10:54 AM
>> To: dev at dpdk.org; users at dpdk.org; dev at openvswitch.org;
>> discuss at openvswitch.org
>> Subject: [ovs-discuss] [announce] driverctl: utility for persistent alternative
>> driver binding
>>
>> Hi all,
>>
>> While this is not directly related to DPDK or OVS, it is potentially
>> useful for users of both, so excuse me for cross-posting.
>>
>> Quoting from the project README (for the full text see
>> http://laiskiainen.org/git/?p=driverctl.git;a=blob_plain;f=README)
>>
>>   > driverctl is a tool for manipulating and inspecting the system
>>   > device driver choices.
>>   >
>>   > Devices are normally assigned to their sole designated kernel driver
>>   > by default. However in some situations it may be desireable to
>>   > override that default, for example to try an older driver to
>>   > work around a regression in a driver or to try an experimental
>>   > alternative driver. Another common use-case is pass-through
>>   > drivers and driver stubs to allow userspace to drive the device,
>>   > such as in case of virtualization.
>>   >
>>   > driverctl integrates with udev to support overriding
>>   > driver selection for both cold- and hotplugged devices from the
>>   > moment of discovery, but can also change already assigned drivers,
>>   > assuming they are not in use by the system. The driver overrides
>>   > created by driverctl are persistent across system reboots
>>   > by default.
>>   >
>>   > Usage
>>   > -----
>>   >
>>   > Find devices currently driven by ixgbe driver:
>>   >
>>   > # driverctl -v list-devices | grep ixgbe
>>   > 0000:01:00.0 ixgbe (Ethernet 10G 4P X520/I350 rNDC)
>>   > 0000:01:00.1 ixgbe (Ethernet 10G 4P X520/I350 rNDC)
>>   >
>>   > Change them to use the vfio-pci driver:
>>   > # driverctl set-override 0000:01:00.0 vfio-pci
>>   > # driverctl set-override 0000:01:00.1 vfio-pci
>>   >
>>   > Find devices with driver overrides:
>>   > # driverctl -v list-devices|grep \\*
>>   > 0000:01:00.0 vfio-pci [*] (Ethernet 10G 4P X520/I350 rNDC)
>>   > 0000:01:00.1 vfio-pci [*] (Ethernet 10G 4P X520/I350 rNDC)
>>   >
>>   > Remove the override from slot 0000:01:00.1:
>>   > # driverctl unset-override 0000:01:00.1
>>
>> DPDK of course has its own dpdk_nic_bind(.py) tool for this purpose, the
>> main differences to driverctl are:
>> - driverctl bindings are persistent across system boots
>
>   [Gray, Mark D] This is great!
>
> Will this integrate with, for example in Red Hat-based systems, /etc/sysconfig/network-scripts/ifcfg-X? In DPDK, could we then
> potentially reference devices by that (arbitrary) name?

driverctl is not specific to NICs so network-scripts integration is out 
of scope.

That aside, maybe I'm missing something but I'm not sure what there is 
to integrate with since DPDK ports are ultimately application specific. 
For OVS I've sent a patch to support managing OVS DPDK ports via 
network-scripts: 
http://openvswitch.org/pipermail/dev/2015-December/062850.html

	. Panu -




More information about the users mailing list