Hi Rusty, I had a look over your 011-paravirt-head.S.patch. I'm struggling to come up with a list of any benefits over having separate entrypoints for each hypervisor. Multiple entry pros: * allows maximum startup flexibility for any given hypervisor * for Xen at least, it's pretty simple * the "what hypervisor am I under" question is answered trivially cons: * small amount of duplicated code? (can be factored out into shared functions) * assumes each hypervisor has a distinct way of setting the entry address Single entry pros: * simpler control flow? cons: * requires "hypervisor sniffing" to work out what hypervisor we're under o mandates setting %ebx to a magic constant? * not possible to have hypervisor-specific setup before setting up stacks, making calls, etc Where do the ebx constants come from anyway? If they're provided by the hypervisor itself, it means we need to have a registry of who's using what number, right? We'd require them to all be unique (since collisions would be disastrous), and also they need to be densely allocated (single we're using them as an array index). Rusty, could you explain your rationale a bit more? J