[pve-devel] [PATCH qemu-server 1/1] pci: don't hard require resetting devices for passthrough

Dominik Csapak d.csapak at proxmox.com
Tue Nov 5 11:40:47 CET 2024


On 11/5/24 11:16, Stoiko Ivanov wrote:
> On Tue,  5 Nov 2024 10:24:21 +0100
> Dominik Csapak <d.csapak at proxmox.com> wrote:
> 
>> Since pve-common commit:
>>
>>   eff5957 (sysfstools: file_write: properly catch errors)
>>
>> this check here fails now when the reset does not work. It turns out
>> that resetting the device is not always necessary, and we previously
>> ignored most errors when trying to do so.
>>
>> To restore that functionality, downgrade this `die` to a warning.
>>
>> If the device really needs a reset to work, it will either fail later
>> during startup, or not work correctly in the guest, but that behavior
>> existed before and is AFAIK not really detectable from our side.
>>
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>>   PVE/QemuServer/PCI.pm | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/PVE/QemuServer/PCI.pm b/PVE/QemuServer/PCI.pm
>> index 75eac134..dceb8938 100644
>> --- a/PVE/QemuServer/PCI.pm
>> +++ b/PVE/QemuServer/PCI.pm
>> @@ -728,7 +728,7 @@ sub prepare_pci_device {
>>       } else {
>>   	die "can't unbind/bind PCI group to VFIO '$pciid'\n"
>>   	    if !PVE::SysFSTools::pci_dev_group_bind_to_vfio($pciid);
>> -	die "can't reset PCI device '$pciid'\n"
>> +	warn "can't reset PCI device '$pciid'\n"
> maybe the issue would get more visiblity if we used
> PVE::RESTEnvironment::log_warn here?
> not really sure if it makes sense to mark the start tasks specifically for
> something that worked before without any logline indicating that something
> was off - but as I somehow expected to see the task with a warning - I
> thought I'd drop this here
> 

meh not a fan of tihs, because it implies there is something to be done by the user here.
but either it works, then the warning is just a documentation strange hardware behavior,
or it does not work, which the user cannot fix himself anyway (if it's because
the reset does not work)

just having the warning in the task log is IMHO good enough

> 
> 
>>   	    if $info->{has_fl_reset} && !PVE::SysFSTools::pci_dev_reset($info);
>>       }
>>   
> 





More information about the pve-devel mailing list