From: "machael thailer" <dony.he@huawei.com>
To: "Ralf Baechle" <ralf@oss.sgi.com>
Cc: <linux-mips@oss.sgi.com>
Subject: questions about some bits of STATUS register and exception priority...
Date: Tue, 21 Aug 2001 09:34:00 +0800 [thread overview]
Message-ID: <001901c129e1$5aaaadc0$8021690a@huawei.com> (raw)
In-Reply-To: 20010820230755.A11242@dea.linux-mips.net
hello:
I am confused about CU0 and UM(ERL EXL) bit of STATUS register.
The user manual says that " CP0 is always usable when in Kernel mode,
regardless of the setting of CU0 bit". Does it mean that when in Kernel mode
, the CU0 bit is always 1 and in User mode, the CU0 bit is 0? If the CU0 is
0, can we be sure that it is in User mode?
If a user program is running in User mode, an interrupt happens at this
time(or an error occurs), then it will switch to Kernel mode to run the
interrupt handler(or the error exception handler). We know that the EXL(or
ERL) bit of Status register will be set to 1 by hardware. What about the UM
bit of Status? Does it remain unchangeable or change to 1 too? The user
manual doesn't say anything about it.
Another question about exception priority:
In entry.S, some exception handlers enables global interrupt bit(IE) but
others disables it.
Also syscall exception handler enables global interrupt bit(IE). Since the
interrupt priority is lowest,If an interrupt happens in a syscall exception
handler, will it pause the syscall exception handler and run the interrupt
handler? If not, why it enable the IE bit(STI) in the syscall exception
handler??
If two interrupts happens at the same time, how can we decide the larger
priority interrupt and run its ISR?
Thank you very much.
machael thailer
WARNING: multiple messages have this Message-ID (diff)
From: "machael thailer" <dony.he@huawei.com>
To: Ralf Baechle <ralf@oss.sgi.com>
Cc: linux-mips@oss.sgi.com
Subject: questions about some bits of STATUS register and exception priority...
Date: Tue, 21 Aug 2001 09:34:00 +0800 [thread overview]
Message-ID: <001901c129e1$5aaaadc0$8021690a@huawei.com> (raw)
Message-ID: <20010821013400.KY3JjUKWivE-rFPYu_Ggt0xdP1G9T28M_aSztJBcbfA@z> (raw)
In-Reply-To: 20010820230755.A11242@dea.linux-mips.net
hello:
I am confused about CU0 and UM(ERL EXL) bit of STATUS register.
The user manual says that " CP0 is always usable when in Kernel mode,
regardless of the setting of CU0 bit". Does it mean that when in Kernel mode
, the CU0 bit is always 1 and in User mode, the CU0 bit is 0? If the CU0 is
0, can we be sure that it is in User mode?
If a user program is running in User mode, an interrupt happens at this
time(or an error occurs), then it will switch to Kernel mode to run the
interrupt handler(or the error exception handler). We know that the EXL(or
ERL) bit of Status register will be set to 1 by hardware. What about the UM
bit of Status? Does it remain unchangeable or change to 1 too? The user
manual doesn't say anything about it.
Another question about exception priority:
In entry.S, some exception handlers enables global interrupt bit(IE) but
others disables it.
Also syscall exception handler enables global interrupt bit(IE). Since the
interrupt priority is lowest,If an interrupt happens in a syscall exception
handler, will it pause the syscall exception handler and run the interrupt
handler? If not, why it enable the IE bit(STI) in the syscall exception
handler??
If two interrupts happens at the same time, how can we decide the larger
priority interrupt and run its ISR?
Thank you very much.
machael thailer
next prev parent reply other threads:[~2001-08-21 1:32 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-15 1:30 Virtual address to physical address mapping machael thailer
2001-08-15 1:30 ` machael thailer
2001-08-15 8:33 ` Ralf Baechle
2001-08-20 9:54 ` questions about eret machael thailer
2001-08-20 9:54 ` machael thailer
2001-08-20 21:07 ` Ralf Baechle
2001-08-21 1:06 ` machael thailer
2001-08-21 1:06 ` machael thailer
2001-08-21 6:35 ` Ralf Baechle
2001-08-21 10:09 ` machael thailer
2001-08-21 10:09 ` machael thailer
2001-08-21 11:17 ` Ralf Baechle
2001-08-21 15:17 ` Question on porting Linux Shuanglin Wang
2001-08-21 14:33 ` jeff_lee
2001-08-21 14:33 ` jeff_lee
2001-08-21 15:33 ` Shuanglin Wang
2001-08-21 17:26 ` Jun Sun
2001-08-21 20:26 ` Carsten Langgaard
2001-08-21 21:36 ` Shuanglin Wang
2001-08-22 9:58 ` Carsten Langgaard
2001-08-21 1:34 ` machael thailer [this message]
2001-08-21 1:34 ` questions about some bits of STATUS register and exception priority machael thailer
2001-08-21 6:53 ` Ralf Baechle
2001-08-21 10:53 ` machael thailer
2001-08-21 10:53 ` machael thailer
2001-08-21 11:14 ` Ralf Baechle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='001901c129e1$5aaaadc0$8021690a@huawei.com' \
--to=dony.he@huawei.com \
--cc=linux-mips@oss.sgi.com \
--cc=ralf@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox