On Fri, Dec 7, 2018 at 5:52 PM Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx> wrote: > exit_msr_store is allocated and is not 0 in this part of the test. For > example, on my x86_64 system, I see the following addresses being tested: > > 0x1000047900f > 0x3000047901e > 0x7000047902d > 0xf000047903c > 0x1f000047904b > 0x3f000047905a > 0x7f0000479069 > 0xff0000479078 > 0x1ff0000479087 > 0x3ff0000479096 > 0x7ff00004790a5 > 0xfff00004790b4 > 0x1fff00004790c3 > 0x3fff00004790d2 > 0x7fff00004790e1 > 0xffff00004790f0 > 0x1ffff00004790ff > 0x3ffff000047910e > 0x7ffff000047911d > 0xfffff000047912c > 0x1fffff000047913b > 0x3fffff000047914a > 0x7fffff0000479159 > 0xffffff0000479168 > > > Here, my goal is to use a real address (returned by alloc_page()) for > the starting byte of exit_msr_store and then make the address of the > last byte invalid by setting a bit in [63:40] in the latter. Okay. Given that goal: 1) Why do most of these addresses set more than one bit in [63:40]? 2) Why do most of these addresses set illegal bits in [3:0]?