Skip site navigation (1)Skip section navigation (2)
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>