kvm-guest-drivers-windows icon indicating copy to clipboard operation
kvm-guest-drivers-windows copied to clipboard

SCSI driver memory leak

Open elderlabs opened this issue 1 year ago • 1 comments

Describe the bug I've obtained drivers from the FedoraPeople virtio group, as described in Proxmox's documentation. What I've found is that in all version above virtio-win-0.1.185 (v62.82.104.18500), the VirtIO SCSI Controller driver (viostor) appears to have some sort of memory leak, as far as I've been able to trace. Using the version ending in 18500, my VM idles around 3GB memory usage and does not spike. Using any newer available version (v100.83.104.18700 - v100.93.104.24000), memory usage at idle is 5GB, spiking at least as high as 8-10GB, though if I recall in testing, I've seen it spike upwards of 15GB.

To Reproduce Steps to reproduce the behaviour:

  • install Windows 10, any build between 1909-22H2 [I'm running Enterprise, though I've seen it in Pro as well]
  • install the appropriate virtio drivers from the fedora people archive [I'm running the network, ballon, and storage drivers, as well as QEMU guest]
  • observe memory usage with task manager, or any appropriate memory usage tool, such as RAMMap.
  • for extra confusion, install the vioserial driver (of any versions listed here) and reboot until your memory usage inside the VM is all available memory.

Expected behavior

  • memory usage should remain similar to its usage under driver version v62.82.104.18500

Host:

  • Disto: Proxmox 8.0.4 [Debian 12]
  • Kernel: Linux 6.2.16-14-pve #1 SMP PREEMPT_DYNAMIC PMX 6.2.16-14 (2023-09-19T08:17Z)
  • QEMU version: QEMU emulator version 8.0.2 (pve-qemu-kvm_8.0.2-6)
  • QEMU command line: ???
  • QEMU server: qemu-server 8.0.7
  • libvirt version: ???
  • libvirt XML file: ???
  • all proxmox version bits: https://pastebin.com/raw/xN0cAPar

VM:

  • Windows version: Windows 10 Enterprise 22H2 [19045.2728]
  • Which driver has a problem: viostor (and possibly vioserial)
  • Driver version: 100.83.104.18700+

Additional context Oddly, I've seen strange memory usage of nearly all 16GB assigned to the VM when the vioserial driver is installed. I'm uncertain whether this is related to the issue, though I am certain there's a leak in the SCSI driver, given it's necessary for VM functionality -- whereas the serial driver shouldn't be from what I've read.

Additional info available upon request.

elderlabs avatar Sep 26 '23 01:09 elderlabs

@elderlabs

Thank you for reporting the issue. Can you please tell what kind of tools did you use to discovery the memory leakage in viostor driver? Is it related to the storage read/write activity or the memory leakage happens all the time? Can you please confirm that the problem can be reproduced with v100.83.104.18700 but not with v62.82.104.18500? I'm asking you because there were no changes in viostor code between builds 185 and 187.

Best regards, Vadim.

vrozenfe avatar Sep 27 '23 22:09 vrozenfe