[libvirt] 1GB huge pages and incompatible VM memory size
Jim Fehlig
jfehlig at suse.com
Mon Feb 13 01:52:17 UTC 2017
Hi All,
Matt encountered the following issue when using 1GB huge pages with libvirt
> This problem turned out to be entirely my fault because I didn't round
> the VM's memory size to a 1G multiple, and the kernel tried to split
> the VMA at the end of the region, triggering this code in the kernel
> do_mbind() path,
>
> static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
> unsigned long addr, int new_below)
> {
> struct vm_area_struct *new;
> int err;
>
> if (is_vm_hugetlb_page(vma) && (addr &
> ~(huge_page_mask(hstate_vma(vma)))))
> return -EINVAL;
>
> I have no idea how a less fortunate developer without access to MM
> experts would have figured this out. It's a shame virsh didn't error
> out when I initially setup 1G hugepages with an incompatible VM memory
> size.
What do folks think about improving libvirt to warn or error when using a VM
memory size that is not compatible with the host hugepage configuration?
Regards,
Jim
More information about the libvir-list
mailing list