public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
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

  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