[fedora-virt] f10 x86_64 xen VM guests fail to boot on f8 host (guest setting NX bit in L1 PTE?)

Mark McLoughlin markmc at redhat.com
Tue Jan 20 10:27:29 UTC 2009

(Jeremy/Ian - here's some more info on the bug reported here:


Hi Jon/Phill,

Thanks for all the info.

Here's the important bits:

  1) Host kernel is, that means the hypervisor is 

  2) The guest kernel is

  3) Phill points out the faulting instruction is UD2. That just means 
     the guest kernel is hitting a BUG() assertion. See /asm-x86/bug.h:

       #define BUG()                                                   \
       do {                                                            \
               asm volatile("ud2");                                    \
               for (;;) ;                                              \
       } while (0)

   4) The backtrace shows the fault happens in set_page_prot()

   5) Jon's dmesg contains:

        (XEN) mm.c:1362:d46 Bad L1 flags 800000

That means the guest is faulting here:

static void set_page_prot(void *addr, pgprot_t prot)
        if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))

because the PTE update is failing in the HV here:

static int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t nl1e, 
                        unsigned long gl1mfn)
        if ( unlikely(l1e_get_flags(nl1e) & L1_DISALLOW_MASK) )
            MEM_LOG("Bad L1 flags %x",
                    l1e_get_flags(nl1e) & L1_DISALLOW_MASK);
            return 0;

the PTE flags are 800000 which corresponds to:

#define _PAGE_NX_BIT (1U<<23)

Jon/Phill - can one of you two file a bug (bugzilla.redhat.com) with all
this info?


Previous posts, for reference:


More information about the Fedora-virt mailing list