Re: valgrind spews

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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���)ߣ�

[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux