Re: [RFC 2/7] change headers preparing for steal time

2010-08-30 Thread Avi Kivity

 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

2010-08-30 Thread Glauber Costa
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

2010-08-29 Thread Avi Kivity

 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

2010-08-26 Thread Rik van Riel

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

2010-08-26 Thread Glauber Costa
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

2010-08-26 Thread Rik van Riel

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

2010-08-26 Thread Zachary Amsden

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

2010-08-25 Thread Glauber Costa
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