_IO_IS_ISA question

linas at austin.ibm.com linas at austin.ibm.com
Fri Mar 26 04:24:47 EST 2004


On Thu, Mar 25, 2004 at 11:15:50AM -0600, linas at austin.ibm.com wrote:
>
> On Thu, Mar 25, 2004 at 10:34:18AM +1100, Benjamin Herrenschmidt wrote:
> >
> > > > Paul, Ben and I were discussing it, and it would seem we can use the
> > > > existing exception stuff (aka get_user etc). This would remove all the
> > > > ISA_* checks we currently have and not require the added complexity that
> > > > this patch introduces.
> > >
> > > Ohh, yes, I like that, much better idea.  I'm guessing a little bit
> > > how one might do that;  I'm thinking a new 'copy_to_io' type function
> > > with the isa_port<0x10000 check in the ex_table code?  I'm somewhat
> > > confused, since bad_page_fault usually runs at the end, not at the start
> > > of the exception handling.
> >
> > Look what ppc32 does
>
> Hmmm. include/asm-ppc/io.h   ... twi ... isync ...
>
> I hope that we can do something that doesn't require either twi or isync,
> or sync for that matter, as the cure seems worse than the disease.
> I was assuming (and still kinda hoping) that a load/store to a bad
> ISA address would generate an exception that is synchronous with
> the load/store.

I take that all back, my comments are nonsense.  I just actually read
the page for isync.  Duhh.  I thought it did something completely different.

> By 'cure worse than disease' I mean:  performance-wise, Jake's
> if-test ((port<10000) && maskbits) (and the half dozen insns that this
> genarates) sounds to be faster than sync, or so I would think ...

Well, I suppose that's still a concern;   how many cycles delay for
io-to-valid-addr+isync on power3/4/5 ?

--linas

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/





More information about the Linuxppc64-dev mailing list