Hi,
When launching a HVM guest, the process hangs and does not even block
any xmlrpc communication, there's a significant system slowdown until
reboot.
I finally indentified the place of hang. It is in the xentools33 package
in ${WRKSRC}/libxc/xc_hvm_build.c , function setup_guest().
At the end of setup_guest(), there's this junk of code:
/* Insert JMP <rel32> instruction at address 0x0 to reach entry
point. */
entry_eip = elf_uval(&elf, elf.ehdr, e_entry);
if ( entry_eip != 0 ) {
char *page0 = xc_map_foreign_range(
xc_handle, dom, PAGE_SIZE, PROT_READ | PROT_WRITE, 0);
if ( page0 == NULL )
goto error_out;
page0[0] = 0xe9; <------------ "hang"
*(uint32_t *)&page0[1] = entry_eip - 5;
munmap(page0, PAGE_SIZE);
}
The "hang" happens when executing page0[0] = 0xe9;
I'm CC this to tech-kern, because I'm not sure if this is a bug in
xentools or if I found a UVM/pmap bug.