all lists on lists.proxmox.com
 help / color / mirror / Atom feed
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






  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal