Dalmegnu and waddlesplash are still investigating some issues, progress is slow as this isn’t a full-time gsoc anymore.
The acceleration support is working for simple tests, but it is crashing when trying to boot haiku or other full-blown os in qemu. That makes it a bit difficult to debug, it would be easier if the simple test cases reproduced the crash.
Your suggestion would be a lot easier to read if you used a code block (``` before and after the code in a extra line) or a Paste service like https://bpa.st
I guess the lines with bullet points are the changes,but are they added or removed lines?
At last I sat down and reworked @dalmegnu’s code into a mergeable form, implementing AMD support and fixing a lot of bugs along the way, and merged it in hrev59768.
However, it’s not enabled yet. #20123 tracks the remaining problems. The short version is that while it works much better after my fixes and cleanups than it apparently did before, it still is not fully functional; a Haiku image boots to the rocket but then hits errors. (I did get Tiny Core Linux to boot all the way into a GUI at least.) So, it seems we have a handful more problems left to solve; but at least now that it’s merged, it’s easier to experiment with (you just have to uncomment two lines in the build configurations and then build a full image.)
Hardware virtualization will be great to have on Haiku, another feature that will be of enormous benefit and something I will definitely use when it is working fully. I was wondering what the state of it was after GSOC 2024, this is a wonderful update. Thanks to dalmegnu for starting the work on this and waddlesplash for working on getting it finished and merged into Haiku.
Did some investigation with @kallisti5: turns out the problems initializing on Intel hardware were due to a crazy oversight in the EFI loader’s initialization of non-boot CPUs. That might actually have caused some other open tickets, we’ll see…
After fixing that in hrev59772, I now get basically the same behavior on Intel as on AMD: “Mem Assist Failed”, userland crashes with NULL dereferences, etc. That’s actually good, as it means the problem is probably in common code somewhere. Where, I don’t know, and it’s going to take some work to try and unpack this further, probably.