Re: [PATCH v3 04/12] Add "handle page fault" PV helper.

From: Avi Kivity
Date: Thu Jan 21 2010 - 03:59:39 EST


On 01/20/2010 08:45 PM, H. Peter Anvin wrote:
On 01/20/2010 04:00 AM, Avi Kivity wrote:
On 01/20/2010 12:02 PM, Gleb Natapov wrote:
I can inject the event as HW interrupt on vector greater then 32 but not
go through APIC so EOI will not be required. This sounds
non-architectural
and I am not sure kernel has entry point code for this kind of event, it
has one for exception and one for interrupts that goes through __do_IRQ()
which assumes that interrupts should be ACKed.

Further, we start to interact with the TPR; Linux doesn't use the TPR or
cr8 but if it does one day we don't want it interfering with apf.

I don't think the TPR would be involved unless you involve the APIC
(which you absolutely don't want to do.) What I'm trying to figure out
is if you could inject this vector as "external interrupt" and still
have it deliver if IF=0, or if it would cause any other funnies.

No, and it poses problems further down the line if the hardware virtualizes more and more of the APIC as seems likely to happen.

External interrupts are asynchronous events, so they're likely not to be guaranteed to be delivered on an instruction boundary like exceptions. Things like interrupt shadow will affect them as well.

As that point, you do not want to go through the do_IRQ path but rather
through your own exception vector entry point (it would be an entry
point which doesn't get an error code, like #UD.)

An error code would actually be useful.

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/