Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Config7.WII and IPI mechanism in SMTC linux
@ 2008-07-31  6:41 Chung-Chi Lo
  2008-08-07  4:58 ` Kevin D. Kissell
  0 siblings, 1 reply; 2+ messages in thread
From: Chung-Chi Lo @ 2008-07-31  6:41 UTC (permalink / raw)
  To: linux-mips

Hello,

My platform is MIPS 34K cpu core and Config7.WII=1.

If Config7.WII=1 and a TC is idle, the TC will execute "wait"
instruction with TCSTATUS.IXMT=1
to disable interrupt.

But in 34K, interrupts are not TC-specific. So some TCs will not get
real interrupts to break "wait"
instruction. Even in SMTC's IPI mechanism, the IPI mechanism is to
program TCRestart if target
TC is in the same VPE.

In function smtc_send_ipi, it detects if TC's interrupt is disabled,
then enqueue IPI message to
target TC's queue. So some TCs are always idle and cannot break "wait"
instruction. I don't know
if I miss something and please comment on this problem. Thanks.

                if ((tcstatus & TCSTATUS_IXMT) != 0) {
                        /*
                         * Spin-waiting here can deadlock,
                         * so we queue the message for the target TC.
                         */
                        write_tc_c0_tchalt(0);
                        UNLOCK_CORE_PRA();
                        .....
                        smtc_ipi_nq(&IPIQ[cpu], pipi);
                }

--
Lino, Chung-Chi Lo

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

end of thread, other threads:[~2008-08-07  4:59 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-31  6:41 Config7.WII and IPI mechanism in SMTC linux Chung-Chi Lo
2008-08-07  4:58 ` Kevin D. Kissell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox