_IO_IS_ISA question

linas at austin.ibm.com linas at austin.ibm.com
Fri Mar 26 04:15:50 EST 2004


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.

Jake mentioned that exceptions are generated, but implied that the
kernel tried to page-fault these in;  my biggest concern was to figure
out how to elegantly pass these to the ex_table lookup table instead.

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 ...

--linas

p.s. isync? I can't imagine why isync would have anything to do with io ...


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





More information about the Linuxppc64-dev mailing list