[RFC] Event timers on MIPS

Alexander Motin mav at FreeBSD.org
Sat Jul 17 19:35:49 UTC 2010


Jayachandran C. wrote:
> On XLR we would like to use the count/compare which is faster but less
> accurate on all cpus - we can have upto 32 cpus now.  We also have a
> PIC which can provide a better timestamp and timer interrupts.  This
> PIC timestamp can be read from all CPUs but the timer interrupt can be
> delivered to just one CPU at a time.  I think this is how we ended up
> with the current implementation, but any suggestions on how to improve
> this is welcome.

I would prefer to not mix the things.

I think:
 - PIC timestamp looks like the best candidate for system timecounter.
 - per-CPU counters could be registered as per-CPU timecounters with
set_cputicker() - the main criteria there is a speed.
 - if per-CPU counters are synchronized between CPUs - they could be
registered as alternative timecounter for people who wish fastest
timecounting; if they are not - they are useless in that role.
 - both PIC timer and per-CPU comparators should be independently
registered as eventtimers - it is better to have two of them to from
accounting correctness PoV, and it will allow user to experiment which
one he likes more.
 - if there is any other timer hardware - it also should be registered -
it will give additional flexibility.

PS: I've managed to run MALTA kernel with patch under gxemul. It works,
except time is not going right. But I suppose it is emulator problem, as
original kernel works the same.

-- 
Alexander Motin


More information about the freebsd-mips mailing list