On 04/02/2013 04:28:10 AM, Jia Hongtao-B38951 wrote:
> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Saturday, March 30, 2013 12:34 AM
> To: Jia Hongtao-B38951
> Cc: Wood Scott-B07421; David Laight; linuxppc-dev@lists.ozlabs.org;
> Stuart Yoder
> Subject: Re: [PATCH V4] powerpc/85xx: Add machine check handler to
fix
> PCIe erratum on mpc85xx
>
> On 03/29/2013 03:03:51 AM, Jia Hongtao-B38951 wrote:
> > BTW, I'm still not sure how to deal with LD instruction with
update.
>
> You would need to do the update yourself. Or just say that's a
case you
> don't handle, and return 0.
>
> Again, please check for the size of the load operation.
>
> -Scott
For informing error to the process that hold the stall instruction
we need to do:
1. Verify the instruction is load.
2. Fill the rd register with ~0UL.
3. Deal with the load instruction with update.
Here is the problems:
1. So many load instructions to handle. There are dozens of load
instructions
and most of them with different op code. Like:
If you don't want to handle all of them, then don't, but in case you
run into an instruction you don't handle, don't skip it -- just let the
normal machine check handler run.
lbz: 1 0 0 0 1 0
lhz: 1 0 1 0 0 0
lwz: 1 0 0 0 0 0
ld : 1 1 1 0 1 0
...
Is there any available API for verifying the load instruction?
I don't know of anything in terms of an *API*... after all, you're not
just "verifying" it, you're extracting information to determine how to
emulate the instruction.
As for code you could borrow from, there's KVM emulation and probably
other places.
2. For different size of load operation could we just fill the rd
register with
~0UL?
Who knows in what ways the compiler is making assumptions about the
upper bits being zero after an lbz, etc...
3. A load instruction with update could not just verified by op code.
I'd like
to leave it along. I think we could not fix but just inform the
error by
filling the rd with ~0UL. Could you explain why should we care
about the update?
If you're emulating the instruction, you need to handle all of that
instruction's effects. If you're not going to emulate the instruction,
don't skip it.
-Scott
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev