Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jul 2002 11:49:46 -0400 (EDT)
From:      David Miller <dmiller@sparks.net>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: setsockopt() weirdness
Message-ID:  <Pine.BSF.4.21.0207141116090.13872-100000@search.sparks.net>
In-Reply-To: <20020714075706.A74633@iguana.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 14 Jul 2002, Luigi Rizzo wrote:

> On Sun, Jul 14, 2002 at 10:49:56AM -0400, David Miller wrote:
> > I'm probably doing something basic wrong, but I'm getting a very
> > inconsistent response when using setsockopt to set the SO_RCVTIMEO to
> > seven seconds or more.
> 
> i would suspect some overflow of 16-bit fields used to store
> the timeout value (scaled by HZ) .
> What value of "HZ" are you using ? And what is the exact threshold
> where it fails (i'd bet it is between 6.5 and 6.6 sec.) ?

I haven't tried to pin it down exactly.  I can, if that would be happy to
anyone else.

HZ is set to 5000; the machine is intended to process several tens of
thousands of very small packets per second, and interrupt processing was a
big problem.

Since receiving your message I recompiled the kernel with HZ=1000 and the
problem occurs with 32 seconds working and 33 not, so I'm sure you're
right with the bet of 6.5 and 6.6 seconds.

Does this mean that if one left HZ alone at 100 that you could only set it
for 320 seconds?  There's no warning of this in the manpage for
setsockopt; I naturally assumed that one could set an unsigned long delay
and that it would work.  Is this a bug, or just a feature I'm looking at
sideways?

On a different note, how could I have discovered this without asking the
hackers list?

Thanks, and thanks for your help luigi!

--- David


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0207141116090.13872-100000>