Date: Mon, 21 Jun 2010 22:58:38 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Alexander Motin <mav@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r209371 - in head/sys: amd64/amd64 amd64/include conf dev/acpica i386/i386 i386/include isa kern pc98/cbus sys x86/isa x86/x86 Message-ID: <20100621195838.GJ13238@deviant.kiev.zoral.com.ua> In-Reply-To: <201006202133.o5KLXTG1023067@svn.freebsd.org> References: <201006202133.o5KLXTG1023067@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--neJKo2vCRXM/Q6OJ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Jun 20, 2010 at 09:33:29PM +0000, Alexander Motin wrote: > Author: mav > Date: Sun Jun 20 21:33:29 2010 > New Revision: 209371 > URL: http://svn.freebsd.org/changeset/base/209371 >=20 > Log: > Implement new event timers infrastructure. It provides unified APIs for > writing event timer drivers, for choosing best possible drivers by mach= ine > independent code and for operating them to supply kernel with hardclock= (), > statclock() and profclock() events in unified fashion on various hardwa= re. > =20 > Infrastructure provides support for both per-CPU (independent for every= CPU > core) and global timers in periodic and one-shot modes. MI management c= ode > at this moment uses only periodic mode, but one-shot mode use planned f= or > later, as part of tickless kernel project. > =20 > For this moment infrastructure used on i386 and amd64 architectures. Ot= her > archs are welcome to follow, while their current operation should not be > affected. > =20 > This patch updates existing drivers (i8254, RTC and LAPIC) for the new > order, and adds event timers support into the HPET driver. These drivers > have different capabilities: > LAPIC - per-CPU timer, supports periodic and one-shot operation, may > freeze in C3 state, calibrated on first use, so may be not exactly prec= ise. > HPET - depending on hardware can work as per-CPU or global, supports > periodic and one-shot operation, usually provides several event timers. > i8254 - global, limited to periodic mode, because same hardware used a= lso > as time counter. > RTC - global, supports only periodic mode, set of frequencies in Hz > limited by powers of 2. > =20 > Depending on hardware capabilities, drivers preferred in following orde= rs, > either LAPIC, HPETs, i8254, RTC or HPETs, LAPIC, i8254, RTC. > User may explicitly specify wanted timers via loader tunables or sysctl= s: > kern.eventtimer.timer1 and kern.eventtimer.timer2. > If requested driver is unavailable or unoperational, system will try to > replace it. If no more timers available or "NONE" specified for second, > system will operate using only one timer, multiplying it's frequency by= few > times and uing respective dividers to honor hz, stathz and profhz value= s, > set during initial setup. This broke QEMU for me. I cannot boot FreeBSD guest under QEMU anymore. QEMU (not FreeBSD kernel) panics with qemu: level-triggered hpet not supported message. Setting kern.eventtimer.timer1 to LAPIC or i8254, and timer2 to NONE does not help. --neJKo2vCRXM/Q6OJ Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkwfxG0ACgkQC3+MBN1Mb4hHEQCfWHF4dTQkvOcSoS1enVTHk5cS VIUAoI5bq1jdivwiGQOrJ1UXMS/gv+rF =de4L -----END PGP SIGNATURE----- --neJKo2vCRXM/Q6OJ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100621195838.GJ13238>