Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Jul 2001 12:47:27 -0700 (PDT)
From:      Matthew Jacob <mjacob@feral.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        <smp@FreeBSD.org>
Subject:   cvs commit: src/sys/dev/isp isp_freebsd.c [ Giant ]
Message-ID:  <20010705124154.B37950-100000@wonky.feral.com>
In-Reply-To: <XFMail.010705123748.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[ moving to smp, which the other discussion should done as well ]


On Thu, 5 Jul 2001, John Baldwin wrote:

>
> On 05-Jul-01 Matt Jacob wrote:
> > mjacob      2001/07/05 10:14:57 PDT
> >
> >   Modified files:
> >     sys/dev/isp          isp_freebsd.c
> >   Log:
> >   Things have become cinched down more tightly about assertions for Giant.
> >   This uncovered some missing spots where I trade off between isp's lock
> >   and Giant as I enter CAM.
>
> I would prefer that you just leave Giant held rather than releasing it until
> all the code "under" the unlock/lock pair doesn't need Giant at all.

I don't enter with Giant held. This is a driver marked 'safe' and has
it's own lock. It needs to transition from CAM's lock (which is Giant
now) to its own on entry from CAM and swap back on return. It needs to
transition from it's own lock to CAM's lock when it calls CAM from
interrupt context.

There are reasons why I'm doing this now rather than later- the most
important of which is that it keeps you honest. Anothre reason for doing
this is that lacking as yet any real design for locking within CAM, at
least identifying all of the handoff places Is A Good Thing (tm).

The APIs and the definitions of how SMP is supposed to work in FreeBSD
are there. You'll have to have a really damned good reason to convince
me that I should *not* use them if they're there.


-matt



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010705124154.B37950-100000>