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/