Well, everything wasn’t great on the new kernel. Over time the lag returned.
When the system is laggy, I often see lots of CPU usage across several of my VMs, even though nothing particularly computational should be running. Firefox seems to often use a lot of CPU, as do other GUI programs that update their windows frequently. I can often get the system back to usability by closing Firefox if I’ve got something else with a lot of graphical updates going.
But this only happens when I’m using external monitors. When running just on the laptop’s built-in display, the exact same programs will not cause any lag at all. When using just one external monitor and the internal display, there’s periodically some lag. When using two external monitors the lag can at times render the system unusable.
Things seem a little worse when I’m at the desk with the 2560x1440 monitor is in use, as opposed to when I’m at the desk with the 1920x1200 monitor. So I hypothesize that the issue is related to the total size of the X virtual framebuffer. At its largest, when I’m using the larger external monitors and the internal display, the virtual framebuffer is 5420x1440.
At the moment, I’m working around the problem by using only my two external monitors, without the internal display. That puts me in the “only sometimes lag” zone like using a single external monitor plus the built-in display.
For troubleshooting purposes:
This is on a Dell Latitude 7300. The GPU is an Intel UHD Graphics 620, integrated into the CPU (an Intel i7-8665U). I’m running Qubes 4.1.2, with no separate display VM (so X is running in dom0). If I understand the Xorg log properly, X is using a generic driver, but it’s using DRI, so it should be making use of the i915 kernel module that’s loaded.
I have 32 GiB RAM. With my normal complement of VMs running, about 20% of that is unallocated, so every VM is getting its maximum amount of RAM.
The CPU has four cores. Hyperthreading is disabled, so four cores are all that’s available.
I use i3 as my window manager, with windows spread across 6–10 workspaces.
I’ve set the default VM video RAM before starting any VMs with
qvm-features dom0 gui-videoram-min $((5420 * 1440 * 4 / 1024)).