]> err.no Git - varnish/commit
Redo the way we manage the thread pool(s).
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sat, 7 Jun 2008 21:19:58 +0000 (21:19 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sat, 7 Jun 2008 21:19:58 +0000 (21:19 +0000)
commit66f21cbea7177ca0d3e169a553b370eccbdfdc82
tree6194c5eecc3893a57532de4ade5b2b3ecedeecc6
parent0342e55f48a61c8bef596393f86710526b30d019
Redo the way we manage the thread pool(s).

This is necessary to generalize the thread pools to do other tasks
for us in the future.

Please read the descriptions of the new and changed thread_pool*
parameters carefully before you tweak them, some of them have
slightly different meanings now.

The high-level view of this is that we now have dedicated a thread to
adding threads to the pools, in addition to the thread we already
had that killed idle threads from the pools.

The difference is that this new thread is quite a bit more reluctant
to add threads than the previous code, which would add a thread any
time it could get away with it.

Hopefully that reduces the tendency for thread-pile-ups.

This commit also reduces the cross-pool locking contention by making
the overflow queue a per pool item.

The down side of that is that more of the stats counters have become
unlocked and thus can get out of sync if two threads race when updating
them.  This is an XXX item.

Thanks to Anders Nordby for testing this patch.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2653 d4fa192b-c00b-0410-8231-f00ffab90ce4
varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_pool.c
varnish-cache/bin/varnishd/heritage.h
varnish-cache/bin/varnishd/mgt_param.c