development efforts on the Solaris side.

Poul-Henning Kamp phk at phk.freebsd.dk
Wed Jan 9 10:40:12 CET 2008


In message <E01C67F9-72C5-49C4-81DC-61410014E6E1 at omniti.com>, Theo Schlossnagle
 writes:

>> Can you mail me a link to the patch ?
>
>http://lethargy.org/~jesus/misc/varnish-solaris-trunk-2328.diff

Ok, various comments:

The autoconf stuff and the #inclusion of "varnish_config.h" all over
the place you will have to negotiate with DES, I only do C code.

lib/libvarnish/time.c:

	I don't like #ifdefs like that in the middle of functions.
	The appropriate way is to add a compat function in
	libvarnishcompat.

flock/fcntl-locks you're already talking with DES about.

curses:
	What exactly is the semantics of KEY_RESIZE ?

mgt_vcc.c:
	The suffix shouldn't matter to dlopen(), please explain ?
	White-space and {} spam.
	Adding the c-compiler command to the error message is bound
	to make it overflow the linewidth.

VCL_WaitForActive()
	Need to look at that in more detail.  I deliberately tried
	to limit varnish to only use mutexes for locking, so introducing
	semaphores just for this seems somewhat silly.

storage_umem.c
	I'm not sure I see much point in this.  The main advantage of
	umem is SMP localized storage management, and the Varnish
	objects are exactly not local to any one CPU.
	Benchmarks could possibly convince me otherwise.

#include <err.h>
	This may be a portability issue where the easiest way to fix
	is to avoid it.

sendfile():
	Does the solaris sendfile guarantee that storage is no longer
	touched when it returns ?  Otherwise it's as little use as
	the FreeBSD and Linux versions.

/* pick a stevedore and bump the head along */
/* XXX: only safe as long as pointer writes are atomic */
+/* jesus: dear god, are you crazy? */
stv = stevedores = stevedores->next;

	God to Jesus:  No I'm not.

-/* Note: intentionally not IOV_MAX */
+#ifdef IOV_MAX
+#define MAX_IOVS	IOV_MAX
+#else
 #define MAX_IOVS	(HTTP_HDR_MAX * 2)
+#endif

	Which bit of "intentionally" didn't you understand ?
	Have you examined the value of IOV_MAX, looked at where
	this is used and measured the impact ?

cache_acceptor.c
	Under no circumstances should #ifdef HAVE_PORT_CREATE be
	necessary here.  If a new method is necessary for the
	acceptors, so be it.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.



More information about the varnish-dev mailing list