sockstat: struct xtcpcb size mismatch

Robert Watson rwatson at FreeBSD.org
Mon Dec 10 09:19:52 PST 2007


On Mon, 10 Dec 2007, Boris Samorodov wrote:

> On Sat, 8 Dec 2007 17:13:14 -0500 Josh Carroll wrote:
>
>>> Thanks for the answer. And sorry, I can't understand what to do further. 
>>> Is it by design and should stay so or should it be fixed?
>>>
>>> BTW, RELENG_7 behaves the same way. And "netstat -a" is broken:
>
>> Your world and kernel are out of sync. I would recommend a 
>> buildworld/installworld and building a new kernel. That should do the 
>> trick.
>
> I wish you were right.
>
> Fresh cvsup to RELENG_7, buildworld (after make clean twice), make kernel, 
> install world, mergemaster. The kernel config (diff from GENERIC shown 
> later) doesn't work. If "options LOCK_PROFILING" is removed and the kernel 
> is rebuilt, all goes well. The bad case:

This is currently an accepted failure mode -- lock profiling significantly 
swells the overhead of various data structures and operations, so is not 
compiled in by default, and when compiled in, does modify the ABI for the 
monitoring interfaces.  You may be able to "fix" the user tools to match the 
kernel ABI by recompiling them but adding -DLOCK_PROFILING (or something along 
these lines).  It turns out that the interfaces that export TCP information 
directly export kernel data structures to user space -- this was presumably 
easy at the time for whoever did the work, but is a Bad Idea.  I've looked at 
fixing this before, but it's quite involved.  I hope that we will fix it for 
8.0.

Robert N M Watson
Computer Laboratory
University of Cambridge


More information about the freebsd-current mailing list