]>
err.no Git - varnish/log
ssm [Thu, 24 Apr 2008 06:37:01 +0000 (06:37 +0000)]
Example VCL: Cleanup and update for varnish version >= 1.2
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2634
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 21 Apr 2008 07:01:20 +0000 (07:01 +0000)]
Remove an assert which is no longer true in the case of a non-headered
(not-RFC2616 compliant) request.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2633
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 21 Apr 2008 06:33:37 +0000 (06:33 +0000)]
Make it possible for the acceptor to provide a method by which sessions
are passed to it.
If no method is provided, we fall back to vca_pipes.
closes #227
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2632
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 17 Apr 2008 20:08:49 +0000 (20:08 +0000)]
Missing handling of sp->restarts and sp->director.
Spotted by: "postwait"
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2631
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 16 Apr 2008 07:58:43 +0000 (07:58 +0000)]
SIZE_MAX is not spelled SIZE_T_MAX in polite company.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2630
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 8 Apr 2008 15:34:57 +0000 (15:34 +0000)]
Polish up the malloc allocator to make it more useful for test and
debugging:
Implement an upper limit for allocated memory, specify as:
-smalloc,40M
Give the malloc allocator its own stats counters so we can see deeply
into what it does.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2629
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 8 Apr 2008 15:33:30 +0000 (15:33 +0000)]
Remove trailing blank from error message
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2628
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 8 Apr 2008 15:33:08 +0000 (15:33 +0000)]
Wrap long line
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2627
d4fa192b -c00b-0410-8231-
f00ffab90ce4
bahner [Thu, 3 Apr 2008 17:15:58 +0000 (17:15 +0000)]
svn-externals debian svn://svn.debian.org:/svn/pkg-varnish/packages/varnish/trunk/debian
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2626
d4fa192b -c00b-0410-8231-
f00ffab90ce4
bahner [Wed, 2 Apr 2008 09:42:16 +0000 (09:42 +0000)]
Debian pakking er flyttet til svn://svn.debian.org/svn/pkg-varnish/packages/varnish/debian
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2618
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 22:07:15 +0000 (22:07 +0000)]
Emit an extra CR+NL after the end of chunked encoding.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2617
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 21:48:33 +0000 (21:48 +0000)]
Fix ESI documents with multiple includes.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2616
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 21:48:16 +0000 (21:48 +0000)]
spelling fixes
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2615
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 11:49:20 +0000 (11:49 +0000)]
Fix a memoryleak relating to hash strings, found by: Arjan (noosius).
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2614
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 11:47:15 +0000 (11:47 +0000)]
Fix three memory leaks related to vsb's not being vsb_deleted:
Two really bad ones in Vary processing, found by Arjan (noosius).
One isignificant one related to -b arguments being wrong,
found by FlexeLint after I taught it how to spot this kind of issue.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2613
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 11:43:48 +0000 (11:43 +0000)]
Explain to FlexeLint that vsb_new()/vsb_delete() are alloc/free functions.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2612
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 31 Mar 2008 07:03:02 +0000 (07:03 +0000)]
I'm amazed that we have been able to spell "Authorization" as
"Authentication" for this long without anybody noticing until now.
Mea Culpa.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2611
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 24 Mar 2008 08:45:54 +0000 (08:45 +0000)]
If the backend does not transmit a respose string, use the default
string for the status code as found in RFC2616.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2609
d4fa192b -c00b-0410-8231-
f00ffab90ce4
kobold [Mon, 24 Mar 2008 07:32:12 +0000 (07:32 +0000)]
small fixes to the debian packaging: removed a lintian warning, merged two
changelog entries, cleaned debian/rules.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2608
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Wed, 19 Mar 2008 12:27:43 +0000 (12:27 +0000)]
s/remove/unset/, but keep remove as an alias for backward compat.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2607
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sun, 16 Mar 2008 14:11:26 +0000 (14:11 +0000)]
The value of HTTP_HDR_MAX is not visible to the preprocessor, so
(IOV_MAX < (HTTP_HDR_MAX * 2)) is equivalent to (IOV_MAX < (0 * 2)),
which obviously is never true. Fixes #222.
Submitted by: Jyri J. Virkki <jyri@virkki.com>
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2606
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 13 Mar 2008 12:49:36 +0000 (12:49 +0000)]
Use a private cond-var for each worker thread, instead of pipe(2)-pair, it is cheaper.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2605
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 13 Mar 2008 10:34:30 +0000 (10:34 +0000)]
Make VSLR() static, it's unused outside shmlog.c
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2604
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 13 Mar 2008 10:29:14 +0000 (10:29 +0000)]
Add a DSL() macro for diagnostic shmlogging and use it.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2603
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Thu, 13 Mar 2008 10:14:10 +0000 (10:14 +0000)]
Don't shmlog ECONNABORTED
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2602
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Thu, 13 Mar 2008 05:59:19 +0000 (05:59 +0000)]
Debian packaging: Do not include the upstream INSTALL file
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2600
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Wed, 12 Mar 2008 15:11:00 +0000 (15:11 +0000)]
Refactor, implement random mode.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2599
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 12 Mar 2008 14:07:08 +0000 (14:07 +0000)]
Further revamp the CLI handling in the cacher process, making it
possible for various modules to add cli functions so they can
be manipulated on the fly.
CLI_AddFuncs() registers a set of CLI functions. We operate
with three lists: the ones not shown in "help" because the
manager already showed them, the normal ones and the debug
commands which are also not shown in a plain "help".
Move the registration of cli functions out to the code they
belong in: VCL, BAN and VCA.
Give VCA a real Init function, and have the cli function ("start")
initiate the acceptor thread which listens for incoming connections.
Split CLI_Init() into CLI_Init() and CLI_Run()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2598
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 12 Mar 2008 13:46:34 +0000 (13:46 +0000)]
Add a CLI support function for concatenating two cli_proto tables
in malloc'ed memory.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2597
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 12 Mar 2008 10:29:43 +0000 (10:29 +0000)]
Give cacher private cli functions a private prefix of "ccf" instead
of overloading common cli function namespace "cli_func".
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2596
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 12 Mar 2008 10:25:51 +0000 (10:25 +0000)]
Rework the manager/cacher cli relationship, so that the manager does
not have to grope around in the cacher's data structures.
Whenever the manager gets a CLI command it does not understand, it
will pass it to the cacher process, if it is running.
This complicated "help" a little bit, because we want to show the
combined commands of the manager and cacher.
Since we're dealing with help anyway, hide undocumented debug
commands from it.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2595
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 12 Mar 2008 10:21:49 +0000 (10:21 +0000)]
Change the default cli help function to ignore options starting
with '-'.
Remove header line.
If argument is not found, return CLIS_UNKNOWN.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2594
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 11 Mar 2008 11:25:28 +0000 (11:25 +0000)]
Slightly more elegant version of the previous commit, which also fixed a
tiny braino.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2593
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 11 Mar 2008 11:10:19 +0000 (11:10 +0000)]
Fix a couple of glaring errors in vca_pollspace().
Noticed by: Jyri J. Virkki <jyri@virkki.com>
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2592
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 11 Mar 2008 09:48:27 +0000 (09:48 +0000)]
VSL_H_Print() prints a 'b' in the third column for backend-related log
entries, a 'c' for client-related log entries, and a ' ' for everything
else (CLI Ping for instance). This makes it hard to process logs with
awk or similar tools, since the number of columns varies. Therefore,
change the character used for non-backend-or-client log entries to '-'.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2591
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 10 Mar 2008 21:21:15 +0000 (21:21 +0000)]
This is slightly experimental:
Reduce SHM mutex contention further, by only holding lock over
reservation of space, and do the copying from workthread buffer
to shm buffer efter we let go of the mutex.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2590
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Mon, 10 Mar 2008 08:17:23 +0000 (08:17 +0000)]
Debian packaging: Move control file "docs" to "varnish.docs" for consistency, add HTML changelogs from the doc/ directory to the packaging
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2588
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Mon, 10 Mar 2008 07:46:37 +0000 (07:46 +0000)]
Debian packaging: Fix syntax error in varnishlog init script, and set correct variable in defaults file. Add clarifying comment for variable
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2586
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Mon, 10 Mar 2008 07:15:56 +0000 (07:15 +0000)]
Debian packaging: Add changelog entry for 1.2-0
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2583
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Mon, 10 Mar 2008 07:13:36 +0000 (07:13 +0000)]
Debian packaging: removing obsolete TODO file
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2582
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Mon, 10 Mar 2008 06:02:00 +0000 (06:02 +0000)]
Debian packaging: Allow adjustment of maximum locked memory size
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2580
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sun, 9 Mar 2008 15:24:37 +0000 (15:24 +0000)]
Braino in previous commit.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2577
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sun, 9 Mar 2008 15:17:49 +0000 (15:17 +0000)]
Include complete headers with each replayed request.
Ignore SIGPIPE, otherwise varnishreplay will stop as soon as varnishd starts
overflowing.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2576
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sun, 9 Mar 2008 15:14:04 +0000 (15:14 +0000)]
Add -k option which specifies the number of log entries to keep. Along with
-s, this allows varnishlog to be used to extract part of a log file, or
partition a log file into smaller sections.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2575
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sat, 8 Mar 2008 16:55:22 +0000 (16:55 +0000)]
Add a -s option which specifies a number of entries to skip.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2572
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sat, 8 Mar 2008 15:42:23 +0000 (15:42 +0000)]
If it looks like a new request starts before a previous request on the same
fd has finished, flush the previous request with an additional line to note
that the request was interrupted.
This is usually a symptom of the child dying midway through the first
request.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2569
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Sat, 8 Mar 2008 13:47:56 +0000 (13:47 +0000)]
dump.pool was removed a while ago.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2565
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ingvar [Fri, 7 Mar 2008 15:07:31 +0000 (15:07 +0000)]
This is more pre-2.0 than 1.1.2+
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2562
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 7 Mar 2008 11:43:38 +0000 (11:43 +0000)]
Log free object workspace instead of used to get the size of the object
structure into the picture.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2561
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 7 Mar 2008 11:36:52 +0000 (11:36 +0000)]
Add diagnostic features to keep track of object workspace usage.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2560
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 7 Mar 2008 11:13:11 +0000 (11:13 +0000)]
Split the http_workspace into sess_workspace and obj_workspace, so they
can be tuned separately.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2559
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 7 Mar 2008 11:04:51 +0000 (11:04 +0000)]
Attempt to mlock(2) SHMFILE in core.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2558
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 7 Mar 2008 10:58:12 +0000 (10:58 +0000)]
Keep track of how often we flush the private shm buffer due to overflows.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2557
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 7 Mar 2008 10:36:40 +0000 (10:36 +0000)]
Put waiting list shmlogs under diag_bitmap
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2556
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 5 Mar 2008 13:18:39 +0000 (13:18 +0000)]
Check EOF as bitflag in kqueue return flags
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2555
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 4 Mar 2008 11:42:00 +0000 (11:42 +0000)]
Relax assertions, and fix the build.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2554
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 4 Mar 2008 11:03:03 +0000 (11:03 +0000)]
Regen
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2553
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 4 Mar 2008 11:02:25 +0000 (11:02 +0000)]
Define obj.hash in the correct place, and regen.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2552
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 4 Mar 2008 10:59:32 +0000 (10:59 +0000)]
Implement obj.hash.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2551
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 4 Mar 2008 10:58:02 +0000 (10:58 +0000)]
Remove duplicate allocation.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2550
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 4 Mar 2008 09:29:54 +0000 (09:29 +0000)]
The final piece of the double -> string puzzle.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2549
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 4 Mar 2008 08:54:53 +0000 (08:54 +0000)]
Polish CLI output
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2548
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Mon, 3 Mar 2008 17:03:53 +0000 (17:03 +0000)]
Regen for VRT_double_string()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2547
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Mon, 3 Mar 2008 17:03:05 +0000 (17:03 +0000)]
Clean up the int -> str and ip -> str conversion code, and add double -> str.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2546
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Fri, 29 Feb 2008 09:38:49 +0000 (09:38 +0000)]
Workaround: ignore uncached objects in EXP_Touch()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2544
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 26 Feb 2008 11:05:54 +0000 (11:05 +0000)]
Go over the expiry and LRU code once more:
Drop the hangman, with grace implemented we might as well just ditch
the object when the timer expires.
Use separate markers for "on LRU" and "on binheap" and document the
specific protocol for avoiding conflicts between LRU and timer processing.
Many more asserts and a couple of minor bugfixes.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2543
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 26 Feb 2008 09:23:39 +0000 (09:23 +0000)]
Fix a bug in the hangman code: conversion from object to objexp
missed a marker variable.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2542
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 26 Feb 2008 09:12:29 +0000 (09:12 +0000)]
Give the random director its own magic
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2541
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 26 Feb 2008 09:10:35 +0000 (09:10 +0000)]
Get the pthread_mutex_trylock() assert right, the error code is the
return value, and not in errno.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2540
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 25 Feb 2008 22:30:23 +0000 (22:30 +0000)]
Avoid asserting on correct errno from pthread_mutextrylock()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2539
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 25 Feb 2008 18:42:07 +0000 (18:42 +0000)]
Explicitly initialize errno to zero before mutex ops.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2538
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 20:36:33 +0000 (20:36 +0000)]
The expiry module keeps all cached objects on two data structures:
the LRU list and the binary heap. In both of these cases, operations
on one object will result in certain fields in neighbor objects in
these data structures to be updated.
In difference from cache_hash.c which examine objects related by
hash match where the existence of the hash lookup in the first place
is a predictor for their likely use, in cache_expire the neighbor
objects are totally unrelated and the fact that we update their
list pointers or binheap index in no way indicates that they will
get a cache hit any time soon.
Paging in one page for a number of objects, just to move another
object up or down the binheap or LRU list is thus not only slow,
but also increases varnish' VM footprint for no real benefit.
This commit moves the relevant housekeeping fields into a "objexp"
structure, which gets hung off the objects when they enter the cache.
The objexp structure is small (40 bytes on i386) so statistically it
is more than an order of magnitude more likely to already be in core
when we need it, compared to the object itself.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2537
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 20:03:51 +0000 (20:03 +0000)]
Make cache_expire.c pick up its own reference on the object.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2536
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:58:04 +0000 (19:58 +0000)]
Fix obj.last_use: We cannot use obj.lru_stamp, as that is only updated
when we shuffle the LRU list.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2535
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:54:44 +0000 (19:54 +0000)]
Only move objects to the tail of the LRU queue if we can get the
expiry mutex without waiting.
This is in addition to the already present "only if it have not
been moved recently" check.
This additional mutex-contestion reduction obviously might leave
the LRU list badly out of order, but this can be worked around
by examining obj.last_use in vcl_discard()
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2534
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:48:11 +0000 (19:48 +0000)]
Introduce a TRYLOCK() macro, and remove two ';' which could cause grief.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2533
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:43:57 +0000 (19:43 +0000)]
obj->lru_stamp is on TIM_real() not TIM_mono().
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2532
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:27:35 +0000 (19:27 +0000)]
Remove unused last_check member and TIM_mono() call
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2531
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:26:38 +0000 (19:26 +0000)]
Rename EXP_TTLchange() to EXP_Rearm() and move binheap check into
cache_expire.c.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2530
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Sat, 23 Feb 2008 19:15:23 +0000 (19:15 +0000)]
Dispose of VCL reference count if we drop parked sessions due to worker
pool shortages.
Fixes ticket #213
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2529
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Thu, 21 Feb 2008 21:14:57 +0000 (21:14 +0000)]
We don't need cryptographic-strength randomness here. Try /dev/urandom
first, then /dev/random, then fall back to pid and time. Using an
uninitialized stack variable as seed is just silly, and Coverity rightly
complains about it (CID#19)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2528
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Thu, 21 Feb 2008 20:55:08 +0000 (20:55 +0000)]
Dump some information about the VCL configuration if we have one.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2527
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Thu, 21 Feb 2008 20:50:16 +0000 (20:50 +0000)]
Where applicable, use SPAZ() instead of AZ().
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2526
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Thu, 21 Feb 2008 20:49:11 +0000 (20:49 +0000)]
Add SPAZ() and SPAN() macros which combine AZ() and AN() with spassert().
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2525
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Wed, 20 Feb 2008 13:39:59 +0000 (13:39 +0000)]
Typo patrol
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2521
d4fa192b -c00b-0410-8231-
f00ffab90ce4
ssm [Wed, 20 Feb 2008 12:02:07 +0000 (12:02 +0000)]
Debian packaging: Disable running of varnishlog by default
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2520
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Wed, 20 Feb 2008 10:59:25 +0000 (10:59 +0000)]
Count directors as backends.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2519
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 19 Feb 2008 12:05:41 +0000 (12:05 +0000)]
Make logging of mutex operations or just contests controlled under diag_bitmap
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2518
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 19 Feb 2008 12:00:47 +0000 (12:00 +0000)]
Oops, this should not have been deleted in my previous commit
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2517
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Tue, 19 Feb 2008 11:57:04 +0000 (11:57 +0000)]
If HSH_Lookup() returns non-NULL, assert that sp->objhead != NULL.
HSH_Lookup() is supposed to guarantee this, but it appears that it
sometimes doesn't (perhaps a bug snuck in with grace mode?)
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2516
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 19 Feb 2008 11:52:27 +0000 (11:52 +0000)]
Move the #include of heritage.h to cache.h.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2515
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Tue, 19 Feb 2008 11:10:12 +0000 (11:10 +0000)]
Revise the kqueue_acceptor with a sledgehammer.
Use EV_ONESHOT for all session events to make the kernel delete the
event when it fires, to remove any chance of any race with session
state and kqueue event arming.
For sessions with acceptfilter, this does just what we want (and I
kick myself for not realizing this much sooner).
For sessions where the acceptfilter is not enabled or has given up,
this results in an extra kevent arming operation for each read, but
this is still a much lower overhead than synchrnously deleting
the event when before passing the session on.
Delete all the workarounds and band-aids that had accumulated.
All in all, a win-win-win situation.
I have no idea how many tickets this will close.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2514
d4fa192b -c00b-0410-8231-
f00ffab90ce4
des [Mon, 18 Feb 2008 17:04:30 +0000 (17:04 +0000)]
Move the assertions around; it is apparently possible to get a null event
on a session that no longer has the fd that the event was registered on.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2513
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 12:00:19 +0000 (12:00 +0000)]
Uncapitalize DIAGNOSTICS, since diag_bitmap is not related to the
#ifdef, which we retain for really heavy duty instrumentation, should
we ever need that.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2512
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 11:54:30 +0000 (11:54 +0000)]
Move kqueue debugging under diag_bitmap control
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2511
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 11:50:39 +0000 (11:50 +0000)]
Move the workspace debugging under diag_bitmap control.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2510
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 11:47:55 +0000 (11:47 +0000)]
Move the logging of state engine states to use the diag_bitmap
instead of #ifdef DIAGNOSTICS for control.
Also reduce VSL mutex cost by 50% for the common case where we have
a worker thread: We did a WSL_Flush() followed by a VSL(), doing a
WSL() before the WSL_FLush saves one VSL mutex op.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2509
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 11:45:58 +0000 (11:45 +0000)]
Make a parameter "diag_bitflag" which can control deeper diagnostics for
us, instead of the #ifdef DIAGNOSTICS which is always not there when you
need it or there when you don't want it.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2508
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 11:04:35 +0000 (11:04 +0000)]
Kill debugging shmlogging overlooked for too long.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2507
d4fa192b -c00b-0410-8231-
f00ffab90ce4
phk [Mon, 18 Feb 2008 09:59:08 +0000 (09:59 +0000)]
Add a stats field to monitor the LRU move rate.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2506
d4fa192b -c00b-0410-8231-
f00ffab90ce4