Skip site navigation (1)Skip section navigation (2)
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>