From owner-freebsd-arch@FreeBSD.ORG Mon Sep 22 12:46:59 2003 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4736216A4B3 for ; Mon, 22 Sep 2003 12:46:59 -0700 (PDT) Received: from magic.adaptec.com (magic-mail.adaptec.com [216.52.22.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7080D43FFD for ; Mon, 22 Sep 2003 12:46:56 -0700 (PDT) (envelope-from gibbs@scsiguy.com) Received: from redfish.adaptec.com (redfish.adaptec.com [162.62.50.11]) by magic.adaptec.com (8.11.6/8.11.6) with ESMTP id h8MJkuR28469; Mon, 22 Sep 2003 12:46:56 -0700 Received: from [10.100.253.70] (aslan.btc.adaptec.com [10.100.253.70]) by redfish.adaptec.com (8.8.8p2+Sun/8.8.8) with ESMTP id MAA26589; Mon, 22 Sep 2003 12:46:55 -0700 (PDT) Date: Mon, 22 Sep 2003 13:50:06 -0600 From: "Justin T. Gibbs" To: Doug Rabson , arch@freebsd.org Message-ID: <1423490000.1064260204@aslan.btc.adaptec.com> In-Reply-To: <1064221837.15078.14.camel@herring.nlsystems.com> References: <1064221837.15078.14.camel@herring.nlsystems.com> X-Mailer: Mulberry/3.1.0b6 (Linux/x86) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline Subject: Re: kobj multiple inheritance X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Justin T. Gibbs" List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2003 19:46:59 -0000 > I believe that I have the kobj multiple inheritance changes about ready > for committing now. I have locked up the class handling in kobj and I've > re-done the method dispatch so that it is MP-safe without needing locks > (I would appreciate a close look at that part by another pair of eyes). I've only just glanced at these patches, but I don't see how the method cache is now MP safe. Aren't you still vulnerable to a cache collision from two different threads performing an operation on the same class? I still believe that the concept of inherited interfaces is better way to achieve multiple inheritance. The methods I may want to inherit need not be associated with what we currently call a device class. The nice thing about your approach is that it doesn't require a massive rototilling of the drivers, but I fear it doesn't go far enough toward providing flexible inheritence. -- Justin