Re: netstat wierdness?

From: Robert Watson <rwatson_at_FreeBSD.org>
Date: Wed, 14 Mar 2007 15:48:54 +0100 (BST)
On Tue, 13 Mar 2007, Julian Elischer wrote:

> Dag-Erling Smørgrav wrote:
>> Julian Elischer <julian_at_elischer.org> writes:
>>> answering myself.. comes from having options LOCK_PROFILING in my kernel. 
>>> adding the same to /etc/make.conf and recompiling netstat and libkvm 
>>> helped. (not sure if both are needed)
>> 
>> This is very bad.  LOCK_PROFILING should have no visible effect on 
>> userland.  That is precisely what xinpcb, xunpcb, xtcpcb etc. are for: to 
>> isolate userland from kernel structures.  They should not contain any locks 
>> or anything else which would be affected by LOCK_PROFILING or other kernel 
>> options.
>
> sockstat actually told me that all those were the wrong size, so apparently 
> they change size too.(!?)
>
> I haven't gone to look at their definition yet, but as you say, it sounds 
> like something was done wrong.

The x* structures in netinet are not correctly implemented, and do incorporate 
kernel data structures.  I've been meaning to fix that for ages, but haven't 
had time.  In the mean time, we should continue to avoid having the size of 
kernel data structures vary with kernel options.  This is also important so 
that you can use /dev/kmem on core dumps, etc, so while fixing the x* 
structures for netinet is important, it doesn't eliminate the need to avoid 
variable data structure sizes.

Robert N M Watson
Computer Laboratory
University of Cambridge
Received on Wed Mar 14 2007 - 13:48:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC