On Thu, Feb 11, 2021, Paolo Bonzini wrote:
On 11/02/21 02:56, Sean Christopherson wrote:
quoted
quoted
quoted
+ pta->gpa = (vm_get_max_gfn(vm) - guest_num_pages) * pta->guest_page_size;
+ pta->gpa &= ~(pta->host_page_size - 1);
Also not related to this patch, but another case for align.
quoted
if (backing_src == VM_MEM_SRC_ANONYMOUS_THP ||
backing_src == VM_MEM_SRC_ANONYMOUS_HUGETLB)
- guest_test_phys_mem &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1);
-
+ pta->gpa &= ~(KVM_UTIL_HUGEPAGE_ALIGNMENT - 1);
also align
quoted
#ifdef __s390x__
/* Align to 1M (segment size) */
- guest_test_phys_mem &= ~((1 << 20) - 1);
+ pta->gpa &= ~((1 << 20) - 1);
And here again (oof)
Yep, I'll fix all these and the align() comment in v2.
This is not exactly align in fact; it is x & ~y rather than (x + y) & ~y.
Are you going to introduce a round-down macro or is it a bug? (I am
lazy...).
Good question. I, too, was lazy. I didn't look at the guts of align() when I
moved it, and I didn't look closely at Ben's suggestion. I'll take a closer
look today and make sure everything is doing what it's supposed to do.