13

Ubuntu 20.04 LTS installed with Hyper-V Manager. I have assigned it 4 processor cores and 12GBs of RAM. I have run through several forums and tutorials and I haven't found any solution that would actually help with the issue. The performance is so sluggish, it's making usage of the VM unbearable. I'd love things to run smoothly - moving the cursor, opening windows, scrolling etc.

i-7 8700K, 32GB, Intel UHD Graphics 630, SSD

I'd appreciate any help.

Bartek
  • 131

4 Answers4

11

On Ubuntu 20.04 do the following:

  1. Run:

    sudo nano /etc/modprobe.d/blacklist.conf
    
  2. Add the following line at the end of the file:

    blacklist hyperv_fb
    
  3. Save (Ctrl+X then Y)

  4. Reboot.

The refresh rate should be much better.

Justas
  • 211
3

I wish I would have seen this question earlier. I'm sorry that you have been affected for a long time. :-(

This is a known issue (please refer to https://github.com/LIS/lis-next/issues/655) which has been fixed in the Linux mainline kernel since last Nov (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f1251a48c17b54939d7477305e39679a565382c).

For Ubuntu 20.04, as I just checked, the latest linux-azure kernel Ubuntu-azure-5.4.0-1039.41 (Jan 18) still does not have the fix, but the generic 5.4 kernel Ubuntu-5.4.0-66.74 and the HWE kernel Ubuntu-hwe-5.8-5.8.0-44.50_20.04.1 already have the fix. You probably want to upgrade to either of the two kernels that have the fix.

If you can't upgrade your kernel immediately, there is a workaround: please blacklist the Hyper-V synthetic framebuffer driver (the file location can be found by "modinfo hyperv_fb"), and then Linux will automatically use the legacy vesafb driver (if it’s a Generation-1 VM) or the efifb driver (if it’s a Generation-2 VM); if it’s a Generation-1 VM, please also add the kernel parameter "video=vesafb:mtrr:3", which tells the legacy framebuffer driver "vesafb" to map the legacy framebuffer cacheable. The rationale of the workaround is that the legacy vesafb/efifb drivers are fast since they map (or can be instructed to map) the framebuffer cacheable.

Dexuan
  • 131
2

to change the resolution back to 1920:

Set-VMVideo -VMName "Name of VM in Manager" -HorizontalResolution 1920 -VerticalResolution 1080 -ResolutionType Single

(https://learn.microsoft.com/en-us/answers/questions/341631/how-to-adjust-virtual-machine-display-resolution-t)

0

As an example how to use the HWE kernel for Ubuntu 20.04 with the mentioned kernel fix above:

sudo apt install linux-generic-hwe-20.04

Works like a charm!