On 07/26/11 15:19, Tim Deegan wrote: > At 14:11 +0200 on 26 Jul (1311689501), Christoph Egger wrote: >> On 07/25/11 12:30, Tim Deegan wrote: >>> At 11:25 +0100 on 25 Jul (1311593146), Tim Deegan wrote: >>>> Also this function should be called from the CPUID trap handler to make >>>> sure we never advertise PSE1GB when we're not going to support it. >>> >>> Er, not this function exactly, since CPUID should report the feature >>> even when the guest's not in long_mode. I think it needs a >>> hvm_pse1G_supported that can be called from CPUID, and then >>> guest_supports_1G_superpages() boils down to >>> "(GUEST_PAGING_LEVEL>= 4)&& hvm_pse1G_supported(v)" >> >> New version attached. I removed the fake l1e calculation. > > If you just remove it, you need to update hap_p2m_ga_to_gfn to figure > out the GFN some other way! I expect that's what's causing your > problem. You should either provide the fake l1e, and say why in the > comment, or audit all callers of the function to make sure they don't > need it. Ah, I see now. I misunderstood you. I forgot to increase the pfn by the right number of 2m pages for the l1e calculation. Now it works for me: The l2 guest boots and passes my tests. -- ---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85689 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632