On Thu, May 20, 2021 at 02:56:41PM -0700, David Matlack wrote: > On Thu, May 20, 2021 at 2:47 PM Peter Xu <peterx@xxxxxxxxxx> wrote: > > > > On Thu, May 20, 2021 at 09:26:54PM +0000, David Matlack wrote: > > > vm_get_max_gfn() casts vm->max_gfn from a uint64_t to an unsigned int, > > > which causes the upper 32-bits of the max_gfn to get truncated. > > > > > > Nobody noticed until now likely because vm_get_max_gfn() is only used > > > as a mechanism to create a memslot in an unused region of the guest > > > physical address space (the top), and the top of the 32-bit physical > > > address space was always good enough. > > > > s/top/bottom/? > > I guess it depends on your reference point :). The existing comments > under tools/testing/selftests/kvm use the convention that "top" == > high addresses. Ah I was thinking in another way (converting the unsigned int to u64 is taking the "bottom" of the 8bytes field), while you meant we allocate memory from the top. Yeah then it looks good. > > > > > Looks right.. thanks for fixing it! > > > > > > > > This fix reveals a bug in memslot_modification_stress_test which was > > > trying to create a dummy memslot past the end of guest physical memory. > > > Fix that by moving the dummy memslot lower. > > > > Would it be better to split the different fixes? > > I'm fine either way. I figured the net delta was small enough and the > fixes tightly coupled so sending as one patch made the most sense. Is > there value in splitting this up? Feel free to keep it a single patch if no one else complains. :) Thanks, -- Peter Xu