Date: Mon, 24 May 2010 19:33:11 +0300 From: Andriy Gapon <avg@freebsd.org> To: Alexander Motin <mav@freebsd.org> Cc: freebsd-arch@freebsd.org Subject: Re: Event timers Message-ID: <4BFAAA47.5060802@freebsd.org> In-Reply-To: <4BFAA1F3.1070206@FreeBSD.org> References: <4BFAA1F3.1070206@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
on 24/05/2010 18:57 Alexander Motin said the following: > I have defined several points on that way: > 1*. clean low-level timer drivers from unrelated stuff, > 2*. make some common code machine-independent, > 3. write common driver API for event timers (alike to one we have now > for time counters) to make adding more drivers possible, > 4. add support for HPET as event timer in addition to time counter, > 5. add support for timers in one-shot mode (LAPIC and HPET). Alexander, I wonder how much you have progressed for 3,4,5. I have some low level code for 4. Some additional things that could be useful: a. It would be nice to replace special handling of NULL as interrupt arg with something more convenient. Right now if interrupt arg is NULL then a pointer to an interrupted frame is passed to interrupt handler. This is used by clock interrupt handlers. It would be good to be able to pass both frame pointer and some context to handler. jhb suggested that frame pointer could be passed via struct thread. b. On some x86 systems it is possible to broadcast APIC interrupts to all CPUs by using broadcast ID (0xFF) instead of a specific CPU ID. This could be used to avoid IPI overhead. I have some code for b. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BFAAA47.5060802>