From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH 05/10] KVM: Adds ability to signal userspace using a file-descriptor
Date: Sun, 13 May 2007 16:00:39 +0300 [thread overview]
Message-ID: <46470BF7.5080108@qumranet.com> (raw)
In-Reply-To: <20070510124706.10200.68571.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
Gregory Haskins wrote:
> Signed-off-by: Gregory Haskins <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
>
Please include patch descriptions.
> ---
>
> drivers/kvm/kvm.h | 2 +
> drivers/kvm/kvm_main.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 84 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
> index 7b5d5e6..1c46830 100644
> --- a/drivers/kvm/kvm.h
> +++ b/drivers/kvm/kvm.h
> @@ -333,6 +333,8 @@ struct kvm_vcpu_irq {
> int deferred;
> struct task_struct *task;
> int guest_mode;
> + wait_queue_head_t wq;
> + int usignal;
> };
>
> struct kvm_vcpu {
> diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
> index 3304cce..9a6d2c5 100644
> --- a/drivers/kvm/kvm_main.c
> +++ b/drivers/kvm/kvm_main.c
> @@ -40,6 +40,7 @@
> #include <linux/file.h>
> #include <linux/fs.h>
> #include <linux/mount.h>
> +#include <linux/poll.h>
>
> #include "x86_emulate.h"
> #include "segment_descriptor.h"
> @@ -326,6 +327,7 @@ static struct kvm *kvm_create_vm(void)
> memset(&vcpu->irq, 0, sizeof(vcpu->irq));
> spin_lock_init(&vcpu->irq.lock);
> vcpu->irq.deferred = -1;
> + init_waitqueue_head(&vcpu->irq.wq);
>
> vcpu->cpu = -1;
> vcpu->kvm = kvm;
> @@ -2288,11 +2290,78 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
> return 0;
> }
>
> +static unsigned int kvm_vcpu_poll(struct file *filp, poll_table *wait)
> +{
> + struct kvm_vcpu *vcpu = filp->private_data;
> + unsigned int events = 0;
> + unsigned long flags;
> +
> + poll_wait(filp, &vcpu->irq.wq, wait);
> +
> + spin_lock_irqsave(&vcpu->irq.lock, flags);
> + if (vcpu->irq.usignal)
> + events |= POLLIN;
> + spin_unlock_irqrestore(&vcpu->irq.lock, flags);
> +
> + return events;
> +}
> +
> +static ssize_t kvm_vcpu_read(struct file *filp, char __user *buf, size_t count,
> + loff_t *ppos)
> +{
>
Is having a read() (or a write()) actually necessary?
> +
> + if (indirect_sig && waitqueue_active(&vcpu->irq.wq))
> + wake_up(&vcpu->irq.wq);
> }
>
>
Did you check that we can actually deliver signals with this? I think a
fasync_struct or something like that is necessary, but not sure.
Another implementation option (which I've only thought of now, sorry) is
to have an ioctl which returns a real eventfd, reducing some code
duplication.
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
next prev parent reply other threads:[~2007-05-13 13:00 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-10 12:46 [PATCH 00/10] in-kernel APIC v3 (kernel side) Gregory Haskins
[not found] ` <20070510123831.10200.4769.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-10 12:46 ` [PATCH 01/10] KVM: Adds support for in-kernel mmio handlers Gregory Haskins
2007-05-10 12:46 ` [PATCH 02/10] KVM: VMX - fix interrupt checking on light-exit Gregory Haskins
2007-05-10 12:46 ` [PATCH 03/10] KVM: Add irqdevice object Gregory Haskins
2007-05-10 12:47 ` [PATCH 04/10] KVM: Adds ability to preempt an executing VCPU Gregory Haskins
2007-05-10 12:47 ` [PATCH 05/10] KVM: Adds ability to signal userspace using a file-descriptor Gregory Haskins
[not found] ` <20070510124706.10200.68571.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-13 13:00 ` Avi Kivity [this message]
[not found] ` <46470BF7.5080108-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 12:15 ` Gregory Haskins
[not found] ` <46481A61.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 12:22 ` Avi Kivity
[not found] ` <46485488.2010608-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 14:00 ` Gregory Haskins
[not found] ` <46483320.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 14:42 ` Avi Kivity
[not found] ` <4648756D.5040001-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 17:18 ` Gregory Haskins
2007-05-14 16:52 ` Davide Libenzi
[not found] ` <Pine.LNX.4.64.0705140948150.19682-GPJ85BhbkB8RepQJljzAVbITYcZ0+W3JAL8bYrjMMd8@public.gmane.org>
2007-05-14 17:12 ` Avi Kivity
[not found] ` <4648986B.9090403-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 17:15 ` Davide Libenzi
[not found] ` <Pine.LNX.4.64.0705141013310.19682-GPJ85BhbkB8RepQJljzAVbITYcZ0+W3JAL8bYrjMMd8@public.gmane.org>
2007-05-14 17:23 ` Avi Kivity
[not found] ` <46489B12.8030807-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 19:01 ` Gregory Haskins
[not found] ` <464879A3.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 19:12 ` Davide Libenzi
[not found] ` <Pine.LNX.4.64.0705141207070.19682-GPJ85BhbkB8RepQJljzAVbITYcZ0+W3JAL8bYrjMMd8@public.gmane.org>
2007-05-14 20:18 ` Gregory Haskins
[not found] ` <46488BCD.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 21:32 ` Davide Libenzi
2007-05-10 12:47 ` [PATCH 06/10] KVM: Add support for in-kernel LAPIC model Gregory Haskins
2007-05-10 12:47 ` [PATCH 07/10] KVM: Adds support for real NMI injection on VMX processors Gregory Haskins
2007-05-10 12:47 ` [PATCH 08/10] KVM: Adds basic plumbing to support TPR shadow features Gregory Haskins
2007-05-10 12:47 ` [PATCH 09/10] KVM: Add statistics from interrupt subsystem Gregory Haskins
[not found] ` <20070510124726.10200.53053.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-14 11:17 ` Avi Kivity
2007-05-10 12:47 ` [PATCH 10/10] KVM: Adds support for TPR shadowing under VMX processors Gregory Haskins
2007-05-10 13:07 ` [PATCH 00/10] in-kernel APIC v3 (kernel side) Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BBA66AF-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-10 13:20 ` Gregory Haskins
[not found] ` <4642E39D.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-13 8:00 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BC745D3-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-13 13:59 ` Gregory Haskins
[not found] ` <4646E16D.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-13 14:06 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BC74642-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-14 12:37 ` Gregory Haskins
[not found] ` <46481FC0.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 13:04 ` Dor Laor
2007-05-13 12:38 ` Avi Kivity
[not found] ` <464706BF.6000808-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 11:59 ` Gregory Haskins
[not found] ` <464816AB.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 12:05 ` Dor Laor
2007-05-14 12:14 ` Avi Kivity
2007-05-10 13:32 ` Gregory Haskins
2007-05-13 13:10 ` Avi Kivity
[not found] ` <46470E58.2040208-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-14 12:23 ` Gregory Haskins
[not found] ` <46481C4B.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-14 12:24 ` 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=46470BF7.5080108@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=ghaskins-Et1tbQHTxzrQT0dZR+AlfA@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 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.