From: "Glauber de Oliveira Costa" <glommer@gmail.com>
To: "Glauber de Oliveira Costa" <gcosta@redhat.com>
Cc: linux-kernel@vger.kernel.org, jeremy@goop.org,
hollisb@us.ibm.com, kvm-devel@lists.sourceforge.net,
avi@qumranet.com
Subject: Re: [kvm-devel] include files for kvmclock
Date: Tue, 6 Nov 2007 19:35:38 -0200 [thread overview]
Message-ID: <5d6222a80711061335q7ef03b42i335bb1e8c07eb7e4@mail.gmail.com> (raw)
In-Reply-To: <11943875433821-git-send-email-gcosta@redhat.com>
On 11/6/07, Glauber de Oliveira Costa <gcosta@redhat.com> wrote:
> This patch introduces the include files for kvm clock.
> They'll be needed for both guest and host part.
And of course, this was my test files by mistake ;-)
Oh god... ;-)
Patches aren't numbered but this one should go first. And please just ignore,
the replica of the hv_clock union definition in the patch bellow. It
should all go in asm/kvm_para.h
The other two patches are fine, and can be applied in any order, so
it's not worth resending. I'll grab your comments first.
> Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com>
> ---
> include/asm-x86/kvm_para.h | 23 +++++++++++++++++++++++
> include/linux/kvm.h | 1 +
> include/linux/kvm_para.h | 20 ++++++++++++++++++++
> 3 files changed, 44 insertions(+), 0 deletions(-)
>
> diff --git a/include/asm-x86/kvm_para.h b/include/asm-x86/kvm_para.h
> index c6f3fd8..af9fb75 100644
> --- a/include/asm-x86/kvm_para.h
> +++ b/include/asm-x86/kvm_para.h
> @@ -10,15 +10,38 @@
> * paravirtualization, the appropriate feature bit should be checked.
> */
> #define KVM_CPUID_FEATURES 0x40000001
> +#define KVM_FEATURE_CLOCKEVENTS 0
> +#define KVM_FEATURE_CLOCKSOURCE 1
> +
>
> #ifdef __KERNEL__
> #include <asm/processor.h>
> +extern void kvmclock_init(void);
> +
> +union kvm_hv_clock {
> + struct {
> + u64 tsc_mult;
> + u64 now_ns;
> + /* That's the wall clock, not the water closet */
> + u64 wc_sec;
> + u64 wc_nsec;
> + u64 last_tsc;
> + /* At first, we could use the tsc value as a marker, but Jeremy
> + * well noted that it will cause us locking problems in 32-bit
> + * sys, so we have a special version field */
> + u32 version;
> + };
> + char page_align[PAGE_SIZE];
> +};
> +
>
> /* This instruction is vmcall. On non-VT architectures, it will generate a
> * trap that we will then rewrite to the appropriate instruction.
> */
> #define KVM_HYPERCALL ".byte 0x0f,0x01,0xc1"
>
> +#define KVM_HCALL_REGISTER_CLOCK 1
> +
> /* For KVM hypercalls, a three-byte sequence of either the vmrun or the vmmrun
> * instruction. The hypervisor may replace it with something else but only the
> * instructions are guaranteed to be supported.
> diff --git a/include/linux/kvm.h b/include/linux/kvm.h
> index 71d33d6..7ac8786 100644
> --- a/include/linux/kvm.h
> +++ b/include/linux/kvm.h
> @@ -359,6 +359,7 @@ struct kvm_signal_mask {
> #define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2
> #define KVM_CAP_USER_MEMORY 3
> #define KVM_CAP_SET_TSS_ADDR 4
> +#define KVM_CAP_CLK 5
>
> /*
> * ioctls for VM fds
> diff --git a/include/linux/kvm_para.h b/include/linux/kvm_para.h
> index e4db25f..567a192 100644
> --- a/include/linux/kvm_para.h
> +++ b/include/linux/kvm_para.h
> @@ -11,8 +11,28 @@
>
> /* Return values for hypercalls */
> #define KVM_ENOSYS 1000
> +#define KVM_ENODEV 1019
> +#define KVM_EINVAL 1022
>
> #ifdef __KERNEL__
> +#define KVM_HCALL_REGISTER_CLOCK 1
> +
> +union kvm_hv_clock {
> + struct {
> + u64 tsc_mult;
> + u64 now_ns;
> + /* That's the wall clock, not the water closet */
> + u64 wc_sec;
> + u64 wc_nsec;
> + u64 last_tsc;
> + /* At first, we could use the tsc value as a marker, but Jeremy
> + * well noted that it will cause us locking problems in 32-bit
> + * sys, so we have a special version field */
> + u32 version;
> + };
> + char page_align[PAGE_SIZE];
> +};
> +
> /*
> * hypercalls use architecture specific
> */
> --
> 1.5.0.6
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc.
> Still grepping through log files to find problems? Stop.
> Now Search log events and configuration files using AJAX and a browser.
> Download your FREE copy of Splunk now >> http://get.splunk.com/
> _______________________________________________
> kvm-devel mailing list
> kvm-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>
--
Glauber de Oliveira Costa.
"Free as in Freedom"
http://glommer.net
"The less confident you are, the more serious you have to act."
next prev parent reply other threads:[~2007-11-06 21:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-06 22:18 KVM paravirt clocksource - Take 3 out of <put your number here> Glauber de Oliveira Costa
2007-11-06 22:18 ` include files for kvmclock Glauber de Oliveira Costa
2007-11-06 21:35 ` Glauber de Oliveira Costa [this message]
2007-11-07 5:55 ` [kvm-devel] " Avi Kivity
2007-11-07 5:58 ` Jeremy Fitzhardinge
2007-11-07 12:49 ` Glauber de Oliveira Costa
2007-11-06 22:18 ` kvmclock - the host part Glauber de Oliveira Costa
2007-11-06 22:18 ` kvmclock implementation, the guest part Glauber de Oliveira Costa
2007-11-07 5:50 ` kvmclock - the host part Avi Kivity
2007-11-07 13:08 ` Glauber de Oliveira Costa
2007-11-07 13:59 ` Avi Kivity
2007-11-06 22:50 ` include files for kvmclock Jeremy Fitzhardinge
2007-11-06 22:58 ` Glauber de Oliveira Costa
2007-11-07 8:16 ` [kvm-devel] " Akio Takebe
2007-11-07 13:16 ` Glauber de Oliveira Costa
2007-11-07 13:27 ` Akio Takebe
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=5d6222a80711061335q7ef03b42i335bb1e8c07eb7e4@mail.gmail.com \
--to=glommer@gmail.com \
--cc=avi@qumranet.com \
--cc=gcosta@redhat.com \
--cc=hollisb@us.ibm.com \
--cc=jeremy@goop.org \
--cc=kvm-devel@lists.sourceforge.net \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®