Re: Floating point usage inside kernel
From: Nuno Santos
Date: Fri Nov 25 2011 - 11:16:31 EST
Hi Jiri,
Thanks for your reply.
The algorithm is a matrix transform computation to make a affine a
geometric transform.
Basicly it is based on the following functions:
http://pastebin.com/YHzYuLPU
Curiously I ran a test before writing this email and guest what.... is
working!! :)
But now that I have opened this question here I should ask... is it safe?
This is the call to the function i'm making in kernel side (most of the
computation are made in userspace during a calibration and only
calculated data goest back to kernel. Then, in runtime inside the driver
I need to call this function:
mx3d_transform(src, zone->Matrix, tex);
Which is defined in the pastebin above.
And the input data is the following:
src[0] = [0,6300]; src[1] = [0,6300]; src[2] = 1.0;
zone->Matrix (double[3][3])
u: 492.188 v: 615.234 sx: 683.158 sy: 5790.13
u: 5807.81 v: 615.234 sx: 5944.9 sy: 5900.58
u: 5807.81 v: 5684.77 sx: 6027.46 sy: 560.337
u: 492.188 v: 5684.77 sx: 751.198 sy: 476.455
and tex is output (double[3])
I'm not protecting the call to the function with kernel_fpu_begin and
kernel_fpu_end
Should I be happy with the results or should I be concerned in
converting this function only to integer?
I hope I have been clear in my language.
Thanks,
With my best regards,
Nuno
On 11/25/2011 12:08 PM, Jiri Slaby wrote:
On 11/25/2011 12:14 PM, Nuno Santos wrote:
Doing a grep -r kernel_fpu_begin * on kernel source dir I can find
several references to this functions but not them is included in the
include dir. Which include do I need to have this functions found in
compile time?
It is defined in arch specific includes. For x86 in asm/i387.h (in
arch/x86/include).
Am I even sailing in the right direction?
You should generally not use that anyway. It's not portable and disables
preemption.
Can't you do the computations in userspace? And why it cannot be
switched to integer types -- what algorithm is that? Some math function?
reagards,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/