Date: Mon, 10 Dec 2007 14:43:53 -0500 From: Skip Ford <skip@menantico.com> To: Boris Samorodov <bsam@ipt.ru> Cc: freebsd-stable@FreeBSD.org Subject: Re: RELENG_7: GENERIC and options LOCK_PROFILING are breaking sockstat and netstat -a Message-ID: <20071210194353.GB1117@menantico.com> In-Reply-To: <74426321@bb.ipt.ru> References: <86910657@bb.ipt.ru> <20071210112201.GA1117@menantico.com> <74426321@bb.ipt.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Boris Samorodov wrote: > On Mon, 10 Dec 2007 06:22:01 -0500 Skip Ford wrote: > > Boris Samorodov wrote: > > > The system updated a couple of hours ago (RELENG_7), the kernel config > > > is GENERIC with "options LOCK_PROFILING", default /etc/make.conf, i386 > > > (I have this problem at current-amd64 as well): > > > ----- > > > bb% uname -a > > > FreeBSD bb.ipt.ru 7.0-BETA4 FreeBSD 7.0-BETA4 #1: Mon Dec 10 10:12:24 MSK 2007 root@bb.ipt.ru:/usr/obj/usr/src/sys/GENERIC i386 > > > bb% sockstat > > > sockstat: struct xtcpcb size mismatch > > > sockstat: struct xinpcb size mismatch > > > sockstat: struct xunpcb size mismatch > > > sockstat: struct xunpcb size mismatch > > > USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS > > > bb% netstat -a | head > > > Active UNIX domain sockets > > > Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr > > > 0 #0 131073 0 ca5c6580 0 0 0 > > > 0 #0 1 0 0 d36bda90 0 0 > > > 0 #0 1 0 0 d2e11750 0 0 > > > 0 #0 1 0 0 d36bdd00 0 0 > > > 0 #0 1 0 0 d2e120d0 0 0 > > > 0 #0 1 0 0 d2e128f0 0 0 > > > 0 #0 1 0 0 d2e12820 0 0 > > > 0 #0 262145 0 0 d2e12a90 0 0 > > > > That error occurs when your kernel and world are out of sync. You need to > > rebuild netstat(1) and sockstat(1) with LOCK_PROFILING defined to match your > > kernel, or rebuild your kernel without the option LOCK_PROFILING to match > > your world. > > Ah, that's it! The world is also affected by this option. It's not > clear from LOCK_PROFILING(9): > ----- > NOTES > The LOCK_PROFILING option increases the size of struct lock_object, so a > kernel built with that option will not work with modules built without > it. > ----- > > I've read it as if only kernel (i.e. modules) should be at sync... I think the reason it doesn't go into detail about userland tools is because a LOCK_PROFILING kernel is expected to be booted and run for very brief periods of time to test, and during that testing sockstat(1) and netstat(1) probably aren't needed. So, the man page just assumes one will have broken userland utilities while the ABI is temporarily broken. -- Skip
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071210194353.GB1117>