On 07/26/2018 11:43 AM, Daniel P. Berrangé wrote:
On Thu, Jul 26, 2018 at 04:37:33PM +0100, Daniel P. Berrangé wrote:
> On Thu, Jul 26, 2018 at 05:32:32PM +0200, Igor Gnatenko wrote:
>> On Thu, Jul 26, 2018 at 5:29 PM Florian Weimer <fweimer(a)redhat.com> wrote:
>>
>>> I would like to request a change of the Packaging Guidelines, advising
>>> packagers not to interpose malloc.
>>>
>>> The reasons are:
>>>
>>> * We have resources to support glibc malloc, but not for other mallocs.
>>> * Other mallocs do not follow ABI and provide insufficient alignment.
>>> * Choosing a malloc is workload-dependent and forcing a non-default
>>> malloc takes options away from system administrators.
>>>
>>> This does not concern other allocators, such as Boehm GC or APR, only
>>> the standard malloc interfaces.
>>>
>> How does one detect that some other allocator is used? Do we have some
>> automated tools? Do you have a draft?
> If you know the other malloc impl, you can do a dnf query. For example
> gperftools ships the tcmalloc impl. Looking at the ELF symbol it provides,
> we can query for its usage thus:
>
> # dnf repoquery --whatrequires 'libtcmalloc.so.4()(64bit)'
> 389-ds-base-0:1.4.0.6-2.fc28.x86_64
> 389-ds-base-libs-0:1.4.0.6-2.fc28.x86_64
> 389-ds-base-snmp-0:1.4.0.6-2.fc28.x86_64
> Pound-1:2.7-3.fc24.x86_64
> bro-core-0:2.5.3-2.fc28.x86_64
> ceph-base-1:12.2.4-1.fc28.x86_64
> ceph-base-1:12.2.7-1.fc28.x86_64
> ceph-common-1:12.2.4-1.fc28.x86_64
> ceph-common-1:12.2.7-1.fc28.x86_64
> ceph-fuse-1:12.2.4-1.fc28.x86_64
> ceph-fuse-1:12.2.7-1.fc28.x86_64
> ceph-mds-1:12.2.4-1.fc28.x86_64
> ceph-mds-1:12.2.7-1.fc28.x86_64
> ceph-mgr-1:12.2.4-1.fc28.x86_64
> ceph-mgr-1:12.2.7-1.fc28.x86_64
> ceph-mon-1:12.2.4-1.fc28.x86_64
> ceph-mon-1:12.2.7-1.fc28.x86_64
> ceph-osd-1:12.2.4-1.fc28.x86_64
> ceph-osd-1:12.2.7-1.fc28.x86_64
> ceph-radosgw-1:12.2.4-1.fc28.x86_64
> ceph-radosgw-1:12.2.7-1.fc28.x86_64
> ceph-test-1:12.2.4-1.fc28.x86_64
> ceph-test-1:12.2.7-1.fc28.x86_64
> gperftools-devel-0:2.6.3-2.fc28.x86_64
> mongodb-0:3.6.3-1.fc28.x86_64
> mongodb-server-0:3.6.3-1.fc28.x86_64
Amuzingly/depressingly (delete as appropriate) we see 389-ds uses both
tcmalloc *and* jemalloc depending on sub-RPM in question !
This was fixed in
1.4.0.12-1
# dnf repoquery --whatrequires 'libjemalloc.so.2()(64bit)'
389-ds-base-devel-0:1.4.0.11-2.fc28.x86_64
blender-1:2.79b-2.fc28.x86_64
blender-1:2.79b-3.fc28.x86_64
blenderplayer-1:2.79b-2.fc28.x86_64
blenderplayer-1:2.79b-3.fc28.x86_64
jemalloc-devel-0:5.0.1-5.fc28.x86_64
neovim-0:0.2.2-1.fc28.x86_64
neovim-0:0.3.0-2.fc28.x86_64
redis-0:4.0.10-1.fc28.x86_64
redis-0:4.0.9-1.fc28.x86_64
varnish-0:5.2.1-4.fc28.x86_64
Regards,
Daniel