Friendly ping. Any thoughts about this report? thanks, Daniel
On Tue, Jan 18, 2022 at 02:47:20PM -0500, Daniel Jordan wrote: > Hi, > > I've hit a memory leak while testing qemu v6.2.0-rc4 on an AMD EPYC 7J13 > (Milan) system. Starting an almost 1T guest, the leak is over 1.5G per > qemu invocation. I haven't checked whether the leak is proportional to > guest size. It happens with a vfio device, and only when the guest's > memory is preallocated using qemu prealloc (this latter part is kinda > strange). It happens when the guest memory uses THP but not hugetlb. > > Bisection: > > # bad: [df0cc57e057f18e44dac8e6c18aba47ab53202f9] Linux 5.16 > # good: [f40ddce88593482919761f74910f42f4b84c004b] Linux 5.11 > git bisect start 'df0cc57e057f1' 'f40ddce885934' '--' 'drivers/vfio' > 'drivers/iommu' 'include/linux/amd-iommu.h' 'include/linux/dma-iommu.h' > 'include/linux/intel-iommu.h' 'include/linux/iommu-helper.h' > 'include/linux/of_iommu.h' 'include/ > linux/omap-iommu.h' 'include/linux/platform_data/iommu-omap.h' > 'include/linux/iommu.h' 'include/trace/events/intel_iommu.h' > 'include/trace/events/iommu.h' 'include/uapi/linux/iommu.h' > 'include/uapi/linux/virtio_iommu.h' 'arch/x86/events/a > md/iommu.h' 'arch/x86/events/amd/iommu.c' 'arch/x86/include/asm/iommu.h' > 'arch/x86/include/asm/iommu_table.h' 'arch/x86/kernel/pci-iommu_table.c' > # bad: [cee57d4fe74e82e784f6566bad3e3bb1ca51a211] iommu/vt-d: Remove > unnecessary braces > git bisect bad cee57d4fe74e82e784f6566bad3e3bb1ca51a211 > > # bad: [9fb5fad562fa0a41c84691714d99c23f54168a9e] iommu: remove > DOMAIN_ATTR_PAGING > git bisect bad 9fb5fad562fa0a41c84691714d99c23f54168a9e > > # bad: [45e606f2726926b04094e1c9bf809bca4884c57f] Merge branches > 'arm/renesas', 'arm/smmu', 'x86/amd', 'x86/vt-d' and 'core' into next > git bisect bad 45e606f2726926b04094e1c9bf809bca4884c57f > # good: [7060377ce06f9cd3ed6274c0f2310463feb5baec] Merge branch > 'for-joerg/mtk' into for-joerg/arm-smmu/updates > git bisect good 7060377ce06f9cd3ed6274c0f2310463feb5baec > # bad: [6778ff5b21bd8e78c8bd547fd66437cf2657fd9b] iommu/amd: Fix performance > counter initialization > git bisect bad 6778ff5b21bd8e78c8bd547fd66437cf2657fd9b > # good: [f9b4df790aa4372bfa11b7d212e537b763295429] iommu/amd: Declare > functions as extern > git bisect good f9b4df790aa4372bfa11b7d212e537b763295429 > # bad: [33aef9786046d9a5744cd1e8d5d0ce800d611fdc] iommu/amd: Rename variables > to be consistent with struct io_pgtable_ops > git bisect bad 33aef9786046d9a5744cd1e8d5d0ce800d611fdc > # bad: [e42ba0633064ef23eb1c8c21edf96bac1541bd4b] iommu/amd: Restructure code > for freeing page table > git bisect bad e42ba0633064ef23eb1c8c21edf96bac1541bd4b > # good: [18954252a1d0b12e1b77087b55c37fb43b09e12a] iommu/amd: Move IO page > table related functions > git bisect good 18954252a1d0b12e1b77087b55c37fb43b09e12a > # first bad commit: [e42ba0633064ef23eb1c8c21edf96bac1541bd4b] iommu/amd: > Restructure code for freeing page table > > commit e42ba0633064ef23eb1c8c21edf96bac1541bd4b > Author: Suravee Suthikulpanit <[email protected]> > > Date: Tue Dec 15 01:36:59 2020 -0600 > > > iommu/amd: Restructure code for freeing page table > > > By consolidate logic into v1_free_pgtable helper function, > which is called from IO page table framework. > > > Signed-off-by: Suravee Suthikulpanit <[email protected]> > Link: > https://lore.kernel.org/r/[email protected] > Signed-off-by: Joerg Roedel <[email protected]> > > drivers/iommu/amd/amd_iommu.h | 1 - > drivers/iommu/amd/io_pgtable.c | 41 ++++++++++++++++++++++++----------------- > drivers/iommu/amd/iommu.c | 21 ++++----------------- > 3 files changed, 28 insertions(+), 35 deletions(-) > > Qemu command line: > > numactl -m 1 -N 1 "$QEMU" \ > -name vmol74 \ > -machine q35,accel=kvm,usb=off,dump-guest-core=off,memory-backend=pc.ram \ > -cpu host,host-phys-bits=true \ > -smp cpus=32 \ > -no-user-config \ > -nodefaults \ > -rtc base=utc,driftfix=slew \ > -global kvm-pit.lost_tick_policy=delay \ > -no-hpet \ > -no-shutdown \ > -boot strict=on \ > -drive file=${vm_image},format=raw,if=none,id=drive-ide0-0-0 \ > -device > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 \ > -device vfio-pci,host=${pci_addr},id=net2,bus=pcie.0 \ > -msg timestamp=on \ > -nographic \ > -object > memory-backend-ram,id=pc.ram,size=980g,prealloc=on,prealloc-threads=16 -m > 980g \ > -daemonize > > Kernel config attached, and I can provide other details too if I left > anything out. > > thanks, > Daniel _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
