Jeremy Fitzhardinge wrote > >> Why do you insist that Xen have a separate kernel entry point? > > Because if you're going to distinguish hypervisors by putting a magic > value in a register, you get the best bang for the buck if the > register is EIP. If you don't want a special entrypoint, point EIP at > the common code. If you want to poke values into a couple of > registers, do that then jump to common. If you need to do something > complex and intricate in a restricted environment, you can do that > without having to fit that into the common startup sequence. It's for > the same reason that calling through a function pointer is nicer than > having lots of switch statements around the place. I think the larger issue that Eric pointed out is that there is only a single entry field in the ELF header. Having undocumented hypervisor specific entry points is messy, and a common boot point that plays nice with hypervisors, AP startup and kexec is certainly a nice thing. It would be even better to just totally clean up head.S and move much of it into C code, but that is a longer term project. For us, the issue is somewhat moot, because we don't actually have a different entry point, nor do we need to do anything paravirt-ops related until much later. Zach