tech-kern archive

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

Re: TSC clock going backwards on suspend/resume



roy%marples.name@localhost said:
> > while the problems leading to the monotonic clock being
> > accused of going backwards are fixed afaics
> amd64, built from todays netbsd-5 sources. 

fixed in -current... This is a candidate for pullup, could
you please try the appended patch from CVS?

best regards
Matthias





-------------------------------------------------------------------
-------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich

Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr. Harald Bolt,
Dr. Sebastian M. Schmidt
-------------------------------------------------------------------
-------------------------------------------------------------------
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

===================================================================
RCS file: /ftp/cvs/cvsroot/src/sys/kern/kern_time.c,v
retrieving revision 1.158
retrieving revision 1.159
diff -u -p -r1.158 -r1.159
--- src/sys/kern/kern_time.c    2009/01/30 23:11:27     1.158
+++ src/sys/kern/kern_time.c    2009/01/31 15:53:36     1.159
@@ -1,4 +1,4 @@
-/*     $NetBSD: kern_time.c,v 1.158 2009/01/30 23:11:27 ad Exp $       */
+/*     $NetBSD: kern_time.c,v 1.159 2009/01/31 15:53:36 yamt Exp $     */
 
 /*-
  * Copyright (c) 2000, 2004, 2005, 2007, 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.158 2009/01/30 23:11:27 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time.c,v 1.159 2009/01/31 15:53:36 yamt Exp 
$");
 
 #include <sys/param.h>
 #include <sys/resourcevar.h>
@@ -132,8 +132,6 @@ static int
 settime1(struct proc *p, const struct timespec *ts, bool check_kauth)
 {
        struct timespec delta, now;
-       struct bintime btdelta;
-       lwp_t *l;
        int s;
 
        /* WHAT DO WE DO ABOUT PENDING REAL-TIME TIMEOUTS??? */
@@ -159,19 +157,6 @@ settime1(struct proc *p, const struct ti
 
        timespecadd(&boottime, &delta, &boottime);
 
-       /*
-        * XXXSMP: There is a short race between setting the time above
-        * and adjusting LWP's run times.  Fixing this properly means
-        * pausing all CPUs while we adjust the clock.
-        */
-       timespec2bintime(&delta, &btdelta);
-       mutex_enter(proc_lock);
-       LIST_FOREACH(l, &alllwp, l_list) {
-               lwp_lock(l);
-               bintime_add(&l->l_stime, &btdelta);
-               lwp_unlock(l);
-       }
-       mutex_exit(proc_lock);
        resettodr();
        splx(s);
 


Home | Main Index | Thread Index | Old Index