From: "Gregory Haskins" <ghaskins-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
To: "Avi Kivity" <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH 10/10] KVM: Adds support for halting in the kernel
Date: Thu, 24 May 2007 07:54:08 -0400 [thread overview]
Message-ID: <46554473.BA47.005A.0@novell.com> (raw)
In-Reply-To: <46554CFF.9040101-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
>>> On Thu, May 24, 2007 at 4:29 AM, in message <46554CFF.9040101-atKUWr5tajBWk0Htik3J/w@public.gmane.org>,
Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org> wrote:
> Gregory Haskins wrote:
>> Halting in userspace requires a relatively cumbersome mechanism to signal
> the
>> halted VCPU. Implementing halt in kernel should be relatively straight
>> forward and it eliminates the need for the signaling
>>
>> /*
>> + * The vCPU has executed a HLT instruction with in- kernel mode enabled.
>> + */
>> +static int kvm_vcpu_kern_halt(struct kvm_vcpu *vcpu, struct kvm_run
> *kvm_run)
>> +{
>> + DECLARE_WAITQUEUE(wait, current);
>> + sigset_t sigblocked, sigsaved;
>> + int r = 1;
>> +
>> + /*
>> + * Unmask all signals while we wait
>> + */
>> + memset(&sigblocked, 0, sizeof(sigblocked));
>> + sigprocmask(SIG_SETMASK, &sigblocked, &sigsved);
>>
>
> We have a specialized signal mask for the kernel, and it is already in
> effect here. See KVM_SET_SIGNAL_MASK.
>
KVM_SET_SIGNAL_MASK is precisely what I was trying to counteract ;). Basically I was thinking that userspace could have set some arbitrary mask that would be in effect at this time. My justification for unmasking everything is two fold:
1) I think I really want *any* signal to kick the HLT, so I temporarily unmask everything while halted.
2) Old userspace halting would not have the SET_SIGNAL_MASK set at the time either, since we would have restored the original mask before returning to userspace.
That being said, I am not an expert here so I may have got it wrong. Please advise.
-Greg
-------------------------------------------------------------------------
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-24 11:54 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-23 13:18 [PATCH 00/10] in-kernel APIC v7 (kernel side) Gregory Haskins
[not found] ` <20070523130905.23177.11087.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-23 13:18 ` [PATCH 01/10] KVM: Adds support for in-kernel mmio handlers Gregory Haskins
2007-05-23 13:18 ` [PATCH 02/10] KVM: VMX - fix interrupt checking on light-exit Gregory Haskins
2007-05-23 13:18 ` [PATCH 03/10] KVM: Add irqdevice object Gregory Haskins
2007-05-23 13:19 ` [PATCH 04/10] KVM: Adds ability to preempt an executing VCPU Gregory Haskins
2007-05-23 13:19 ` [PATCH 05/10] KVM: Add support for in-kernel LAPIC model Gregory Haskins
2007-05-23 13:19 ` [PATCH 06/10] KVM: Adds support for real NMI injection on VMX processors Gregory Haskins
2007-05-23 13:19 ` [PATCH 07/10] KVM: Adds basic plumbing to support TPR shadow features Gregory Haskins
2007-05-23 13:19 ` [PATCH 08/10] KVM: Add statistics from interrupt subsystem Gregory Haskins
2007-05-23 13:19 ` [PATCH 09/10] KVM: Support level-sensitive interrupts better Gregory Haskins
2007-05-23 13:19 ` [PATCH 10/10] KVM: Adds support for halting in the kernel Gregory Haskins
[not found] ` <20070523131932.23177.38587.stgit-sLgBBP33vUGnsjUZhwzVf9HuzzzSOjJt@public.gmane.org>
2007-05-24 8:29 ` Avi Kivity
[not found] ` <46554CFF.9040101-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-24 11:54 ` Gregory Haskins [this message]
[not found] ` <46554473.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-24 12:17 ` Avi Kivity
[not found] ` <46558266.90309-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-24 12:43 ` Gregory Haskins
[not found] ` <46555021.BA47.005A.0-Et1tbQHTxzrQT0dZR+AlfA@public.gmane.org>
2007-05-24 12:47 ` Avi Kivity
2007-05-24 14:57 ` Carsten Otte
[not found] ` <4655A7BE.2000608-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-05-24 15:01 ` Gregory Haskins
2007-05-24 8:54 ` [PATCH 00/10] in-kernel APIC v7 (kernel side) Avi Kivity
[not found] ` <465552CA.7030607-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-05-24 9:28 ` Li, Xin B
[not found] ` <B30DA1341B0CFA4893EF8A36B40B5C5D012BF9E8-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-05-24 9:36 ` Avi Kivity
2007-05-24 9:36 ` Dor Laor
[not found] ` <64F9B87B6B770947A9F8391472E032160BF2A7CE-yEcIvxbTEBqsx+V+t5oei8rau4O3wl8o3fe8/T/H7NteoWH0uzbU5w@public.gmane.org>
2007-05-24 9:38 ` Li, Xin B
[not found] ` <B30DA1341B0CFA4893EF8A36B40B5C5D012BF9FF-wq7ZOvIWXbNpB2pF5aRoyrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-05-24 9:44 ` Dor Laor
2007-05-24 12:00 ` Gregory Haskins
2007-05-24 11:56 ` 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=46554473.BA47.005A.0@novell.com \
--to=ghaskins-et1tbqhtxzrqt0dzr+alfa@public.gmane.org \
--cc=avi-atKUWr5tajBWk0Htik3J/w@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