tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Per-CPU Unit (PCU) interface



On Mon, Jan 24, 2011 at 03:27:58PM +0000, Mindaugas Rasiukevicius wrote:
> While looking at the bugs on still work-in-progress mips64 FPU code on
> Matt's branch, it occurred to me that we could abstract SMP handling
> complexity into MI interface.  Basically, all architectures are using
> similar logic for FPU handling on SMP, but each have own variations,
> confusions, and therefore each fall into the bugs.  Hence, PCU:

I can't make up my mind if this is a complication or proper abstraction.

Assuming it is only used for lazy FPU saving and an arch does not have
other PCU needs, it overall does not save a lot of work. On the other
hand it does not allow MD optimiziations (obvious example are the fpu
handling IPIs on sparc64 where we do not bother to create a full C runtime
environment in the IPI handler).

> - There can be multiple PCUs, so this can be re-used not only for FPU,
> but any similar MD functionality, e.g. PowerPC AltiVec.

Are there other examples of this?

> - Once there is MI IPI support, it is ~trivial to convert the code to
> use them by: 1) splsoftclock() -> splhigh() 2) replacing xc_unicast()
> calls with cpu_send_ipi() and moving them *before* splx().

I can not parse this paragraph - and what "MI IPI support" are you talking
about? How does it differ form xcall(9)?

Martin


Home | Main Index | Thread Index | Old Index