[RFC] Event timers on MIPS
Alexander Motin
mav at FreeBSD.org
Sat Jul 17 17:34:10 UTC 2010
M. Warner Losh wrote:
> In message: <4C41A248.8090605 at FreeBSD.org>
> Alexander Motin <mav at FreeBSD.org> writes:
> : I've made a patch, updating MIPS timer code (except RMI) to utilize new
> : MI event timer infrastructure. I've successfully built QEMU and XLR
> : kernels with the patch. Unluckily I can't test how it works, unless
> : somebody teach me how to cook QEMU to run it. I also haven't ported RMI
> : timers drivers, as I am not sure how that hardware is intended to work.
> :
> : Patch for HEAD can be found here:
> : http://people.freebsd.org/~mav/timers_mips.patch
>
> I'll have to take a look at things. On MIPS, the COMPARE register is
> per core, so you don't need to send an IPI if you are using that
> hardware. IPIs are a little expensive, IIRC, since they tend to have
> bad cache effects and put extra pressure on the TLBs.
>
> It wasn't clear from these patches if you are using one core to do the
> signalling for all the others or not. If so, that represents a bit of
> a regression. I'm also not sure about not having a per-cpu timer's
> effect on performance on a 16 or 32 core MIPS box...
I am registering event timer as per-CPU:
+ sc->et.et_flags = ET_FLAGS_PERIODIC | ET_FLAGS_ONESHOT |
+ ET_FLAGS_PERCPU;
Clock IPI's added only for completeness, in case there will be supported
any other non-per-CPU timers, like mentioned PIC clock on XLR.
Thanks.
--
Alexander Motin
More information about the freebsd-mips
mailing list