From: Fiona Ebner <f.ebner@proxmox.com>
To: Kefu Chai <k.chai@proxmox.com>, pve-devel@lists.proxmox.com
Subject: Re: [PATCH v2 pve-qemu 0/2] Re-enable tcmalloc as the memory allocator
Date: Tue, 14 Apr 2026 13:08:52 +0200 [thread overview]
Message-ID: <f626cf83-ea21-4412-946a-13469e799fa2@proxmox.com> (raw)
In-Reply-To: <20260414054645.405151-1-k.chai@proxmox.com>
Am 14.04.26 um 7:45 AM schrieb Kefu Chai:
> Changes since v1:
>
> * Rename patch 1/2 commit title to "add patch to support using
> tcmalloc as the memory allocator" per Fiona's suggestion, since
> this patch only adds the QEMU source patch without enabling
> tcmalloc yet.
> * Rename the inner patch (0048) Subject to "PVE-Backup: support
> using tcmalloc as the memory allocator" to reflect that the code
> change is specific to the backup cleanup path.
> * Add Acked-by from Fiona.
>
> No code changes -- only titles and trailers.
>
> Kefu Chai (2):
> add patch to support using tcmalloc as the memory allocator
> d/rules: enable tcmalloc as the memory allocator
>
> debian/control | 1 +
> ...use-tcmalloc-as-the-memory-allocator.patch | 77 +++++++++++++++++++
> debian/patches/series | 1 +
> debian/rules | 1 +
> 4 files changed, 80 insertions(+)
> create mode 100644 debian/patches/pve/0048-PVE-use-tcmalloc-as-the-memory-allocator.patch
>
> --
> 2.47.3
I ran into a segmentation fault in tc_memalign() while doing a snapshot
with RAM and RBD volumes now:
[I] root@pve9a1 ~# cat /etc/pve/qemu-server/103.conf
balloon: 4992
bios: ovmf
boot: order=scsi0;net0;ide1
cores: 6
cpu: host
efidisk0:
rbd:vm-103-disk-3,efitype=4m,ms-cert=2023k,pre-enrolled-keys=1,size=1M
hotplug: disk,network,usb,memory
machine: pc-q35-10.1
memory: 7168
meta: creation-qemu=9.1.2,ctime=1736951759
name: win11-machine-ver
net0: e1000=BC:24:11:BC:50:E8,bridge=vnet0,firewall=1
net1: virtio=BC:24:11:75:BE:22,bridge=vnet0,firewall=1
numa: 1
ostype: win11
parent: pre-enroll
scsi0: rbd:vm-103-disk-1,iothread=1,size=52G
scsihw: virtio-scsi-single
smbios1: uuid=28e3302d-4489-466a-8a4c-835c79a8f2a0
sockets: 1
tpmstate0: rbd:vm-103-disk-2,size=4M,version=v2.0
unused0: rbd:vm-103-disk-0
vga: qxl
vmgenid: 6787d0c6-7ef5-498f-b9a1-7519262b661c
[I] root@pve9a1 ~# cat /etc/pve/storage.cfg | grep -A4 "rbd: rbd"
rbd: rbd
content images,rootdir
krbd 0
pool rbd
[I] root@pve9a1 ~# uname -a
Linux pve9a1 7.0.0-1-rc6-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.0-1~rc6+1
(2026-03-30T09:17Z) x86_64 GNU/Linux
Note that I did play around with memory hotplug and ballooning before as
well, not sure if related.
Unfortunately, I don't have the debug symbols for librbd.so.1 right now:
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 0x00007ea8da6442d0 in tc_memalign () from /lib/x86_64-linux-gnu/libtcmalloc.so.4
> [Current thread is 1 (Thread 0x7ea8ca66a6c0 (LWP 109157))]
> (gdb) bt
> #0 0x00007ea8da6442d0 in tc_memalign () from /lib/x86_64-linux-gnu/libtcmalloc.so.4
> #1 0x00007ea8da644412 in tc_posix_memalign () from /lib/x86_64-linux-gnu/libtcmalloc.so.4
> #2 0x00007ea8da8b81e6 in ceph::buffer::v15_2_0::list::refill_append_space(unsigned int) () from /lib/librados.so.2
> #3 0x00007ea8da8b83b2 in ceph::buffer::v15_2_0::list::append(char const*, unsigned int) () from /lib/librados.so.2
> #4 0x00007ea8da897335 in librados::v14_2_0::ObjectOperation::exec(char const*, char const*, ceph::buffer::v15_2_0::list&) ()
> from /lib/librados.so.2
> #5 0x00007ea8db03dca9 in ?? () from /lib/librbd.so.1
> #6 0x00007ea8dad6f96a in ?? () from /lib/librbd.so.1
> #7 0x00007ea8daba84c2 in ?? () from /lib/librbd.so.1
> #8 0x00007ea8dae25db4 in ?? () from /lib/librbd.so.1
> #9 0x00007ea8dae2d9e3 in ?? () from /lib/librbd.so.1
> #10 0x00007ea8dae20a54 in ?? () from /lib/librbd.so.1
> #11 0x00007ea8dacdf8c0 in ?? () from /lib/librbd.so.1
> #12 0x00007ea8dacdfc0f in ?? () from /lib/librbd.so.1
> #13 0x00007ea8dae1a788 in ?? () from /lib/librbd.so.1
> #14 0x00007ea8dae1af2f in ?? () from /lib/librbd.so.1
> #15 0x00007ea8dae1c9f6 in ?? () from /lib/librbd.so.1
> #16 0x00007ea8dae12e62 in ?? () from /lib/librbd.so.1
> #17 0x00007ea8dacdc932 in ?? () from /lib/librbd.so.1
> #18 0x00007ea8dacdcdb7 in ?? () from /lib/librbd.so.1
> #19 0x00007ea8dacdcf03 in ?? () from /lib/librbd.so.1
> #20 0x00007ea8dadcb09c in ?? () from /lib/librbd.so.1
> #21 0x00007ea8da8f2598 in ?? () from /lib/librados.so.2
> #22 0x00007ea8da8dfa71 in ?? () from /lib/librados.so.2
> #23 0x00007ea8da8f5f63 in ?? () from /lib/librados.so.2
> #24 0x00007ea8d9ce1224 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
> #25 0x00007ea8da4aab7b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> #26 0x00007ea8da5287f8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
With the main thread doing:
> Thread 12 (Thread 0x7ea8d72f2900 (LWP 109123)):
> #0 0x00007ea8da4b29ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> #1 0x00007ea8da4a7668 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> #2 0x00007ea8da4a7c8c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
> #3 0x00007ea8da4aa158 in pthread_cond_wait () from /lib/x86_64-linux-gnu/libc.so.6
> #4 0x00007ea8dabbc89b in ?? () from /lib/librbd.so.1
> #5 0x00007ea8dac4a9c5 in ?? () from /lib/librbd.so.1
> #6 0x00007ea8daafafbc in rbd_snap_create () from /lib/librbd.so.1
> #7 0x000055e3a051fb00 in qemu_rbd_snap_create (bs=<optimized out>, sn_info=0x55e3ddfb61c8) at ../block/rbd.c:1693
> #8 0x000055e3a0478268 in internal_snapshot_action (internal=<optimized out>, tran=tran@entry=0x55e3dd24b438, errp=errp@entry=0x7ffc43f674c8) at ../blockdev.c:1301
> #9 0x000055e3a047b67b in transaction_action (act=0x7ffc43f67540, block_job_txn=<optimized out>, tran=<optimized out>, errp=0x7ffc43f674c8) at ../blockdev.c:2177
> #10 qmp_transaction (actions=actions@entry=0x7ffc43f67550, properties=properties@entry=0x0, errp=0x7ffc43f67588, errp@entry=0x7ffc43f67528) at ../blockdev.c:2267
> #11 0x000055e3a047c0de in blockdev_do_action (action=0x7ffc43f67540, errp=0x7ffc43f67528) at ../blockdev.c:1072
> #12 qmp_blockdev_snapshot_internal_sync (device=<optimized out>, name=<optimized out>, errp=errp@entry=0x7ffc43f67588) at ../blockdev.c:1123
> #13 0x000055e3a056234b in qmp_marshal_blockdev_snapshot_internal_sync (args=<optimized out>, ret=<optimized out>, errp=0x7ea8d6a9aed0) at qapi/qapi-commands-block-core.c:2164
> #14 0x000055e3a05cd11c in do_qmp_dispatch_bh (opaque=0x7ea8d6a9aee0) at ../qapi/qmp-dispatch.c:136
> #15 0x000055e3a05ede13 in aio_bh_poll (ctx=ctx@entry=0x55e3db31c000) at ../util/async.c:219
> #16 0x000055e3a05d73cf in aio_dispatch (ctx=0x55e3db31c000) at ../util/aio-posix.c:390
> #17 0x000055e3a05edb76 in aio_ctx_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../util/async.c:364
> #18 0x00007ea8dcdc0385 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #19 0x00007ea8dcdc2c78 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #20 0x000055e3a05ef278 in glib_pollfds_poll () at ../util/main-loop.c:290
> #21 os_host_main_loop_wait (timeout=0) at ../util/main-loop.c:313
> #22 main_loop_wait (nonblocking=nonblocking@entry=0) at ../util/main-loop.c:592
> #23 0x000055e3a0211680 in qemu_main_loop () at ../system/runstate.c:904
> #24 0x000055e3a0538450 in qemu_default_main (opaque=opaque@entry=0x0) at ../system/main.c:50
> #25 0x000055e39ff7eb09 in main (argc=<optimized out>, argv=<optimized out>) at ../system/main.c:93
next prev parent reply other threads:[~2026-04-14 11:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-14 5:46 Kefu Chai
2026-04-14 5:46 ` [PATCH v2 pve-qemu 1/2] add patch to support using " Kefu Chai
2026-04-14 9:53 ` Fiona Ebner
2026-04-14 5:46 ` [PATCH v2 pve-qemu 2/2] d/rules: enable " Kefu Chai
2026-04-14 11:08 ` Fiona Ebner [this message]
2026-04-14 15:36 ` [PATCH v2 pve-qemu 0/2] Re-enable " Fiona Ebner
2026-04-15 10:22 ` Kefu Chai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f626cf83-ea21-4412-946a-13469e799fa2@proxmox.com \
--to=f.ebner@proxmox.com \
--cc=k.chai@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox