From owner-cvs-all Mon May 10 1:23: 7 1999 Delivered-To: cvs-all@freebsd.org Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.26.10.9]) by hub.freebsd.org (Postfix) with ESMTP id D90F1156FA; Mon, 10 May 1999 01:18:29 -0700 (PDT) (envelope-from bde@godzilla.zeta.org.au) Received: (from bde@localhost) by godzilla.zeta.org.au (8.8.7/8.8.7) id SAA28334; Mon, 10 May 1999 18:18:27 +1000 Date: Mon, 10 May 1999 18:18:27 +1000 From: Bruce Evans Message-Id: <199905100818.SAA28334@godzilla.zeta.org.au> To: bde@zeta.org.au, imp@harmony.village.org Subject: Re: cvs commit: src/usr.bin/vmstat vmstat.c Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk >: But it is still supposed to be a simple list (it doesn't even use the >: queue macros). > >All I know is that the last element of the list points to the first on >all the machines I tried it on. I don't know why that is, but I did >fix things so that at least the numbers are right... Simple lists can only be circular if they are corrupted. The corruption is caused by not handling the head of the list specially. Here the sysinit in builds the list correctly, with M_ISADEV at the tail of the list. The first malloc(M_ISADEV, ...) then circularises the list. More serious corruption may occur later when malloc types are uninited on module unload. I fixed this by abusing ks_limit as an on-the-list flag. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message