Re: [RFC 2/7] change headers preparing for steal time
On 08/30/2010 03:44 PM, Glauber Costa wrote: @@ -40,5 +40,7 @@ struct pvclock_wall_clock { } __attribute__((__packed__)); #define PVCLOCK_TSC_STABLE_BIT(1<< 0) +#define PVCLOCK_STEAL_BIT (2<< 0) + #endif /* __ASSEMBLY__ */ #endif /* _ASM_X86_PVCLOCK_ABI_H */ We could extend pvclock to 64 bytes (unfortunately we didn't reserve bits 0-5 like we did with others) and use an nsec field. Yes we could, but what for? We're in a jiffie resolution on the other side anyway. "the other side" keeps changing (and is potentially not just Linux). We need to be prepared for the future. We'll regret having an interface that matches Linux at a random in time but nothing else. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 2/7] change headers preparing for steal time
On Sun, Aug 29, 2010 at 12:51:40PM +0300, Avi Kivity wrote: > On 08/26/2010 12:43 AM, Glauber Costa wrote: > >This guest/host common patch prepares infrastructure for > >the steal time implementation. Some constants are added, > >and a name change happens in pvclock vcpu structure. > > > >Signed-off-by: Glauber Costa > >--- > > arch/x86/include/asm/kvm_para.h|1 + > > arch/x86/include/asm/pvclock-abi.h |4 +++- > > 2 files changed, 4 insertions(+), 1 deletions(-) > > > >diff --git a/arch/x86/include/asm/kvm_para.h > >b/arch/x86/include/asm/kvm_para.h > >index 05eba5e..1759c81 100644 > >--- a/arch/x86/include/asm/kvm_para.h > >+++ b/arch/x86/include/asm/kvm_para.h > >@@ -25,6 +25,7 @@ > > * in pvclock structure. If no bits are set, all flags are ignored. > > */ > > #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24 > >+#define KVM_FEATURE_CLOCKSOURCE_STEAL_BIT 25 > > > > #define MSR_KVM_WALL_CLOCK 0x11 > > #define MSR_KVM_SYSTEM_TIME 0x12 > >diff --git a/arch/x86/include/asm/pvclock-abi.h > >b/arch/x86/include/asm/pvclock-abi.h > >index 35f2d19..417061b 100644 > >--- a/arch/x86/include/asm/pvclock-abi.h > >+++ b/arch/x86/include/asm/pvclock-abi.h > >@@ -24,7 +24,7 @@ > > > > struct pvclock_vcpu_time_info { > > u32 version; > >-u32 pad0; > >+u32 steal_time; > > u64 tsc_timestamp; > > u64 system_time; > > u32 tsc_to_system_mul; > >@@ -40,5 +40,7 @@ struct pvclock_wall_clock { > > } __attribute__((__packed__)); > > > > #define PVCLOCK_TSC_STABLE_BIT (1<< 0) > >+#define PVCLOCK_STEAL_BIT (2<< 0) > >+ > > #endif /* __ASSEMBLY__ */ > > #endif /* _ASM_X86_PVCLOCK_ABI_H */ > > We could extend pvclock to 64 bytes (unfortunately we didn't reserve > bits 0-5 like we did with others) and use an nsec field. Yes we could, but what for? We're in a jiffie resolution on the other side anyway. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 2/7] change headers preparing for steal time
On 08/26/2010 12:43 AM, Glauber Costa wrote: This guest/host common patch prepares infrastructure for the steal time implementation. Some constants are added, and a name change happens in pvclock vcpu structure. Signed-off-by: Glauber Costa --- arch/x86/include/asm/kvm_para.h|1 + arch/x86/include/asm/pvclock-abi.h |4 +++- 2 files changed, 4 insertions(+), 1 deletions(-) diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h index 05eba5e..1759c81 100644 --- a/arch/x86/include/asm/kvm_para.h +++ b/arch/x86/include/asm/kvm_para.h @@ -25,6 +25,7 @@ * in pvclock structure. If no bits are set, all flags are ignored. */ #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT24 +#define KVM_FEATURE_CLOCKSOURCE_STEAL_BIT 25 #define MSR_KVM_WALL_CLOCK 0x11 #define MSR_KVM_SYSTEM_TIME 0x12 diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/asm/pvclock-abi.h index 35f2d19..417061b 100644 --- a/arch/x86/include/asm/pvclock-abi.h +++ b/arch/x86/include/asm/pvclock-abi.h @@ -24,7 +24,7 @@ struct pvclock_vcpu_time_info { u32 version; - u32 pad0; + u32 steal_time; u64 tsc_timestamp; u64 system_time; u32 tsc_to_system_mul; @@ -40,5 +40,7 @@ struct pvclock_wall_clock { } __attribute__((__packed__)); #define PVCLOCK_TSC_STABLE_BIT(1<< 0) +#define PVCLOCK_STEAL_BIT (2<< 0) + #endif /* __ASSEMBLY__ */ #endif /* _ASM_X86_PVCLOCK_ABI_H */ We could extend pvclock to 64 bytes (unfortunately we didn't reserve bits 0-5 like we did with others) and use an nsec field. We can declare bit 1 to be a 'the address is 64 byte aligned and bits 2-5 are now feature bits', or we can add a new msr. Pretty complicated but it's good to have everything using the same units. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 2/7] change headers preparing for steal time
On 08/26/2010 05:17 PM, Glauber Costa wrote: On Thu, Aug 26, 2010 at 05:04:02PM -0400, Rik van Riel wrote: On 08/26/2010 04:44 PM, Zachary Amsden wrote: Will 32 bits be enough? Good question. Reading the rest of the code, I suspect it won't be, but Glauber will know better. We are at msec resolution, not nanoseconds. And I doubt we need more than that, since we'll later on convert to jiffie granularity. it gives us enough for about 50 days of steal time. I guess what really helps us here is that kvm_get_steal_time() returns the delta. This means it can be (it's using u64 at the moment, but that is fixable) changed to deal with overflows. At that point, it should do the right thing even if the 32 bit value contained nanoseconds. And with microseconds, it would certainly be plenty :) -- All rights reversed -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 2/7] change headers preparing for steal time
On Thu, Aug 26, 2010 at 05:04:02PM -0400, Rik van Riel wrote: > On 08/26/2010 04:44 PM, Zachary Amsden wrote: > >On 08/25/2010 11:43 AM, Glauber Costa wrote: > >>This guest/host common patch prepares infrastructure for > >>the steal time implementation. Some constants are added, > >>and a name change happens in pvclock vcpu structure. > >> > >>Signed-off-by: Glauber Costa > >>--- > >>arch/x86/include/asm/kvm_para.h | 1 + > >>arch/x86/include/asm/pvclock-abi.h | 4 +++- > >>2 files changed, 4 insertions(+), 1 deletions(-) > >> > >>diff --git a/arch/x86/include/asm/kvm_para.h > >>b/arch/x86/include/asm/kvm_para.h > >>index 05eba5e..1759c81 100644 > >>--- a/arch/x86/include/asm/kvm_para.h > >>+++ b/arch/x86/include/asm/kvm_para.h > >>@@ -25,6 +25,7 @@ > >>* in pvclock structure. If no bits are set, all flags are ignored. > >>*/ > >>#define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24 > >>+#define KVM_FEATURE_CLOCKSOURCE_STEAL_BIT 25 > >> > >>#define MSR_KVM_WALL_CLOCK 0x11 > >>#define MSR_KVM_SYSTEM_TIME 0x12 > >>diff --git a/arch/x86/include/asm/pvclock-abi.h > >>b/arch/x86/include/asm/pvclock-abi.h > >>index 35f2d19..417061b 100644 > >>--- a/arch/x86/include/asm/pvclock-abi.h > >>+++ b/arch/x86/include/asm/pvclock-abi.h > >>@@ -24,7 +24,7 @@ > >> > >>struct pvclock_vcpu_time_info { > >>u32 version; > >>- u32 pad0; > >>+ u32 steal_time; > >>u64 tsc_timestamp; > >>u64 system_time; > >>u32 tsc_to_system_mul; > >>@@ -40,5 +40,7 @@ struct pvclock_wall_clock { > >>} __attribute__((__packed__)); > >> > >>#define PVCLOCK_TSC_STABLE_BIT (1<< 0) > >>+#define PVCLOCK_STEAL_BIT (2<< 0) > >>+ > >>#endif /* __ASSEMBLY__ */ > >>#endif /* _ASM_X86_PVCLOCK_ABI_H */ > > > > > >Will 32 bits be enough? > > Good question. Reading the rest of the code, > I suspect it won't be, but Glauber will know > better. We are at msec resolution, not nanoseconds. And I doubt we need more than that, since we'll later on convert to jiffie granularity. it gives us enough for about 50 days of steal time. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 2/7] change headers preparing for steal time
On 08/26/2010 04:44 PM, Zachary Amsden wrote: On 08/25/2010 11:43 AM, Glauber Costa wrote: This guest/host common patch prepares infrastructure for the steal time implementation. Some constants are added, and a name change happens in pvclock vcpu structure. Signed-off-by: Glauber Costa --- arch/x86/include/asm/kvm_para.h | 1 + arch/x86/include/asm/pvclock-abi.h | 4 +++- 2 files changed, 4 insertions(+), 1 deletions(-) diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h index 05eba5e..1759c81 100644 --- a/arch/x86/include/asm/kvm_para.h +++ b/arch/x86/include/asm/kvm_para.h @@ -25,6 +25,7 @@ * in pvclock structure. If no bits are set, all flags are ignored. */ #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24 +#define KVM_FEATURE_CLOCKSOURCE_STEAL_BIT 25 #define MSR_KVM_WALL_CLOCK 0x11 #define MSR_KVM_SYSTEM_TIME 0x12 diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/asm/pvclock-abi.h index 35f2d19..417061b 100644 --- a/arch/x86/include/asm/pvclock-abi.h +++ b/arch/x86/include/asm/pvclock-abi.h @@ -24,7 +24,7 @@ struct pvclock_vcpu_time_info { u32 version; - u32 pad0; + u32 steal_time; u64 tsc_timestamp; u64 system_time; u32 tsc_to_system_mul; @@ -40,5 +40,7 @@ struct pvclock_wall_clock { } __attribute__((__packed__)); #define PVCLOCK_TSC_STABLE_BIT (1<< 0) +#define PVCLOCK_STEAL_BIT (2<< 0) + #endif /* __ASSEMBLY__ */ #endif /* _ASM_X86_PVCLOCK_ABI_H */ Will 32 bits be enough? Good question. Reading the rest of the code, I suspect it won't be, but Glauber will know better. -- All rights reversed -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC 2/7] change headers preparing for steal time
On 08/25/2010 11:43 AM, Glauber Costa wrote: This guest/host common patch prepares infrastructure for the steal time implementation. Some constants are added, and a name change happens in pvclock vcpu structure. Signed-off-by: Glauber Costa --- arch/x86/include/asm/kvm_para.h|1 + arch/x86/include/asm/pvclock-abi.h |4 +++- 2 files changed, 4 insertions(+), 1 deletions(-) diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h index 05eba5e..1759c81 100644 --- a/arch/x86/include/asm/kvm_para.h +++ b/arch/x86/include/asm/kvm_para.h @@ -25,6 +25,7 @@ * in pvclock structure. If no bits are set, all flags are ignored. */ #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT24 +#define KVM_FEATURE_CLOCKSOURCE_STEAL_BIT 25 #define MSR_KVM_WALL_CLOCK 0x11 #define MSR_KVM_SYSTEM_TIME 0x12 diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/asm/pvclock-abi.h index 35f2d19..417061b 100644 --- a/arch/x86/include/asm/pvclock-abi.h +++ b/arch/x86/include/asm/pvclock-abi.h @@ -24,7 +24,7 @@ struct pvclock_vcpu_time_info { u32 version; - u32 pad0; + u32 steal_time; u64 tsc_timestamp; u64 system_time; u32 tsc_to_system_mul; @@ -40,5 +40,7 @@ struct pvclock_wall_clock { } __attribute__((__packed__)); #define PVCLOCK_TSC_STABLE_BIT(1<< 0) +#define PVCLOCK_STEAL_BIT (2<< 0) + #endif /* __ASSEMBLY__ */ #endif /* _ASM_X86_PVCLOCK_ABI_H */ Will 32 bits be enough? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[RFC 2/7] change headers preparing for steal time
This guest/host common patch prepares infrastructure for the steal time implementation. Some constants are added, and a name change happens in pvclock vcpu structure. Signed-off-by: Glauber Costa --- arch/x86/include/asm/kvm_para.h|1 + arch/x86/include/asm/pvclock-abi.h |4 +++- 2 files changed, 4 insertions(+), 1 deletions(-) diff --git a/arch/x86/include/asm/kvm_para.h b/arch/x86/include/asm/kvm_para.h index 05eba5e..1759c81 100644 --- a/arch/x86/include/asm/kvm_para.h +++ b/arch/x86/include/asm/kvm_para.h @@ -25,6 +25,7 @@ * in pvclock structure. If no bits are set, all flags are ignored. */ #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24 +#define KVM_FEATURE_CLOCKSOURCE_STEAL_BIT 25 #define MSR_KVM_WALL_CLOCK 0x11 #define MSR_KVM_SYSTEM_TIME 0x12 diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/asm/pvclock-abi.h index 35f2d19..417061b 100644 --- a/arch/x86/include/asm/pvclock-abi.h +++ b/arch/x86/include/asm/pvclock-abi.h @@ -24,7 +24,7 @@ struct pvclock_vcpu_time_info { u32 version; - u32 pad0; + u32 steal_time; u64 tsc_timestamp; u64 system_time; u32 tsc_to_system_mul; @@ -40,5 +40,7 @@ struct pvclock_wall_clock { } __attribute__((__packed__)); #define PVCLOCK_TSC_STABLE_BIT (1 << 0) +#define PVCLOCK_STEAL_BIT (2 << 0) + #endif /* __ASSEMBLY__ */ #endif /* _ASM_X86_PVCLOCK_ABI_H */ -- 1.6.2.2 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html