Date: Mon, 21 Jun 2010 22:14:58 +0200 From: Pawel Worach <pawel.worach@gmail.com> To: Kostik Belousov <kostikbel@gmail.com> Cc: svn-src-head@freebsd.org, Alexander Motin <mav@freebsd.org>, src-committers@freebsd.org, svn-src-all@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: <6067180F-87EB-4569-A4DE-7150A3CC074F@gmail.com> In-Reply-To: <20100621195838.GJ13238@deviant.kiev.zoral.com.ua> References: <201006202133.o5KLXTG1023067@svn.freebsd.org> <20100621195838.GJ13238@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jun 21, 2010, at 21:58, Kostik Belousov wrote: > 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 = machine >> independent code and for operating them to supply kernel with = hardclock(), >> statclock() and profclock() events in unified fashion on various = hardware. >>=20 >> Infrastructure provides support for both per-CPU (independent for = every CPU >> core) and global timers in periodic and one-shot modes. MI = management code >> at this moment uses only periodic mode, but one-shot mode use = planned for >> later, as part of tickless kernel project. >>=20 >> For this moment infrastructure used on i386 and amd64 architectures. = Other >> 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 = precise. >> 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 also >> 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 = orders, >> either LAPIC, HPETs, i8254, RTC or HPETs, LAPIC, i8254, RTC. >> User may explicitly specify wanted timers via loader tunables or = sysctls: >> 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 = values, >> set during initial setup. >=20 > 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. >=20 > Setting kern.eventtimer.timer1 to LAPIC or i8254, and timer2 to NONE > does not help. ps. level-triggered hpet is implemented in QEMU git. --=20 Pawel=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6067180F-87EB-4569-A4DE-7150A3CC074F>