All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steffen Persvold <sp@scali.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Rickard Westman <rwestman@telia.com>, linux-kernel@vger.kernel.org
Subject: Re: Using kernel_fpu_begin() in device driver - feasible or not?
Date: Thu, 14 Feb 2002 15:20:06 +0100	[thread overview]
Message-ID: <3C6BC796.CC8FB660@scali.com> (raw)
In-Reply-To: <E16bMEO-0008Up-00@the-village.bc.nu>

Alan Cox wrote:
> 
> > 1. Would it be sufficient to just bracket all fpu-using code code by
> > kernel_fpu_begin()/kernel_fpu_end()?  If not, what problems could I
> > run into?
> 
> You can do that providing you dont
> 
> > 2. Would it be OK to go to sleep inside such a region, or should I
> > take care to avoid that?
> 
> You can't sleep in such a region - there is nowhere left to store the
> FPU context
> 
> > 3. Perhaps I should call init_fpu() at some point as well?  If so,
> > should it be done before or after kernel_fpu_begin()?
> 
> After
> 
> > 4. Is there any difference between doing this in the context of a user
> > process (implementation of an ioctl) compared to doing it in a
> > daemonized kernel thread (created by a loadable kernel module)?
> 
> The kernel thread is actually easier, you can happily corrupt its user
> FPU context by sleeping since you are the only FPU user for the thread.
> Not nice, not portable but should work fine on x86 without any of the
> above for the moment.
> 
> You should probably also test the FPU is present and handle it accordingly
> with polite messages not an oops 8)

So are kernel_fpu_begin()/kernel_fpu_end() (and also init_fpu()) necessary in a kernel thread at all
? Does kernel_fpu_begin()/kernel_fpu_end() take care of SSE and MMX registers too (I'm aware of the
extra "emms" needed in the MMX case) ?

Regards,
-- 
  Steffen Persvold   | Scalable Linux Systems |   Try out the world's best
 mailto:sp@scali.com |  http://www.scali.com  | performing MPI implementation:
Tel: (+47) 2262 8950 |   Olaf Helsets vei 6   |      - ScaMPI 1.13.8 -
Fax: (+47) 2262 8951 |   N0621 Oslo, NORWAY   | >320MBytes/s and <4uS latency

      parent reply	other threads:[~2002-02-14 14:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-14  0:11 Using kernel_fpu_begin() in device driver - feasible or not? Rickard Westman
2002-02-14 13:47 ` Alan Cox
2002-02-14 14:18   ` Alan Cox
2002-02-14 14:20   ` Steffen Persvold [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3C6BC796.CC8FB660@scali.com \
    --to=sp@scali.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rwestman@telia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.