Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Feb 2015 12:04:47 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Matthew Grooms <mgrooms@shrew.net>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: pthread leaky with resources?
Message-ID:  <20150220100446.GL34251@kib.kiev.ua>
In-Reply-To: <54E65E05.2040101@shrew.net>
References:  <54E65E05.2040101@shrew.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Feb 19, 2015 at 04:04:53PM -0600, Matthew Grooms wrote:
> All,
> 
> I have a multi-threaded program that runs on 10.1-RELEASE-p5. It starts 
> out with a reasonable footprint but there is obviously a resource leak 
> as the program uses substantially more memory over time ...
> 
>    PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME WCPU COMMAND
> 51560 rdj           3  20    0 46676K  7500K select  1   0:00 0.00% dialyd
> 
> ... 24h later ...
> 
>    PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME WCPU COMMAND
> 51560 rdj           3  20    0   131M 27064K select  3   1:45 0.00% dialyd
> 
> After a bit of debugging, I determined that it only happens when threads 
> are created and then later destroyed. Valgrind thinks that the resources 
> are being leaked from libthr itself ...
Threading library caches thread structures and some related objects.
This is needed to correctly handle kernel notifications about threads
exit and to avoid thread id reuse, besides usual argument for using cache
to improve creation speed.

Also, the thread stacks are cached, each stack being 2MB probably accounts
for most of the memory usage columns in the top output above.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150220100446.GL34251>