Date: Tue, 5 Feb 2002 09:53:26 -0800 (PST) From: John Polstra <jdp@polstra.com> To: hackers@freebsd.org Cc: phk@critter.freebsd.dk Subject: Re: A question about timecounters Message-ID: <200202051753.g15HrQh04002@vashon.polstra.com> In-Reply-To: <90498.1012930272@critter.freebsd.dk> References: <90498.1012930272@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <90498.1012930272@critter.freebsd.dk>, Poul-Henning Kamp <phk@critter.freebsd.dk> wrote: > In message <200202051723.g15HNH603801@vashon.polstra.com>, John Polstra writes: > > >Agreed. But in the cases I'm worrying about right now, the > >timecounter is the TSC. > > Now, *that* is very interesting, how reproducible is it ? I can reproduce it pretty easily. This is from a PIII/550: web1# uptime 5:23PM up 37 mins, 2 users, load averages: 0.08, 0.05, 0.01 web1# dmesg | grep microuptime microuptime() went backwards (1992.7347381 -> 1991.587620) microuptime() went backwards (1992.7347381 -> 1991.620385) microuptime() went backwards (1992.7347381 -> 1991.621582) microuptime() went backwards (2016.7063298 -> 2015.272466) microuptime() went backwards (2286.7346482 -> 2285.587587) microuptime() went backwards (2286.7346482 -> 2285.593646) microuptime() went backwards (2286.7346482 -> 2285.595103) microuptime() went backwards (2286.7346482 -> 2285.617023) Now, two things are unusual about this system. First, I have it pumping packets from inside the kernel (with a special netgraph node) at a rate which is keeping the system about 95% busy processing interrupts. (That's about 330K packets/second.) That definitely makes it happen more often. But I also see it occasionally when the system is sitting idle. Second, I have HZ set to 10000. I think that also contributes to the problem. It shouldn't, though. Not even a PII/400 breathes hard at HZ=10000. On another system which is mostly idle, I see it about 4 times a day. That system also has HZ set to 10000. It's a PIII/1.13 GHz: microuptime() went backwards (200671.582473 -> 200671.582472) microuptime() went backwards (222622.358518 -> 222622.358517) microuptime() went backwards (228934.897839 -> 228934.897838) microuptime() went backwards (246166.386301 -> 246166.386300) microuptime() went backwards (263484.488575 -> 263484.488574) Notice the difference on this system that's fairly idle. On the other system, it was the seconds going backward. Here it's the microseconds. These may be two entirely different problems. > Can you try to MFC rev 1.111 and see if that changes anything ? Sure. I'll let you know. John -- John Polstra John D. Polstra & Co., Inc. Seattle, Washington USA "Disappointment is a good sign of basic intelligence." -- Chögyam Trungpa To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200202051753.g15HrQh04002>