From owner-cvs-src@FreeBSD.ORG Thu Oct 16 04:17:44 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 326A216A4B3; Thu, 16 Oct 2003 04:17:44 -0700 (PDT) Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id 01E5943FCB; Thu, 16 Oct 2003 04:17:42 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from gamplex.bde.org (katana.zip.com.au [61.8.7.246]) by mailman.zeta.org.au (8.9.3p2/8.8.7) with ESMTP id VAA09380; Thu, 16 Oct 2003 21:17:39 +1000 Date: Thu, 16 Oct 2003 21:16:17 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Doug Rabson In-Reply-To: <200310160916.h9G9GSqQ067982@repoman.freebsd.org> Message-ID: <20031016210328.T930@gamplex.bde.org> References: <200310160916.h9G9GSqQ067982@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/sys bus.h kobj.h param.h src/sys/kern subr_bus.c subr_kobj.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Oct 2003 11:17:44 -0000 On Thu, 16 Oct 2003, Doug Rabson wrote: > dfr 2003/10/16 02:16:28 PDT > > FreeBSD src repository > > Modified files: > sys/sys bus.h kobj.h param.h > sys/kern subr_bus.c subr_kobj.c > Log: > * Add multiple inheritance to kobj. Each class can have zero or more base > ... > * Change the kobj method lookup algorithm to one which is SMP-safe. This > relies only on the constraint that an observer of a sequence of writes > of pointer-sized values will see exactly one of those values, not a > mixture of two or more values. This assumption holds for all processors > which FreeBSD supports. This assumption should be avoided by using atomic_load() (and atomic_store_mumble()). See a discussion of "atomicity of unlocked reads" last month. First implement atomic_load(). There is currently only atomic_load_acq_(). "acq" gives acquire semantics which is more than what is needed here and our implementations may do more than what is required anyway for some arches. "" is part of a bad API. Bruce