Kernel panic in Linux VMs (CentOS 7) in Parallels 17.1

MarkLe

Junior Member
I upgraded to Parallels 17 when it came out and it was running find on my laptop. Recently I upgraded to the latest version (17.1, build 51516). Now all my Linux VMs that run on CentOS 7 immediately crash on boot with a "Kernel Panic - not syncing: fatal exception" error message (right after the kernel version selection screen):


I tried another Macbook with a clean install of Parallels 17.1, but that gave the same result.
Parallels support thought that the VMs were corrupted and advised me to reinstall them. That would have taken me a lot of time, since they are all configured for various development purposes.
Instead, I downgraded to Parallels 16 and everything seems to be working again :) Looks like there's some kind of incompatibility with CentOS 7 and Parallels 17.1. And yes: I should upgrade those CentOS 7 VMs to a newer version some day....
A colleague of mine is also running Parallels 17 with similar VMs and doesn't have any issues. I advised him to not upgrade to 17.1.
 
Is this CentOS 7.9? You'll have to disable virGL by adding line "video.virgl=0" (without quotes) to VM Configuration > Hardware > Boot Order > Advanced > Boot Flags.
This is due to an older kernel which will crash unconditionally if virGL is enabled:
Code:
static inline int ida_alloc(struct ida *ida, gfp_t gfp)
{
       return ida_alloc_range(ida, 0, ~0, gfp);
}
Code:
static inline int ida_alloc_range(struct ida *ida, unsigned int min, unsigned int _max, gfp_t gfp)
{
       unsigned int end = max(_max, _max + 1);
       return ida_simple_get(ida, min, end, gfp);
}
Code:
int ida_simple_get(struct ida *ida, unsigned int start, unsigned int end,
                   gfp_t gfp_mask)
{
...
        BUG_ON((int)start < 0);
        BUG_ON((int)end < 0);
 
That seems to work. Upgraded to Parallels 17.1 again, added the boot flag and the VM started without issues.
Thanks!
 
Back
Top