Re: [PATCH v2 1/7] Enable pvclock flags in vcpu_time_info structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/03/2010 06:52 PM, Glauber Costa wrote:
This patch removes one padding byte and transform it into a flags
field. New versions of guests using pvclock will query these flags
upon each read.

Flags, however, will only be interpreted when the guest decides to.
It uses the pvclock_valid_flags function to signal that a specific
set of flags should be taken into consideration. Which flags are valid
are usually devised via HV negotiation.

Signed-off-by: Glauber Costa<glommer@xxxxxxxxxx>
CC: Jeremy Fitzhardinge<jeremy@xxxxxxxx>
---
  arch/x86/include/asm/pvclock-abi.h |    3 ++-
  arch/x86/include/asm/pvclock.h     |    1 +
  arch/x86/kernel/pvclock.c          |    9 +++++++++
  3 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/arch/x86/include/asm/pvclock-abi.h b/arch/x86/include/asm/pvclock-abi.h
index 6d93508..ec5c41a 100644
--- a/arch/x86/include/asm/pvclock-abi.h
+++ b/arch/x86/include/asm/pvclock-abi.h
@@ -29,7 +29,8 @@ struct pvclock_vcpu_time_info {
  	u64   system_time;
  	u32   tsc_to_system_mul;
  	s8    tsc_shift;
-	u8    pad[3];
+	u8    flags;
+	u8    pad[2];
  } __attribute__((__packed__)); /* 32 bytes */

  struct pvclock_wall_clock {
diff --git a/arch/x86/include/asm/pvclock.h b/arch/x86/include/asm/pvclock.h
index 53235fd..cd02f32 100644
--- a/arch/x86/include/asm/pvclock.h
+++ b/arch/x86/include/asm/pvclock.h
@@ -6,6 +6,7 @@

  /* some helper functions for xen and kvm pv clock sources */
  cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src);
+void pvclock_set_flags(u8 flags);
  unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src);
  void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
  			    struct pvclock_vcpu_time_info *vcpu,
diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
index 03801f2..aa2262b 100644
--- a/arch/x86/kernel/pvclock.c
+++ b/arch/x86/kernel/pvclock.c
@@ -31,8 +31,16 @@ struct pvclock_shadow_time {
  	u32 tsc_to_nsec_mul;
  	int tsc_shift;
  	u32 version;
+	u8  flags;
  };

+static u8 valid_flags = 0;
+

Minor optimization: __read_mostly.

--
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux