_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