Re: FP in kernelspace

From: Arjan van de Ven
Date: Sun Jul 30 2006 - 11:18:49 EST

On Sun, 2006-07-30 at 17:08 +0159, Jiri Slaby wrote:
> Arjan van de Ven wrote:
> >>> So 2 questions are:
> >>> 1) howto FP in kernel
> >>>
> >> kernel_fpu_begin();
> >> c = d * 3.14;
> >> kernel_fpu_end();
> Yup, I know about this possibility, but this is only x86 specific?!
> > unfortunately this only works for MMX not for real fpu (due to exception
> > handling uglies)
> concludes it's not multiplatform at all... For that reasen I (maybe) want some
> "protocol" for communication with US, where I can easily compute it.]

easiest might be a shared mmap ring buffer (well 2 of these actually),
kernel puts data in buffer, updates ring pointer (and wakes userspace if
needed). Userspace notices data in ring, does math, puts data back in
the 2nd ringbuffer and updates that ring pointer. Then maybe does a
syscall to 'wake' the kernel. Kernel then sees data in the 2nd
ringbuffer and gets it. In addition to the wakeups I mentioned you can
also poll for the buffers; the wakeups are just there for extra safety.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at