RE: [PATCH 02/11] Add "handle page fault" PV helper.
From: Tian, Kevin
Date: Thu Nov 05 2009 - 01:47:22 EST
>From: Avi Kivity
>Sent: 2009年11月3日 12:57
>On 11/03/2009 01:35 AM, Rik van Riel wrote:
>>> We can't add an exception vector since all the existing
>ones are either
>>> taken or reserved.
>> I believe some are reserved for operating system use.
>Table 6-1 says:
> 9 | | Coprocessor Segment Overrun (reserved) | Fault | No |
> 15 | ― | (Intel reserved. Do not use.) | | No |
> 20-31 | ― | Intel reserved. Do not use. |
> 32-255 | ― | User Defined (Non-reserved) Interrupts | Interrupt
>| | External interrupt or INT n instruction.
>So we can only use 32-255, but these are not fault-like
>can be delivered with interrupts disabled.
would you really want to inject a fault-like exception here? Fault
is architurally synchronous event while here apf is more like an
asynchronous interrupt as it's not caused by guest itself. If
guest is with interrupt disabled, preemption won't happen and
apf path just ends up "wait for page" hypercall to waste cycles.