Liste des Groupes | Revenir à c arch |
mitchalsup@aol.com (MitchAlsup1) writes:Thanks for the link::On Wed, 25 Dec 2024 17:50:12 +0000, Paul A. Clayton wrote:>
>On 10/5/24 11:11 AM, EricP wrote:--------------------------MitchAlsup1 wrote:[snip]>>But voiding doesn't look like it works for exceptions or conflicting>
interrupt priority adjustments. In those cases purging the interrupt
handler and rejecting the hand-off looks like the only option.
Should exceptions always have priority? It seems to me that if a
thread is low enough priority to be interrupted, it is low enough
priority to have its exception processing interrupted/delayed.
It depends on what you mean::
>
a) if you mean that exceptions are prioritized and the highest
priority exception is the one taken, then OK you are working
in an ISA that has multiple exceptions per instruction. Most
RISC ISAs do not have this property.
AArch64 has 44 different synchronous exception priorities, and within
each priority that describes more than one exception, there
is a sub-prioritization therein. (Section D 1.3.5.5 pp 6080 in
DDI0487K_a).
>Neither stated nor inferred. A PageFault is handled singularly by
While it is not common for a particular instruction to generate
multiple execeptions, it is certainly possible (e.g. when
instructions are trapped to a more privileged execution mode).
>>>
b) if you mean that exceptions take priority over non-exception
instruction streaming, well that is what exceptions ARE. In these
cases, the exception handler inherits the priority of the instruction
stream that raised it--but that is NOT assigning a priority to the
exception.
>
c) and then there are the cases where a PageFault from GuestOS
page tables is serviced by GuestOS, while a PageFault from
HyperVisor page tables is serviced by HyperVisor. You could
assert that HV has higher priority than GuestOS, but it is
more like HV has privilege over GuestOS while running at the
same priority level.
It seems unlikely that a translation fault in user mode would need
handling in both the guest OS and the hypervisor during the
execution of an instruction;
theAsynchronous exceptions A R E interrupts, not like interrupts;
exception to the hypervisor would generally occur when the
instruction trapped by the guest (who updated the guest translation
tables) is restarted.
>
Other exception causes (such as asynchronous exceptions
like interrupts)
would remain pending and be taken (subjectWrites can be posted, Reads cannot. Reads must complete for the
to priority and control enables) when the instruction is
restarted (or the next instruction is dispached for asynchronous
exceptions).
>><snip>
>>Being able to overlap latency of a memory-mapped I/O access (or
other slow access) with execution of another thread seems
That depends on whether the access is posted or non-posted.
Les messages affichés proviennent d'usenet.