Re: Kernel Development & Objective-C

Avi Kivity
2007-12-03T05:15:07Z

Andi Kleen wrote:
> Avi Kivity <avi@argo.co.il> writes:
>
>> [I really doubt there are that many of these; syscall
>> entry/dispatch/exit, interrupt dispatch, context switch, what else?]
>>
>
> Networking, block IO, page fault, ... But only the fast paths in these
> cases. A lot of the kernel is slow path code and could probably
> be written even in an interpreted language without much trouble.
>
>

Even these (with the exception of the page fault path) are hardly "we
care about a single instruction" material suggested above. Even with a
million packets per second per core (does such a setup actually exist?)
You have a few thousand cycles per packet. For block you'd need around
5,000 disks per core to reach such rates.

The real benefits aren't in keeping close to the metal, but in high
level optimizations. Ironically, these are easier when the code is a
little more abstracted. You can add quite a lot of instructions if it
allows you not to do some of the I/O at all.