lkml.org 
[lkml]   [2020]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] hugetlb_cgroup: fix reservation accounting
From
Date
On 10/21/20 10:44 PM, Mike Kravetz wrote:
> Michal Privoznik was using "free page reporting" in QEMU/virtio-balloon
> with hugetlbfs and hit the warning below. QEMU with free page hinting
> uses fallocate(FALLOC_FL_PUNCH_HOLE) to discard pages that are reported
> as free by a VM. The reporting granularity is in pageblock granularity.
> So when the guest reports 2M chunks, we fallocate(FALLOC_FL_PUNCH_HOLE)
> one huge page in QEMU.
>
> [ 315.251417] ------------[ cut here ]------------
> [ 315.251424] WARNING: CPU: 7 PID: 6636 at mm/page_counter.c:57 page_counter_uncharge+0x4b/0x50
> [ 315.251425] Modules linked in: ...
> [ 315.251466] CPU: 7 PID: 6636 Comm: qemu-system-x86 Not tainted 5.9.0 #137
> [ 315.251467] Hardware name: Gigabyte Technology Co., Ltd. X570 AORUS PRO/X570 AORUS PRO, BIOS F21 07/31/2020
> [ 315.251469] RIP: 0010:page_counter_uncharge+0x4b/0x50
> ...
> [ 315.251479] Call Trace:
> [ 315.251485] hugetlb_cgroup_uncharge_file_region+0x4b/0x80
> [ 315.251487] region_del+0x1d3/0x300
> [ 315.251489] hugetlb_unreserve_pages+0x39/0xb0
> [ 315.251492] remove_inode_hugepages+0x1a8/0x3d0
> [ 315.251495] ? tlb_finish_mmu+0x7a/0x1d0
> [ 315.251497] hugetlbfs_fallocate+0x3c4/0x5c0
> [ 315.251519] ? kvm_arch_vcpu_ioctl_run+0x614/0x1700 [kvm]
> [ 315.251522] ? file_has_perm+0xa2/0xb0
> [ 315.251524] ? inode_security+0xc/0x60
> [ 315.251525] ? selinux_file_permission+0x4e/0x120
> [ 315.251527] vfs_fallocate+0x146/0x290
> [ 315.251529] __x64_sys_fallocate+0x3e/0x70
> [ 315.251531] do_syscall_64+0x33/0x40
> [ 315.251533] entry_SYSCALL_64_after_hwframe+0x44/0xa9
> ...
> [ 315.251542] ---[ end trace 4c88c62ccb1349c9 ]---
>
> Investigation of the issue uncovered bugs in hugetlb cgroup reservation
> accounting. This patch addresses the found issues.
>
> Fixes: 075a61d07a8e ("hugetlb_cgroup: add accounting for shared mappings")
> Cc: <stable@vger.kernel.org>
> Reported-by: Michal Privoznik <mprivozn@redhat.com>
> Co-developed-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>
> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
> ---
> mm/hugetlb.c | 20 +++++++++++---------
> 1 file changed, 11 insertions(+), 9 deletions(-)

I just tested this and can confirm it fixes the problem:

Tested-by: Michal Privoznik <mprivozn@redhat.com>

Thank you!
Michal

\
 
 \ /
  Last update: 2020-10-22 09:43    [W:0.039 / U:0.388 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site