pag-allocation-dont-throttle-when-time-reverses-20080104
authorDerrick Brashear <shadow@dementia.org>
Fri, 4 Jan 2008 18:37:28 +0000 (18:37 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 4 Jan 2008 18:37:28 +0000 (18:37 +0000)
LICENSE IPL10
avoid pag allocation throttling when time is set back by e.g. ntpd to avoid starving everyone.

src/afs/afs_osi_pag.c

index b65e370..37a9792 100644 (file)
@@ -145,6 +145,7 @@ getpag(void)
  */
 
 static int afs_pag_sleepcnt = 0;
+static int afs_pag_timewarn = 0;
 
 static int
 afs_pag_sleep(struct AFS_UCRED **acred)
@@ -155,6 +156,13 @@ afs_pag_sleep(struct AFS_UCRED **acred)
        if(osi_Time() - pag_epoch < pagCounter) {
            rv = 1;
        }
+       if (rv && (osi_Time() < pag_epoch)) {
+           if (!afs_pag_timewarn) {
+               afs_pag_timewarn = 1;
+               printf("clock went backwards, not PAG throttling");
+           }
+           rv = 0;
+       }
     }
 
     return rv;