Re: [PATCH v2] PCI: vmd: Do not change the Hotplug setting on VMD rootports

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 8/21/2023 2:38 AM, Lorenzo Pieralisi wrote:
> On Mon, Jul 24, 2023 at 11:54:05PM -0400, Nirmal Patel wrote:
>> The hotplug functionality is broken in various combinations of guest
>> OSes i.e. RHEL, SLES and hypervisors i.e. KVM and ESXI.
> What about the configurations that are actually working ?
>
> Will this patch change anything on that front ?

None of the Guest - Host combinations are working. This change with fix all
the scenarios.

>
>> During the VMD rootport creation, VMD honors ACPI settings and assigns
>> respective values to Hotplug, AER, DPC, PM etc which works in case of
>> Host OS. But these have been restored back to the power on default
>> state in Guest OSes, which puts the root port hot plug enable to
>> default OFF.
>>
>> When BIOS boots, all root ports under VMD is inaccessible by BIOS and
>> they maintain their power on default states. The VMD UEFI driver loads
>> and configure all devices under VMD. This is how AER, power management,
>> DPC and hotplug gets enabled in UEFI, since the BIOS pci driver cannot
>> access the root ports. With the absence of VMD UEFI driver in Guest,
>> Hotplug stays Disabled.
>>
>> This change will  cause the hot plug to start working again in guest,
>> as the settings implemented by the UEFI VMD DXE driver will remain in
>> effect in the Guest OS.
> This explanation is unclear to me - in particular the link between
> code changes and the commit log. Please write a commit log that
> explains and justifies the changes you are making below.
>
> Thanks,
> Lorenzo

will do.

>
>> Signed-off-by: Nirmal Patel <nirmal.patel@xxxxxxxxxxxxxxx>
>> ---
>>  drivers/pci/controller/vmd.c | 2 --
>>  1 file changed, 2 deletions(-)
>>
>> diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c
>> index 769eedeb8802..52c2461b4761 100644
>> --- a/drivers/pci/controller/vmd.c
>> +++ b/drivers/pci/controller/vmd.c
>> @@ -701,8 +701,6 @@ static int vmd_alloc_irqs(struct vmd_dev *vmd)
>>  static void vmd_copy_host_bridge_flags(struct pci_host_bridge *root_bridge,
>>  				       struct pci_host_bridge *vmd_bridge)
>>  {
>> -	vmd_bridge->native_pcie_hotplug = root_bridge->native_pcie_hotplug;
>> -	vmd_bridge->native_shpc_hotplug = root_bridge->native_shpc_hotplug;
>>  	vmd_bridge->native_aer = root_bridge->native_aer;
>>  	vmd_bridge->native_pme = root_bridge->native_pme;
>>  	vmd_bridge->native_ltr = root_bridge->native_ltr;
>> -- 
>> 2.31.1
>>




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux