26.04.2016 13:09, Andrew Bird пишет:
The long term goal for the Kernel would be a new simplified vm86() call, but most likely this is not going to be backwardly compatible for existing apps to run unchanged.
This is not a problem: there are currently 2 vm86 syscalls: vm86() and vm86old(). One can re-implement vm86old(), leaving vm86() for compatibility with the current apps.
A while ago I tested Bart's dosemu2 branch which implemented a kvm based mode. I found it to be almost identical for speed with vm86() on both floating point and integer based benchmarks on i386. If that can be made stable enough to use on i386 and x86_64, then I see no reason to implement a new vm86() purely for 32bit.
The problem is that kvm is unstable by itself: https://lkml.org/lkml/2016/3/29/567 It reboots some old machines... Also the way dosemu uses it, is a bit nasty and complex: it sets up the full vm86 monitor in userspace. Bart initially tried the clean implementation, but that required too much work on both dosemu and kernel side, and may not be supported on many CPUs. I still want to prepare dosemu for a clean implementation, and make that optional. The branch "kvm" is for that.
Of course it's a question of developer resources, I for one am not capable of helping with either Kernel vm86() or to the stabilisation of kvm based dosemu, so I do what I can to preserve the ability to run with the old vm86() by pushing for runtime enablement in Ubuntu. I suspect this will only work for so long, and at some point it will be dropped. So I hope the kvm mode can be developed to the point where we no longer care about vm86() being available, as it's good enough to be the default and fast enough for those apps that need it.
Integrating kvm properly and cleanly, and fixing the kernel to not reboot the older machines, is virtually an unlimited amount of work, while re-implementing vm86() is a quite small task. Of course if we accept enough of short-cuts, then the proportions may change. -- To unsubscribe from this list: send the line "unsubscribe linux-msdos" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html