From owner-freebsd-commit Sat Jul 15 06:35:01 1995 Return-Path: commit-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id GAA23906 for commit-outgoing; Sat, 15 Jul 1995 06:35:01 -0700 Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id GAA23887 for cvs-sys-outgoing; Sat, 15 Jul 1995 06:34:56 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id GAA23853 ; Sat, 15 Jul 1995 06:34:28 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id XAA22323; Sat, 15 Jul 1995 23:33:49 +1000 Date: Sat, 15 Jul 1995 23:33:49 +1000 From: Bruce Evans Message-Id: <199507151333.XAA22323@godzilla.zeta.org.au> To: davidg@freefall.cdrom.com, roberto@keltia.frmug.fr.net Subject: Re: cvs commit: src/sys/vm device_pager.c device_pager.h kern_lock.c lock.h swap_pager.c swap_pager.h vm.h vm_extern.h vm_fault.c vmOR Cc: CVS-commiters@freefall.cdrom.com, cvs-sys@freefall.cdrom.com Sender: commit-owner@FreeBSD.org Precedence: bulk >> NOTE: libkvm, w, ps, 'top', and any other utility which depends on struct >> proc or any VM system structure will have to be rebuilt!!! >You can add gdb to the list, I learned it today :-) And libkvm.so.2.0. It uses a nice sysctl() so that it can read the proc table independently of its structure or contents, and a nasty division by sizeof(struct kinfo_proc) just to find the number of processes. This size has decreased from 620 (?) to 592 from removing 3 * 4 bytes of padding from struct proc and the remaining bytes from some change in nested vm structure(s) (removing simple locks?). Incrementing the major version of libkvm won't really fix this problem. Old libraries just won't work with new kernels when the interface changes significantly. The change in libkvm probably need not be significant (there should be more sysctls or libkvm should use more). It's interesting that the libkvm.so.2.0 on the 2.0R cdrom still works with kernels from just before the vm changes. The padding in struct proc became useless when the vm structures were changed, but perhaps it should be restored together with some vm padding so that the changes aren't visible in applications. Bruce