All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dor Laor <dor.laor-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Rusty Russell <rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org>
Cc: kvm-devel
	<kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
	virtualization
	<virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
Subject: Re: [PATCH 2/3] virtio ring implementation
Date: Wed, 26 Sep 2007 11:08:03 +0200	[thread overview]
Message-ID: <46FA2173.5050100@qumranet.com> (raw)
In-Reply-To: <1190763475.2227.20.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>

Rusty Russell wrote:
> On Tue, 2007-09-25 at 19:15 +0200, Dor Laor wrote:
>   
>> At the moment it's not good enough, there is a potential race were the
>> guest optimistically turn off
>> the VRING_AVAIL_F_NO_INTERRUPT in the vring_restart and afterwards
>> finds there are more_used so
>> it consume them in the poll function. 
>> If in the middle, packets arrive the host will see the flag is off and
>> send irq.
>> In that case the above irq handler will report IRQ_NONE.
>>     
>
> Good point.  On the one hand, reporting IRQ_NONE occasionally is not
> fatal.  On the other, it'd be nice to get this right.
>
>   
>> It's also not trivial to cancel the optimistic approach in the restart
>> function since then there might be another race
>> that will result in missing irq reaching the guest.
>>     
>
> I did it optimistically because otherwise we need two barriers (and
> still have a window).
>
>   
>> I'll try to think of something better than a hypercall for switching
>> irq on/off.
>>     
>
> Erk.  That would be v. bad...
>   
Actually double barrier will satisfy non-shared irq lines and will 
report irq handling right.
The more complex scenario is shared irqs (pci...), since several devices 
are raising the irq line (level triggered)
in the same time, while the tap add receive packets it always leaves a 
potential race for irq handled return
value. So seems like we better not have shared irq and if only if shared 
irq is a must we should do the
naughty naughty things.

If returning IRQ_NONE once in a while is not too bad (including the 
matching windows implementation)
then there is no issue.
Dor.
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

  parent reply	other threads:[~2007-09-26  9:08 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-24  9:13 [PATCH 0/3] virtio implementation (draft VI) Rusty Russell
2007-09-24  9:14 ` [PATCH 1/3] virtio interface Rusty Russell
     [not found] ` <1190625194.27805.199.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24  9:14   ` Rusty Russell
2007-09-24  9:15     ` [PATCH 2/3] virtio ring implementation Rusty Russell
     [not found]     ` <1190625256.27805.201.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24  9:15       ` Rusty Russell
2007-09-24  9:16         ` [PATCH 3/3] virtio module alias support Rusty Russell
     [not found]         ` <1190625307.27805.203.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24  9:16           ` Rusty Russell
     [not found]             ` <1190625394.27805.206.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-24 16:02               ` Greg KH
     [not found]                 ` <20070924160221.GB5846-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2007-09-25  0:50                   ` Rusty Russell
     [not found]                     ` <1190681405.27805.243.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25  1:57                       ` Greg KH
2007-09-25  2:11                         ` Rusty Russell
     [not found]                         ` <20070925015747.GA16011-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2007-09-25  2:11                           ` Rusty Russell
2007-09-25  3:10                             ` Greg KH
     [not found]                             ` <1190686275.27805.255.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25  3:10                               ` Greg KH
2007-09-25  1:57                     ` Greg KH
2007-09-25  0:50                 ` Rusty Russell
2007-09-24 16:02             ` Greg KH
2007-09-24 13:44           ` [PATCH 2/3] virtio ring implementation Dor Laor
     [not found]             ` <46F7BF41.9060705-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-24 23:43               ` Rusty Russell
2007-09-25 13:32               ` Rusty Russell
     [not found]                 ` <1190727156.27805.332.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25 17:15                   ` Dor Laor
     [not found]                     ` <46F94243.2000602-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-09-25 23:37                       ` Rusty Russell
     [not found]                         ` <1190763475.2227.20.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-26  9:08                           ` Dor Laor [this message]
2007-09-26  9:08                         ` [kvm-devel] " Dor Laor
2007-09-25 23:37                     ` Rusty Russell
2007-09-25 17:15                 ` Dor Laor
2007-09-24 23:43             ` Rusty Russell
2007-09-25 13:32             ` Rusty Russell
2007-09-24 13:44         ` Dor Laor
2007-09-24 22:18       ` [PATCH 1/3] virtio interface Arnd Bergmann
2007-09-24 23:37         ` [kvm-devel] " Rusty Russell
     [not found]         ` <200709250018.12705.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-24 23:37           ` Rusty Russell
2007-09-25  6:36             ` [kvm-devel] " Arnd Bergmann
     [not found]             ` <1190677058.27805.225.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2007-09-25  6:36               ` Arnd Bergmann
     [not found]                 ` <200709250836.29451.arnd-r2nGTMty4D4@public.gmane.org>
2007-09-25 10:54                   ` Rusty Russell
2007-09-25 10:54                 ` [kvm-devel] " Rusty Russell
2007-09-25  8:18               ` Cornelia Huck
2007-09-25  8:18             ` [kvm-devel] " Cornelia Huck
2007-09-24 22:18     ` Arnd Bergmann

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=46FA2173.5050100@qumranet.com \
    --to=dor.laor-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=dor.laor-atKUWr5tajBWk0Htik3J/w@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=rusty-8n+1lVoiYb80n/F98K4Iww@public.gmane.org \
    --cc=virtualization-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.