Date: Sun, 15 Jan 2017 22:20:09 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Jia-Shiun Li <jiashiun@gmail.com> Cc: freebsd-current <freebsd-current@freebsd.org> Subject: Re: TSC as timecounter makes system lag Message-ID: <20170115202008.GL2349@kib.kiev.ua> In-Reply-To: <CAHNYxxNN3p4KGvAnQ0aYUFmucGBKKj4JWgATNYZS2n0WTMY78g@mail.gmail.com> References: <CAHNYxxPy4K37jKzw0%2Bs_AX8ha9yeB_S3dK46s4EuXjdNbULCmQ@mail.gmail.com> <20170113120534.GC2349@kib.kiev.ua> <CAHNYxxNN3p4KGvAnQ0aYUFmucGBKKj4JWgATNYZS2n0WTMY78g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jan 15, 2017 at 10:35:26PM +0800, Jia-Shiun Li wrote: > Sorry just saw this. Bad Gmail. > > > On Fri, Jan 13, 2017 at 8:05 PM, Konstantin Belousov <kostikbel@gmail.com> > wrote: > > > On Fri, Jan 13, 2017 at 08:26:04AM +0800, Jia-Shiun Li wrote: > > > Hi all, > > > > > > since 2 or 3 weeks ago, I noticed that my old Penryn-based Intel Pentium > > > T4200 notebook lagged a lot. System time was running a lot slower, > > > sometimes even looked like it freezed. Keystroke repeat rate was slow > > too. > > > > > > Since system time is slow, I tried to change timecounter from default TSC > > > to HPET. And it resumed normal immediately. > > Please show the output of sysctl kern.timecounter and kern.eventtimer. > > I suspect that you changed eventtimer and not timecounter. > > > > Files attached. I changed it by "sysctl kern.timecounter.hardware=HPET" > > > > The same world binary works fine on other Ivybridge and Haswell desktops, > > > so I assume this may be related to CPU or mainboard generations. > > > > > > version is > > > > > > FreeBSD jsli-nb 12.0-CURRENT FreeBSD 12.0-CURRENT #0 r311687: Mon Jan 9 > > > 04:07:27 CST 2017 > > > jsli@4cbsd:/personal/freebsd/obj/x64/personal/freebsd/ > > fbsdsrc/sys/MINIMAL-NODEBUG > > > amd64 > > > > > > and CPU is > > > > > > CPU: Pentium(R) Dual-Core CPU T4200 @ 2.00GHz (1995.04-MHz > > K8-class > > > CPU) > > > Origin="GenuineIntel" Id=0x1067a Family=0x6 Model=0x17 Stepping=10 > > > > > > Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8, > > APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI, > > MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> > > > > > > Features2=0xc00e39d<SSE3,DTES64,MON,DS_CPL,EST,TM2, > > SSSE3,CX16,xTPR,PDCM,XSAVE,OSXSAVE> > > > AMD Features=0x20100800<SYSCALL,NX,LM> > > > AMD Features2=0x1<LAHF> > > > TSC: P-state invariant, performance statistics > > > > > > Tested similar OS rev on another Intel Core 2 Duo E7400 Wolfdale (the > > same > > > generation as the Pentium T4200). The same lag also happens on it. > > > > > > BTW on both system, cpuX:timer interrupts do not fire at all and count > > > remains 0. > > It is known that LAPIC is shut down in C2 and deeper CPU sleep states on > > Core2. FreeBSD 11 (and HEAD) started using MWAIT and requesting deep > > wait states from BIOS. If the configuration uses LAPIC and deep sleeps > > are enabled, eventtimers do not work reliably. > > > > > Default configuration should strongly prefer HPET eventtimer over LAPIC for > > machines which do not have LAPIC armed in Cx states, see r309189. If you > > do not have any customizations of eventtimer selection, then please provide > > verbose dmesg from your boot. > > > > If you prefer to not use deep Cx and MWAIT, set loader tunable > > debug.acpi.disabled to include word "mwait", see acpi(4). You can check > > that this worked by looking at sysctl dev.cpu.N output. > > > > Thanks for the explanation. Looks eventtimer favored HPET over LAPIC > like you described on this notebook. I still do not understand. Is the sysctl output below from the pristine boot where no timecounter/eventtimer reconfiguration were done ? Show me exact command which you used to revive the machine. Do not describe it by words, copy/paste from the console. > > -Jia-Shiun. > kern.eventtimer.periodic: 0 > kern.eventtimer.timer: HPET > kern.eventtimer.idletick: 0 > kern.eventtimer.singlemul: 2 > kern.eventtimer.choice: HPET(450) HPET1(440) HPET2(440) HPET3(440) LAPIC(100) i8254(100) RTC(0) > kern.eventtimer.et.i8254.quality: 100 > kern.eventtimer.et.i8254.frequency: 1193182 > kern.eventtimer.et.i8254.flags: 1 > kern.eventtimer.et.HPET3.quality: 440 > kern.eventtimer.et.HPET3.frequency: 14318180 > kern.eventtimer.et.HPET3.flags: 3 > kern.eventtimer.et.HPET2.quality: 440 > kern.eventtimer.et.HPET2.frequency: 14318180 > kern.eventtimer.et.HPET2.flags: 3 > kern.eventtimer.et.HPET1.quality: 440 > kern.eventtimer.et.HPET1.frequency: 14318180 > kern.eventtimer.et.HPET1.flags: 3 > kern.eventtimer.et.HPET.quality: 450 > kern.eventtimer.et.HPET.frequency: 14318180 > kern.eventtimer.et.HPET.flags: 3 > kern.eventtimer.et.RTC.quality: 0 > kern.eventtimer.et.RTC.frequency: 32768 > kern.eventtimer.et.RTC.flags: 17 > kern.eventtimer.et.LAPIC.quality: 100 > kern.eventtimer.et.LAPIC.frequency: 0 > kern.eventtimer.et.LAPIC.flags: 15 > kern.timecounter.tsc_shift: 1 > kern.timecounter.smp_tsc_adjust: 0 > kern.timecounter.smp_tsc: 1 > kern.timecounter.invariant_tsc: 1 > kern.timecounter.fast_gettime: 1 > kern.timecounter.tick: 1 > kern.timecounter.choice: ACPI-fast(900) i8254(0) HPET(950) TSC(1000) dummy(-1000000) > kern.timecounter.hardware: TSC > kern.timecounter.alloweddeviation: 5 > kern.timecounter.stepwarnings: 0 > kern.timecounter.tc.ACPI-fast.quality: 900 > kern.timecounter.tc.ACPI-fast.frequency: 3579545 > kern.timecounter.tc.ACPI-fast.counter: 79078 > kern.timecounter.tc.ACPI-fast.mask: 16777215 > kern.timecounter.tc.i8254.quality: 0 > kern.timecounter.tc.i8254.frequency: 1193182 > kern.timecounter.tc.i8254.counter: 55592 > kern.timecounter.tc.i8254.mask: 65535 > kern.timecounter.tc.HPET.quality: 950 > kern.timecounter.tc.HPET.frequency: 14318180 > kern.timecounter.tc.HPET.counter: 1931486323 > kern.timecounter.tc.HPET.mask: 4294967295 > kern.timecounter.tc.TSC.quality: 1000 > kern.timecounter.tc.TSC.frequency: 1995044550 > kern.timecounter.tc.TSC.counter: 2329785074 > kern.timecounter.tc.TSC.mask: 4294967295 > Copyright (c) 1992-2017 The FreeBSD Project. > Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 > The Regents of the University of California. All rights reserved. > FreeBSD is a registered trademark of The FreeBSD Foundation. > FreeBSD 12.0-CURRENT #0 r311687: Mon Jan 9 04:07:27 CST 2017 > jsli@4cbsd:/personal/freebsd/obj/x64/personal/freebsd/fbsdsrc/sys/MINIMAL-NODEBUG amd64 > FreeBSD clang version 3.9.1 (tags/RELEASE_391/final 289601) (based on LLVM 3.9.1) > VT(vga): resolution 640x480 > CPU: Pentium(R) Dual-Core CPU T4200 @ 2.00GHz (1995.04-MHz K8-class CPU) > Origin="GenuineIntel" Id=0x1067a Family=0x6 Model=0x17 Stepping=10 > Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> > Features2=0xc00e39d<SSE3,DTES64,MON,DS_CPL,EST,TM2,SSSE3,CX16,xTPR,PDCM,XSAVE,OSXSAVE> > AMD Features=0x20100800<SYSCALL,NX,LM> > AMD Features2=0x1<LAHF> > TSC: P-state invariant, performance statistics > real memory = 4294967296 (4096 MB) > avail memory = 4088070144 (3898 MB) > Event timer "LAPIC" quality 100 > ACPI APIC Table: <ACRSYS ACRPRDCT> > FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs > FreeBSD/SMP: 1 package(s) x 2 core(s) > random: unblocking device. > ioapic0: Changing APIC ID to 4 > ioapic0 <Version 2.0> irqs 0-23 on motherboard > SMP: AP CPU #1 Launched! This is not a verbose dmesg.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170115202008.GL2349>