From owner-freebsd-current@freebsd.org Fri Jan 13 12:05:41 2017 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0B847CAC838 for ; Fri, 13 Jan 2017 12:05:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A92821B93 for ; Fri, 13 Jan 2017 12:05:40 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v0DC5YNE092180 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 13 Jan 2017 14:05:35 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v0DC5YNE092180 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v0DC5YfY092178; Fri, 13 Jan 2017 14:05:34 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 13 Jan 2017 14:05:34 +0200 From: Konstantin Belousov To: Jia-Shiun Li Cc: freebsd-current Subject: Re: TSC as timecounter makes system lag Message-ID: <20170113120534.GC2349@kib.kiev.ua> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.7.2 (2016-11-26) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2017 12:05:41 -0000 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. > > 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 > > Features2=0xc00e39d > AMD Features=0x20100800 > AMD Features2=0x1 > 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.