On Thu, 2018-03-22 at 10:14 -0600, Jens Axboe wrote: > Hi Bart, > > After your commit: > > commit 0ffccc21fcd67d1e1d2a360e90f3fe8efc0d6b52 > Author: Bart Van Assche <bart.vanassche@xxxxxxx> > Date: Thu Mar 8 13:41:36 2018 -0800 > > Improve Valgrind instrumentation of memory allocations > > running valgrind on a fio spews a lot of warnings: > > ==14331== Invalid write of size 8 > ==14331== at 0x4C3451F: memset (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==14331== by 0x4595F8: memset (string3.h:90) > ==14331== by 0x4595F8: smalloc_pool (smalloc.c:434) > ==14331== by 0x4595F8: __smalloc (smalloc.c:452) > ==14331== by 0x4727CD: flow_init (flow.c:112) > ==14331== by 0x421886: setup_thread_area (init.c:391) > ==14331== by 0x42552A: get_new_job (init.c:468) > ==14331== by 0x42552A: __parse_jobs_ini (init.c:1928) > ==14331== by 0x42585F: parse_jobs_ini (init.c:2082) > [...] > > Basically off any path that ends up in smalloc, on the memset() > that we do: > > ptr = __smalloc_pool(pool, alloc_size); > if (ptr) { > struct block_hdr *hdr = ptr; > > hdr->size = alloc_size; > fill_redzone(hdr); > > ptr += sizeof(*hdr); > memset(ptr, 0, size); > ^^^ > } > > for every alloc. From configure: > > Valgrind headers yes That's weird. The only explanation I can think of is that Valgrind failed to intercept the mmap() call in add_pool(). Can you check with the Valgrind option --trace-syscalls=yes whether Valgrind is able on your system to intercept mmap()? Thanks, Bart. ��.n��������+%������w��{.n�������^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�