Re: Floating point in kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

[Index of Archives]     [Audio]     [Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux