__cli on 4xx - MSR:CE?

7 messages, 4 authors, 2002-08-01 · open the first message on its own page

__cli on 4xx - MSR:CE?

From: Hollis Blanchard <hidden>
Date: 2002-07-30 18:46:54

Shouldn't __cli on 4xx disable the MSR CE bit as well as EE?

-Hollis


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

Re: __cli on 4xx - MSR:CE?

From: akuster <hidden>
Date: 2002-07-30 19:30:51

Hollis Blanchard wrote:
Shouldn't __cli on 4xx disable the MSR CE bit as well as EE?

-Hollis




It should.  Critical interrupts are currently not enabled in the kernel

armin


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

Re: __cli on 4xx - MSR:CE?

From: David Gibson <hidden>
Date: 2002-07-31 00:52:44

On Tue, Jul 30, 2002 at 12:30:51PM -0700, akuster wrote:
Hollis Blanchard wrote:
quoted
Shouldn't __cli on 4xx disable the MSR CE bit as well as EE?

-Hollis
It should.  Critical interrupts are currently not enabled in the kernel

armin
No, that isn't clear.

As Armin says, (external) critical interrupts are not supported at the
moment in the 4xx kernel, so at the moment this is irrelevant.

However if someone ever did implement the use of critical external
interrupts on a board, this would surely be because interrupts from
the relevant hardwware are, well, critical, and require extremely low
latency processing.  It therefore seems sensible that such routines
should run even when normal interrupts are disabled.  Obvioulsy the
critical interrupt handlers would have to be written very carefully to
avoid interfering with interrupted code.

If critical interrupts are disabled everywhere that normal interrupts
are disabled, there seems little point in having them.

I believe the interrupt handling code (head_4xx.S and entry.S) in 2.5
should be able to cope with critical external interrupts.  When
transferring to a critical interrupt handler critical interrupts will
remain disabled until the handler has completed.

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

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

Re: __cli on 4xx - MSR:CE?

From: David Blythe <hidden>
Date: 2002-07-31 01:11:57

Exactly.  I hacked something up (badly) to use the watchdog critical
interrupt as a low-overhead interrupt for kernel profiling including
profiling normal interrupt routines.  It would take a lot of mucking
around to support critical interrupts well, but it would be nice support
to have and should be independent of regular interrupts.  When you say
2.5 should handle it, are you suggesting someone should make it so or
asserting that it already does?

	david

David Gibson wrote:
On Tue, Jul 30, 2002 at 12:30:51PM -0700, akuster wrote:
quoted
Hollis Blanchard wrote:
quoted
Shouldn't __cli on 4xx disable the MSR CE bit as well as EE?

-Hollis
It should.  Critical interrupts are currently not enabled in the kernel

armin
No, that isn't clear.

As Armin says, (external) critical interrupts are not supported at the
moment in the 4xx kernel, so at the moment this is irrelevant.

However if someone ever did implement the use of critical external
interrupts on a board, this would surely be because interrupts from
the relevant hardwware are, well, critical, and require extremely low
latency processing.  It therefore seems sensible that such routines
should run even when normal interrupts are disabled.  Obvioulsy the
critical interrupt handlers would have to be written very carefully to
avoid interfering with interrupted code.

If critical interrupts are disabled everywhere that normal interrupts
are disabled, there seems little point in having them.

I believe the interrupt handling code (head_4xx.S and entry.S) in 2.5
should be able to cope with critical external interrupts.  When
transferring to a critical interrupt handler critical interrupts will
remain disabled until the handler has completed.

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson




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

Re: __cli on 4xx - MSR:CE?

From: David Gibson <hidden>
Date: 2002-07-31 01:27:28

On Tue, Jul 30, 2002 at 06:11:57PM -0700, David Blythe wrote:
Exactly.  I hacked something up (badly) to use the watchdog critical
interrupt as a low-overhead interrupt for kernel profiling including
profiling normal interrupt routines.  It would take a lot of mucking
around to support critical interrupts well, but it would be nice support
to have and should be independent of regular interrupts.  When you say
2.5 should handle it, are you suggesting someone should make it so or
asserting that it already does?
I'm asserting that the basic support is already there.  It is untested
though, and so probably buggy.
David Gibson wrote:
quoted
On Tue, Jul 30, 2002 at 12:30:51PM -0700, akuster wrote:
quoted
Hollis Blanchard wrote:
quoted
Shouldn't __cli on 4xx disable the MSR CE bit as well as EE?

-Hollis
It should.  Critical interrupts are currently not enabled in the kernel

armin
No, that isn't clear.

As Armin says, (external) critical interrupts are not supported at the
moment in the 4xx kernel, so at the moment this is irrelevant.

However if someone ever did implement the use of critical external
interrupts on a board, this would surely be because interrupts from
the relevant hardwware are, well, critical, and require extremely low
latency processing.  It therefore seems sensible that such routines
should run even when normal interrupts are disabled.  Obvioulsy the
critical interrupt handlers would have to be written very carefully to
avoid interfering with interrupted code.

If critical interrupts are disabled everywhere that normal interrupts
are disabled, there seems little point in having them.

I believe the interrupt handling code (head_4xx.S and entry.S) in 2.5
should be able to cope with critical external interrupts.  When
transferring to a critical interrupt handler critical interrupts will
remain disabled until the handler has completed.

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

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

Re: __cli on 4xx - MSR:CE?

From: Hollis Blanchard <hidden>
Date: 2002-07-31 15:49:02

On Tue, 2002-07-30 at 19:52, David Gibson wrote:
If critical interrupts are disabled everywhere that normal interrupts
are disabled, there seems little point in having them.
Sure, I understand that. Will there then be a "__crit_cli" for when you
really don't want exceptions of any kind? And __save_and_crit_cli ?

-Hollis


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

Re: __cli on 4xx - MSR:CE?

From: David Gibson <hidden>
Date: 2002-08-01 00:14:00

On Wed, Jul 31, 2002 at 10:49:02AM -0500, Hollis Blanchard wrote:
On Tue, 2002-07-30 at 19:52, David Gibson wrote:
quoted
If critical interrupts are disabled everywhere that normal interrupts
are disabled, there seems little point in having them.
Sure, I understand that. Will there then be a "__crit_cli" for when you
really don't want exceptions of any kind? And __save_and_crit_cli ?
I think that has to be up to whoever first implements a real system
with critical interrupts.

--
David Gibson			| For every complex problem there is a
david@gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.
http://www.ozlabs.org/people/dgibson

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help