Date: Fri, 21 Feb 2014 14:05:41 +0800 From: Erich Dollansky <erichsfreebsdlist@alogt.com> To: David Xu <davidxu@freebsd.org> Cc: freebsd-hackers@freebsd.org, Andre Albsmeier <mail@ma17.ata.myota.org> Subject: Re: pthread programming eats up resources (My or FreeBSD's fault?) Message-ID: <20140221140541.72020e93@X220.alogt.com> In-Reply-To: <5306E70D.70402@freebsd.org> References: <20140218180646.GA67861@schlappy> <53059574.8090605@freebsd.org> <20140220140644.7b1e0074@X220.alogt.com> <5305B786.8020708@freebsd.org> <20140221124405.0791d375@X220.alogt.com> <5306DCC8.3080001@freebsd.org> <20140221131517.66d5b82c@X220.alogt.com> <5306E70D.70402@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, On Fri, 21 Feb 2014 13:41:33 +0800 David Xu <davidxu@freebsd.org> wrote: > On 2014/02/21 13:15, Erich Dollansky wrote: > > On Fri, 21 Feb 2014 12:57:44 +0800 > > David Xu <davidxu@freebsd.org> wrote: > > > I am running your code while playing flash video, and many threads are it is not even my code. I am just interested. > accumulated, sometimes I saw a peak number at 800 or more, I think > it is normal, because the machine is loaded, after usleep returns, > other newly created threads may still not have chance to run, and > your next loop creates bunch of threads again, it could be very > easily to exceed 1000 threads. > > > Should I add some code to wait until the counter is zero again and > > see what is happening then? > > > > Yes, I think so. But thread stacks will be cached by libthr, and never > return to free space. so even if there is only one thread, you may > see a very large size in top. > I first called usleep only of more than 10 threads remained active. Top showed then nicely that this happens sometimes. Since I call usleep only when more than 1000 threads remain active, looks even funnier on top. I added then a loop to the thread and it works smoothly now. It runs now also into problems creating new threads when too many are still running. Of course, the program takes now much more CPU time as it waits less. I think that we can say that the library is not really optimised for empty threads. So, all seems perfect now. Thanks for your work. Erich
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140221140541.72020e93>