WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Add flags field to VCPUOP_set_singlsehot_

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Add flags field to VCPUOP_set_singlsehot_timer.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 10 Mar 2007 12:30:09 -0800
Delivery-date: Sat, 10 Mar 2007 12:29:51 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1173545891 0
# Node ID 7f624c770dbdeb37848e0d37e888585e85803427
# Parent  8fa8de63abf48473e06755bd1f4f4ea29386e592
Add flags field to VCPUOP_set_singlsehot_timer.
Flag 'future' causes Xen to check if the timeout is in the past and
return -ETIME if so.
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c |    1 +
 xen/common/domain.c                              |    4 ++++
 xen/include/public/vcpu.h                        |    8 +++++++-
 3 files changed, 12 insertions(+), 1 deletion(-)

diff -r 8fa8de63abf4 -r 7f624c770dbd 
linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c
--- a/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c  Sat Mar 10 16:22:52 
2007 +0000
+++ b/linux-2.6-xen-sparse/arch/i386/kernel/time-xen.c  Sat Mar 10 16:58:11 
2007 +0000
@@ -1008,6 +1008,7 @@ static void stop_hz_timer(void)
        }
 
        singleshot.timeout_abs_ns = jiffies_to_st(j);
+       singleshot.flags = 0;
        rc = HYPERVISOR_vcpu_op(VCPUOP_set_singleshot_timer, cpu, &singleshot);
 #ifdef XEN_COMPAT_030004
        if (rc) {
diff -r 8fa8de63abf4 -r 7f624c770dbd xen/common/domain.c
--- a/xen/common/domain.c       Sat Mar 10 16:22:52 2007 +0000
+++ b/xen/common/domain.c       Sat Mar 10 16:58:11 2007 +0000
@@ -623,6 +623,10 @@ long do_vcpu_op(int cmd, int vcpuid, XEN
         if ( copy_from_guest(&set, arg, 1) )
             return -EFAULT;
 
+        if ( (set.flags & VCPU_SSHOTTMR_future) &&
+             (set.timeout_abs_ns < NOW()) )
+            return -ETIME;
+
         if ( v->singleshot_timer.cpu != smp_processor_id() )
         {
             stop_timer(&v->singleshot_timer);
diff -r 8fa8de63abf4 -r 7f624c770dbd xen/include/public/vcpu.h
--- a/xen/include/public/vcpu.h Sat Mar 10 16:22:52 2007 +0000
+++ b/xen/include/public/vcpu.h Sat Mar 10 16:58:11 2007 +0000
@@ -150,10 +150,16 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_set_periodi
 #define VCPUOP_set_singleshot_timer  8 /* arg == vcpu_set_singleshot_timer_t */
 #define VCPUOP_stop_singleshot_timer 9 /* arg == NULL */
 struct vcpu_set_singleshot_timer {
-    uint64_t timeout_abs_ns;
+    uint64_t timeout_abs_ns;   /* Absolute system time value in nanoseconds. */
+    uint32_t flags;            /* VCPU_SSHOTTMR_??? */
 };
 typedef struct vcpu_set_singleshot_timer vcpu_set_singleshot_timer_t;
 DEFINE_XEN_GUEST_HANDLE(vcpu_set_singleshot_timer_t);
+
+/* Flags to VCPUOP_set_singleshot_timer. */
+ /* Require the timeout to be in the future (return -ETIME if it's passed). */
+#define _VCPU_SSHOTTMR_future (0)
+#define VCPU_SSHOTTMR_future  (1U << _VCPU_SSHOTTMR_future)
 
 #endif /* __XEN_PUBLIC_VCPU_H__ */
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Add flags field to VCPUOP_set_singlsehot_timer., Xen patchbot-unstable <=