All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Gregory Haskins <ghaskins@novell.com>
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	alacrityvm-devel@lists.sourceforge.net
Subject: Re: [KVM PATCH v2 1/2] KVM: export lockless GSI attribute
Date: Sun, 25 Oct 2009 16:30:12 +0200	[thread overview]
Message-ID: <4AE460F4.2090905@redhat.com> (raw)
In-Reply-To: <20091023023845.3891.36857.stgit@dev.haskins.net>

On 10/23/2009 04:38 AM, Gregory Haskins wrote:
> Certain GSI's support lockless injecton, but we have no way to detect
> which ones at the GSI level.  Knowledge of this attribute will be
> useful later in the series so that we can optimize irqfd injection
> paths for cases where we know the code will not sleep.  Therefore,
> we provide an API to query a specific GSI.
>
>    

Instead of a lockless attribute, how about a ->set_atomic() method.  For 
msi this can be the same as ->set(), for non-msi it can be a function 
that schedules the work (which will eventually call ->set()).

The benefit is that we make a decision only once, when preparing the 
routing entry, and install that decision in the routing entry instead of 
making it again and again later.

> +int kvm_irq_check_lockless(struct kvm *kvm, u32 irq)
>    

bool kvm_irq_check_lockless(...)

> +{
> +	struct kvm_kernel_irq_routing_entry *e;
> +	struct kvm_irq_routing_table *irq_rt;
> +	struct hlist_node *n;
> +	int ret = -ENOENT;
> +
> +	rcu_read_lock();
> +	irq_rt = rcu_dereference(kvm->irq_routing);
> +	if (irq<  irq_rt->nr_rt_entries)
> +		hlist_for_each_entry(e, n,&irq_rt->map[irq], link)
> +			ret = e->lockless ? 1 : 0;
>    

     ret = e->lockless;

> +	rcu_read_unlock();
> +
> +	return ret;
> +}
> +
>    

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


  parent reply	other threads:[~2009-10-25 14:30 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-23  2:38 [KVM PATCH v2 0/2] irqfd enhancements Gregory Haskins
2009-10-23  2:38 ` [KVM PATCH v2 1/2] KVM: export lockless GSI attribute Gregory Haskins
2009-10-23  2:43   ` Gregory Haskins
2009-10-25 14:30   ` Avi Kivity [this message]
2009-10-26 13:25     ` [Alacrityvm-devel] " Gregory Haskins
2009-10-26 15:38       ` Gregory Haskins
2009-10-28 10:04         ` Avi Kivity
2009-10-28 13:19           ` Gregory Haskins
2009-10-28 13:27             ` Avi Kivity
2009-10-28 13:30               ` Gregory Haskins
2009-10-23  2:38 ` [KVM PATCH v2 2/2] KVM: Directly inject interrupts if they support lockless operation Gregory Haskins

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=4AE460F4.2090905@redhat.com \
    --to=avi@redhat.com \
    --cc=alacrityvm-devel@lists.sourceforge.net \
    --cc=ghaskins@novell.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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.