Date: Tue, 18 Jul 2000 17:58:21 +1000 From: Tony Griffiths <tonyg@OntheNet.com.au> To: mjacob@feral.com Cc: David Greenman <dg@root.com>, Andrew Gallatin <gallatin@cs.duke.edu>, Bernd Walter <ticso@cicely8.cicely.de>, Mike Smith <msmith@freebsd.org>, freebsd-alpha@freebsd.org Subject: Re: fxp0 hangs on a PC164 using STABLE Message-ID: <39740E1D.7F2AF81D@OntheNet.com.au> References: <Pine.BSF.4.10.10007180008390.41622-100000@beppo.feral.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Jacob wrote: > > > > > I wonder - does the Alpha CPU have support for locked read-modify-write > > type operations? I'm thinking that perhaps that might be a better way to > > fix the problem. Yes... Ldx_L (Load x Locked) and Stx_C (Store x Conditional [on the lock being set]) > > Funny you should say that (see below) I'm a little unsure whether they > guarantee interlocks against I/O devices. Basically it allows you to set a > flag on an address and then later do a conditional store. If the lock is gone, > that adress was modified, and the conditional fails- so you can cycle back and > try again- kinda cool. I'm stretching my memory synapses here but I seem to remember that the actual 'lock' h/w was part of the memory subsystem and didn't really care who or what wrote to the cache block that was locked. Ie. The same or another cpu or a device DMA'ing to anywhere in the cache block would clear the 'lock' flag causing a STx_C to fail! > > >From mjacob@feral.com Tue Jul 18 00:08:29 2000 > Date: Mon, 17 Jul 2000 20:21:07 -0700 (PDT) > From: Matthew Jacob <mjacob@feral.com> > To: Andrew Gallatin <gallatin@cs.duke.edu>, Doug Rabson <dfr@nlsystems.com> > Subject: Re: fxp0 hangs on a PC164 using STABLE > > I'm a little uneasy about this. It's likely to make the FXP unhappy, to say > the least. If you *do* use this, put memory barriers in before and after > the the flag update. > > Doug, Drew- I'm not sure whether LDL_L/STL_C and LDQ_L/STQ_C are cognizant of > I/O device accesses to memory or not- my green book sayeth not. It's possible > not. It'd be preferrable, IMO, to write 5 lines of inline assembly code that > use the load_locked && store_locked_conditional rather than hit the FXP over > the head. Anybody else know? Or should we go ask Chris/Jason/Ross (I'm sure > Ross'd know)? > > -matt > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-alpha" in the body of the message > > ***************************************************************** > This email has been checked by the e-Sweeper Service > ***************************************************************** ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify postmaster@OntheNet.com.au This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. ********************************************************************** To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39740E1D.7F2AF81D>