linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* hoo boy, interrupt Handling on BGQ
@ 2012-11-12 21:33 Jimi Xenidis
  2012-11-12 22:19 ` Benjamin Herrenschmidt
  2012-11-15  6:50 ` Segher Boessenkool
  0 siblings, 2 replies; 3+ messages in thread
From: Jimi Xenidis @ 2012-11-12 21:33 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: Kumar Gala, linuxppc-dev

So interrupts need to go to FW before Linux, please let not talk about =
how silly that is.
Lets talk about something far more silly...
In order to get to the Linux exception handlers, we have to tell FW =
where the interrupt page is, and then it _copies_ it.

IFAICT, this means that each vectors on the "copied" page must:
1) construct an 64-bit absolute address to a per vector stub
2) leap at the (with bctr or blr)
3) restore CTR or LR and anything else that (1) messed up
4) normal branch to the actual vector

This is what I'll be working on, but I'd love to hear any other ideas.
-jx

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: hoo boy, interrupt Handling on BGQ
  2012-11-12 21:33 hoo boy, interrupt Handling on BGQ Jimi Xenidis
@ 2012-11-12 22:19 ` Benjamin Herrenschmidt
  2012-11-15  6:50 ` Segher Boessenkool
  1 sibling, 0 replies; 3+ messages in thread
From: Benjamin Herrenschmidt @ 2012-11-12 22:19 UTC (permalink / raw)
  To: Jimi Xenidis; +Cc: Kumar Gala, linuxppc-dev

On Mon, 2012-11-12 at 15:33 -0600, Jimi Xenidis wrote:
> So interrupts need to go to FW before Linux, please let not talk about how silly that is.
> Lets talk about something far more silly...
> In order to get to the Linux exception handlers, we have to tell FW where the interrupt page is, and then it _copies_ it.
> 
> IFAICT, this means that each vectors on the "copied" page must:
> 1) construct an 64-bit absolute address to a per vector stub
> 2) leap at the (with bctr or blr)
> 3) restore CTR or LR and anything else that (1) messed up
> 4) normal branch to the actual vector
> 
> This is what I'll be working on, but I'd love to hear any other ideas.

Replace the firmware with something sane ?

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: hoo boy, interrupt Handling on BGQ
  2012-11-12 21:33 hoo boy, interrupt Handling on BGQ Jimi Xenidis
  2012-11-12 22:19 ` Benjamin Herrenschmidt
@ 2012-11-15  6:50 ` Segher Boessenkool
  1 sibling, 0 replies; 3+ messages in thread
From: Segher Boessenkool @ 2012-11-15  6:50 UTC (permalink / raw)
  To: Jimi Xenidis; +Cc: Kumar Gala, linuxppc-dev

> So interrupts need to go to FW before Linux, please let not talk  
> about how silly that is.
> Lets talk about something far more silly...
> In order to get to the Linux exception handlers, we have to tell FW  
> where the interrupt page is, and then it _copies_ it.
>
> IFAICT, this means that each vectors on the "copied" page must:
> 1) construct an 64-bit absolute address to a per vector stub
> 2) leap at the (with bctr or blr)
> 3) restore CTR or LR and anything else that (1) messed up
> 4) normal branch to the actual vector
>
> This is what I'll be working on, but I'd love to hear any other ideas.

If you Linux exception handlers are at low (or high) real addresses, as
usual, you can just "ba" to them?


Segher

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-11-15  6:51 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-12 21:33 hoo boy, interrupt Handling on BGQ Jimi Xenidis
2012-11-12 22:19 ` Benjamin Herrenschmidt
2012-11-15  6:50 ` Segher Boessenkool

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).