virtio-win / kvm-guest-drivers-windows

Windows paravirtualized drivers for QEMU\KVM
https://www.linux-kvm.org/page/WindowsGuestDrivers
BSD 3-Clause "New" or "Revised" License
1.91k stars 377 forks source link

Handle disk removal in vioscsi #1103

Closed annie-li closed 2 weeks ago

annie-li commented 3 weeks ago

The two patches handle the disk removal in vioscsi driver. The details is the following,

vioscsi: Process PnP actions for the adapter When the vioscsi device is deleted on the host side, the driver should handle the removal I/O properly. Any new SCSI Request Blocks are completed with SRB_STATUS_NO_DEVICE.

vioscsi: Implement HwUnitControl routine If multiple LUNs exist in the same storage controler, the HwUnitControl routine needs to be implemented. This routine handles operations occurring on LUNs. When the disk is deleted on the host, the HwUnitControl routine completes the pending I/Os for the deleted disk.

vrozenfe commented 3 weeks ago

@annie-li Looks good. Thank you a lot.

Just a quick question. Did you manage to test it on multiple units configuration, when several LUNs connected to the same adaptor?

Best regards, Vadim.

annie-li commented 3 weeks ago

Hi Vadim,

Yes, I did test it on multiple LUNs connected to the same adapter, and it works. I also added log to trace the process in VioScsiUnitControl, and tried to add some disk load during the deletion. However, the log shows there is no pending SRBs during my tests, and no "Complete pending I/Os on Path" is printed out.

Thanks Annie

YanVugenfirer commented 3 weeks ago

@kostyanf14 Are the failures in Windows Server 2025 related to the setup?

@vrozenfe @annie-li Please check the failure in Windows Server 2019

kostyanf14 commented 3 weeks ago

@YanVugenfirer I trigger rerun for Server 2025 after update env.

kostyanf14 commented 3 weeks ago

@YanVugenfirer Looks like the new image fixed issues for Win2025. CI still running

annie-li commented 3 weeks ago

@kostyanf14 Are the failures in Windows Server 2025 related to the setup?

@vrozenfe @annie-li Please check the failure in Windows Server 2019

This test repeatedly runs tests of I/O testing and reinstallation the original driver, but the MS document doesn't mention it involves the test of removing devices. The log directly shows the test failed without details. The failure log is the following,

D, [2024-06-06T23:56:41.753120 #1241233] DEBUG -- action/exists_on_machine?: machine = CL1, r_path = ${env:SystemRoot}/Minidump
D, [2024-06-06T23:56:43.508861 #1241233] DEBUG -- : Checking Minidump exist on CL1: false
I, [2024-06-06T23:56:43.509345 #1241233]  INFO -- : Failed: DF - Reinstall with IO Before and After (Reliability)

Comparing to the log of the passed test case of previous vioscsi commit, this failure log doesn't contain the log >>> Currently running: DF - Reinstall with IO Before and After (Reliability) [01:30:00] that shows in the log of passed test. This also indicate the test doesn't get running.