Floating point usage inside kernel
From: Nuno Santos
Date: Fri Nov 25 2011 - 06:22:28 EST
Hi,
This question has probably bean discussed for several times in this list
but the information I found googling around is inconclusive to me.
I'm implementing a kernel input driver and I have successfully achieved
my goal for at least 75%.
Since I understand that kernel floating point usage is discouraged I
have converted most of my code to use integers. I knew that kernel
floating point usage was already discouraged in Windows but could be
done by saving floating point unit state.
However, there is a small part of my code that really needs floating
point calculations and it's conversion to integer is not being trivial.
Since that part of the code is not done intensively and since I have
already found information that leads me to believe that the same is
possible, that is, saving fpu state and successfully achieve floating
point calculation on kernel.
I found this article on the internet which deeply explains fpu usage in
kernel:
http://www.linuxsmiths.com/blog/?p=253
As a conclusion, the article says that if we need to use floating point
calculations in kernel, it is possible if we keep the state of the fpu
unit with the following calls:
*/kernel_fpu_begin()
/**/kernel_fpu_end()
We also need to use the compiler flag -mhard-float
But when I compile I get:
error: implicit declaration of function ‘kernel_fpu_begin’
[-Werror=implicit-function-declaration]
error: implicit declaration of function ‘kernel_fpu_end’
[-Werror=implicit-function-declaration]
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?
Am I even sailing in the right direction? Is this really possible or am
I wasting my time?
I'm new to kernel programming and this is not a trivial issue for me. I
hope you understand.
Thanks,
With my best regards,
Nuno Santos
/*
--
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/