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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox