diff options
author | tedu <tedu@openbsd.org> | 2014-07-22 22:09:36 +0000 |
---|---|---|
committer | tedu <tedu@openbsd.org> | 2014-07-22 22:09:36 +0000 |
commit | 4d4881ee4ee657fc9fa401cedd962be7d4358227 (patch) | |
tree | c955472bc3cce69cfb368d7865405834157b1dbe /usr.sbin/apmd | |
parent | add 5.7 firmware key (diff) | |
download | wireguard-openbsd-4d4881ee4ee657fc9fa401cedd962be7d4358227.tar.xz wireguard-openbsd-4d4881ee4ee657fc9fa401cedd962be7d4358227.zip |
adjust -C algorithm to be more aggressive in scaling up.
works better for me, and others as well.
Diffstat (limited to 'usr.sbin/apmd')
-rw-r--r-- | usr.sbin/apmd/apmd.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/usr.sbin/apmd/apmd.c b/usr.sbin/apmd/apmd.c index 98dac884414..20e141e4a56 100644 --- a/usr.sbin/apmd/apmd.c +++ b/usr.sbin/apmd/apmd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: apmd.c,v 1.63 2013/11/13 04:50:21 deraadt Exp $ */ +/* $OpenBSD: apmd.c,v 1.64 2014/07/22 22:09:36 tedu Exp $ */ /* * Copyright (c) 1995, 1996 John T. Kohl @@ -65,8 +65,8 @@ int doperf = PERF_NONE; #define PERFDEC 20 #define PERFMIN 0 #define PERFMAX 100 -#define PERFINCTHRES 10 -#define PERFDECTHRES 30 +#define PERFINCTHRES 50 +#define PERFDECTHRES 60 extern char *__progname; @@ -339,9 +339,7 @@ perf_status(struct apm_power_info *pinfo, int ncpu) syslog(LOG_INFO, "cannot read hw.setperf"); if (forcehi || (avg_idle < PERFINCTHRES && perf < PERFMAX)) { - perf += PERFINC; - if (perf > PERFMAX) - perf = PERFMAX; + perf = PERFMAX; setperf(perf); } else if (avg_idle > PERFDECTHRES && perf > PERFMIN) { perf -= PERFDEC; @@ -643,11 +641,12 @@ main(int argc, char *argv[]) sts = ts; if (doperf == PERF_AUTO || doperf == PERF_COOL) { - sts.tv_sec = 1; + sts.tv_sec = 0; + sts.tv_nsec = 200000000; perf_status(&pinfo, ncpu); } - apmtimeout += sts.tv_sec; + apmtimeout += 1; if ((rv = kevent(kq, NULL, 0, ev, 1, &sts)) < 0) break; |