Re: [PATCH] kobject: fix suppressing modalias in uevents delivered over netlink

From: Casey Leedom
Date: Fri Dec 15 2017 - 14:17:30 EST


| From: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
| Sent: Friday, December 15, 2017 10:53 AM
|
| Hmm, can she collect output of 'udevadm monitor -p' at the time you
| assign the adapter to the VM?

Sure. I'll have Komali report on that.

| Also, do you have any udev rules that is specific to cxgb? Or any other
| custom udev rules?

I don't ~think~ so, but I'm not super familiar with udev stuff. Point me at
a place to look and I can get this information for you. [[ Komali is
hopefully at home in bed sound asleep looking forward to a fun weekend of
adventures! ]]

| Also, we only suppress the modalias string on driver unbind, could it be
| that for you module loading is happening when driver is bound to the
| device?

What Komali is saying is that when she first instantiates the SR-IOV Virtual
Functions, cxgb4vf gets automatically loaded as the VFs come into existence.
This has been happening forever and the only way to prevent this from
happening is to blacklist the cxgb4vf module. That's fine and normal
behavior and she manually does a "rmmod cxgb4vf" to get rid of it.

But now, after doing the "rmmod cxgb4vf", when she assigns a VF to a Virtual
Machine and brings the VM up, cxgb4vf gets reloaded again. This is the new
behavior which got introduced with kernel.org commit
1455cf8dbfd06aa7651dcfccbadb7a093944ca65 ...

| Actually, as far as I can see, you share PCI IDs between cxgb4 and cxgb4vf
| drivers, so they have similar modalias entries. How do you normally decide
| what driver is to be loaded for a given device?

The PCI Device IDs for the VFs aren't quite the same as those for the base
adapter Physical Functions. Our PCI Device IDs look like:

PF0..3 0x{T}0{DD}
PF4 0x{T}4{DD}
PF5 0x{T}5{DD}
PF6 0x{T}6{DD}
PF0..3/VF1..16 0x{T}8{DD}

Where:
{T} is 4, 5, 6, ... the adapter chip base
{DD} is the adapter Device ID for that chip base implementation

So the VFs PCI Device IDs are in fact different from any of the PFs.

Casey