public inbox for linux-newbie@vger.kernel.org
 help / color / mirror / Atom feed
* Floating point in kernel
@ 2007-04-24  8:37 Daniel Rodrick
  2007-04-24 10:42 ` Erik Mouw
  0 siblings, 1 reply; 2+ messages in thread
From: Daniel Rodrick @ 2007-04-24  8:37 UTC (permalink / raw)
  To: Kernel Newbies, Linux Newbie

Hello,

I've always read that although it isn't completely forbidden, but
kernel code shouldn't use floating point arithmetic. It is not
recommended, but surely looks possible.

So just for curosity purposes (and without getting into the debate of
"You shouldn't be doing this..."), can some one point me a working
example / code on how to use floating point in kernel?

Also FP arithmatic is not recommended because the code will need to
manually save and restore FPU registers in the event of context
switch, right? But how about in atomic context? Is it safe to use FP
arithmetic ONLY in atomic context (intr and preemption disabled)?

Thanks,

Dan
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Floating point in kernel
  2007-04-24  8:37 Floating point in kernel Daniel Rodrick
@ 2007-04-24 10:42 ` Erik Mouw
  0 siblings, 0 replies; 2+ messages in thread
From: Erik Mouw @ 2007-04-24 10:42 UTC (permalink / raw)
  To: Daniel Rodrick; +Cc: Kernel Newbies, Linux Newbie

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Tue, Apr 24, 2007 at 02:07:38PM +0530, Daniel Rodrick wrote:
> I've always read that although it isn't completely forbidden, but
> kernel code shouldn't use floating point arithmetic. It is not
> recommended, but surely looks possible.
> 
> So just for curosity purposes (and without getting into the debate of
> "You shouldn't be doing this..."), can some one point me a working
> example / code on how to use floating point in kernel?

There is no FP use in the kernel. The only thing that comes close is
the use of MMX/SSE/multimedia-instructions-du-jour in the software raid
subsystem (MMX etc. share the register set with FP).

> Also FP arithmatic is not recommended because the code will need to
> manually save and restore FPU registers in the event of context
> switch, right?

Yes, and that's what makes it so expensive to use. You can see it when
the kernel initialises raid5: even though MMX XOR has a larger
throughput than "normal" instructions, the kernel sometimes chooses the
normal instructions because the latency is so much lower.

> But how about in atomic context? Is it safe to use FP
> arithmetic ONLY in atomic context (intr and preemption disabled)?

Even in an atomic context you still need to save the FP state. See what
happens:

  userspace does something with FP
  interrupt
    enter atomic context
    mess with FP
    leave atomic context
  return from interrupt
  userspace finds FP in a different state than before


Erik

- -- 
They're all fools. Don't worry. Darwin may be slow, but he'll
eventually get them. -- Matthew Lammers in alt.sysadmin.recovery
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGLd8Q/PlVHJtIto0RAiAKAJ9vf/vRM+iLYMP9Oq9YuWslb3+kyACeNaID
QDIu/HuIiuEqbMGULc/7GfI=
=N38R
-----END PGP SIGNATURE-----
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-04-24 10:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-24  8:37 Floating point in kernel Daniel Rodrick
2007-04-24 10:42 ` Erik Mouw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox