[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4B581752.6080701@redhat.com>
Date: Thu, 21 Jan 2010 10:58:58 +0200
From: Avi Kivity <avi@...hat.com>
To: "H. Peter Anvin" <hpa@...or.com>
CC: Gleb Natapov <gleb@...hat.com>,
Peter Zijlstra <peterz@...radead.org>, kvm@...r.kernel.org,
linux-mm@...ck.org, linux-kernel@...r.kernel.org, mingo@...e.hu,
tglx@...utronix.de, riel@...hat.com, cl@...ux-foundation.org
Subject: Re: [PATCH v3 04/12] Add "handle page fault" PV helper.
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists