From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Arjan van de Ven <arjan-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: Booting from PV disk driver (Was: Re: [PATCH 10/13] KVM: Wire up hypercall handler ..)
Date: Sun, 25 Feb 2007 08:52:03 +0200 [thread overview]
Message-ID: <45E13213.5070502@qumranet.com> (raw)
In-Reply-To: <1172385720.3265.12.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
Arjan van de Ven wrote:
>>> shared interrupts aren't a big deal in Linux. at all.
>>> In fact, sharing all PV interrupts to one number is a performance
>>> enhancement ;)
>>>
>>>
>> If you share a PV interrupt with a non-PV interrupt, then for each PV
>> interrupt you have to check whether the non-PV interrupt fired. That
>> involves at least one expensive vmexit.
>>
>
> hmm not really.
> the completion ring lives in guest memory, the guest can check it
> without vmexit entirely.
> The PV block driver only does 2 vm events normally (apart from boot time
> setup), one to inform the host new IO has been submitted in the submit
> ring, and one to receive an interrupt to get notified one or more
> completions are present in the completion ring. Nothing more....
>
>
But doesn't the interrupt code have to check all interrupt sources on a
shared line? That means checking the non-PV interrupt as well, which
involves a vmexit (for mmio read).
>> I agree that sharing PV interrupts is not very expensive (though I don't
>> see why you call it an optimization - if you share 100 interrupts on one
>> line you need to check 100 interrupt sources every time the interrupt
>> fires).
>>
>
> as long as the check is cheap that is actually fine; if in your 100
> sources scenario 10 have fired, you only get 1 vm event to deliver the
> irq, and then 100 polls of guest memory inside the guest. That should be
> cheaper than doing 10 real vm interrupts.
>
It is possible (Xen does it) to batch interrupt delivery so that
multiple interrupts can be delivered with one vmentry. So you get the
best of both worlds: one check for interrupt source, and one vmentry if
multiple interrupts have fired.
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
next prev parent reply other threads:[~2007-02-25 6:52 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-19 10:20 [PATCH 0/13] kvm updates for 2.6.21 Avi Kivity
[not found] ` <45D979D3.2020907-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-19 10:21 ` [PATCH 1/13] KVM: mmu: add missing dirty page tracking cases Avi Kivity
2007-02-19 10:22 ` [PATCH 2/13] KVM: Move virtualization deactivation from CPU_DEAD state to CPU_DOWN_PREPARE Avi Kivity
2007-02-19 10:23 ` [PATCH 3/13] KVM: Cosmetics Avi Kivity
2007-02-19 10:24 ` [PATCH 4/13] KVM: vmx: hack set_cr0_no_modeswitch() to actually do modeswitch Avi Kivity
2007-02-19 10:25 ` [PATCH 5/13] KVM: Use ARRAY_SIZE macro instead of manual calculation Avi Kivity
2007-02-19 10:26 ` [PATCH 6/13] KVM: Use page_private()/set_page_private() apis Avi Kivity
2007-02-19 10:27 ` [PATCH 7/13] KVM: add MSR based hypercall API Avi Kivity
2007-02-19 10:28 ` [PATCH 8/13] KVM: Add host hypercall support for vmx Avi Kivity
2007-02-19 10:29 ` [PATCH 9/13] KVM: Add hypercall host support for svm Avi Kivity
2007-02-19 10:30 ` [PATCH 10/13] KVM: Wire up hypercall handlers to a central arch-independent location Avi Kivity
[not found] ` <20070219103052.4D23725016B-LjA0eNSCdXrQnzwC+xcbyw@public.gmane.org>
2007-02-21 10:37 ` Pavel Machek
[not found] ` <20070221103733.GI3945-+ZI9xUNit7I@public.gmane.org>
2007-02-22 10:14 ` Avi Kivity
[not found] ` <45DD6CF0.3010509-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-22 10:17 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160A91BAF3-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-02-22 10:22 ` Joerg Roedel
[not found] ` <20070222102228.GC12801-5C7GfCeVMHo@public.gmane.org>
2007-02-22 10:37 ` Avi Kivity
2007-02-22 10:34 ` Arjan van de Ven
[not found] ` <1172140490.3531.236.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-22 10:40 ` Avi Kivity
[not found] ` <45DD7330.1030001-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-22 11:01 ` Arjan van de Ven
[not found] ` <1172142081.3531.243.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-22 13:04 ` Avi Kivity
2007-02-22 13:12 ` [kvm-devel] " Arjan van de Ven
[not found] ` <1172149924.3531.260.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-22 13:29 ` Avi Kivity
[not found] ` <45DD9A9D.4060500-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-22 14:09 ` Arjan van de Ven
[not found] ` <1172153373.3531.268.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-22 14:20 ` Avi Kivity
[not found] ` <45DDA6CB.4020603-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-23 14:55 ` Anthony Liguori
2007-02-22 13:31 ` [PATCH 10/13] KVM: Wire up hypercall handlers toa " Dor Laor
2007-02-23 21:14 ` Booting from PV disk driver (Was: Re: [PATCH 10/13] KVM: Wire up hypercall handler ..) Anthony Liguori
[not found] ` <45DF5943.3090304-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org>
2007-02-23 22:33 ` Arjan van de Ven
[not found] ` <1172269981.3241.57.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-24 22:35 ` Booting from PV disk driver (Was: Re: [PATCH 10/13]KVM: " Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160A91C385-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-02-25 5:20 ` Avi Kivity
[not found] ` <45E11C8A.9070006-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-25 5:48 ` Avi Kivity
2007-02-25 5:17 ` Booting from PV disk driver (Was: Re: [PATCH 10/13] KVM: " Avi Kivity
[not found] ` <45E11C00.2000602-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-25 6:31 ` Arjan van de Ven
[not found] ` <1172385067.3265.1.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-25 6:34 ` Avi Kivity
[not found] ` <45E12E08.8040402-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-25 6:42 ` Arjan van de Ven
[not found] ` <1172385720.3265.12.camel-NIQFrBLA1CpScpXdPBN83iCwEArCW2h5@public.gmane.org>
2007-02-25 6:52 ` Avi Kivity [this message]
[not found] ` <45E13213.5070502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-02-25 6:56 ` Arjan van de Ven
2007-02-19 10:31 ` [PATCH 11/13] KVM: svm: init cr0 with the wp bit set Avi Kivity
2007-02-19 10:33 ` [PATCH 13/13] KVM: More 0 -> NULL conversions Avi Kivity
2007-02-19 10:32 ` [PATCH 12/13] KVM: SVM: intercept SMI to handle it at host level Avi Kivity
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=45E13213.5070502@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=arjan-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/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