All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heikki Lindholm <holindho@domain.hid>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-core] [rfc] unit testing context switches.
Date: Sun, 04 Jun 2006 21:19:42 +0300	[thread overview]
Message-ID: <4483243E.4050801@domain.hid> (raw)
In-Reply-To: <17539.7418.750870.735149@domain.hid>

Gilles Chanteperdrix kirjoitti:
> Heikki Lindholm wrote:
>  > Gilles Chanteperdrix kirjoitti:
>  > > Heikki Lindholm wrote:
>  > >  > Yes, Altivec is separate from the FPU. Hopefully nobody uses FPU in the 
>  > >  > kernel - AFAIK currently not, but you never know about closed-source 
>  > >  > drivers and such. Whereas, Altivec, I think, is something that should, 
>  > >  > eventually, be supported by the real-time domain, too. Adding Altivec 
>  > >  > support is very similar to the existing fpu support, and being that it 
>  > >  > has to tackle the kernel-using-altivec issue anyway, it's probably nicer 
>  > >  > to add fpu kernel support as well. Only problem is that it will increase 
>  > >  > the context switch time. 
>  > > 
>  > > Maybe we could add an XNSIMD flag for Altivec and SSE, distinct from
>  > > XNFPU, so that only the task that really use SIMD instructions would pay
>  > > the price of the switch ?
>  > 
>  > Sounds like a plan to me.
> 
> Actually that is a bad idea on x86, because the fxsave instruction that
> saves the whole FP context, including SSE registers, is faster than the
> fsave instruction that only save the regular FP registers. We are
> discussing about operations that take around 500 ns on a 1GHz PIII with
> cold cache.

If the SSE saving instruction is faster and the hit basically goes to 
the rt-app that uses SSE, why is it a bad idea (other than being slow)? 
Who cares if there's an extraneous FPU save?

> I would be curious to know how many cycles the FP and altivec registers
> save take on power pc.

Well, FPU is 32 64-bit registers and AltiVec is 32 128-bit registers. 
Each load/store needs a separate instruction, which is usually just one 
cycle, but compared to "normal" context switch, FPU is about 2x and 
AltiVec about 4x. So, with both enabled, context switch would total 
around 7 times the normal time. Some savings might be possible by 
enforcing usage of VRSAVE register (tells which regs are actually used), 
but Linux doesn't use that and I'm not sure if gcc supports that either.

-- hl


  reply	other threads:[~2006-06-04 18:19 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-02 20:20 [Xenomai-core] [rfc] unit testing context switches Gilles Chanteperdrix
2006-06-02 23:50 ` Jim Cromie
2006-06-03  7:13 ` Heikki Lindholm
2006-06-03 16:46   ` Gilles Chanteperdrix
2006-06-03 17:26     ` Gilles Chanteperdrix
2006-06-03 20:16       ` Heikki Lindholm
2006-06-04 12:58         ` Gilles Chanteperdrix
2006-06-04 13:47           ` Heikki Lindholm
2006-06-04 17:48             ` Gilles Chanteperdrix
2006-06-04 18:19               ` Heikki Lindholm [this message]
2006-06-03  8:04 ` Jan Kiszka
2006-06-07 18:00 ` Gilles Chanteperdrix
2006-06-07 18:25   ` Jan Kiszka
2006-06-07 18:30   ` Philippe Gerum
2006-06-07 18:42   ` Jan Kiszka
2006-06-08 12:28     ` Gilles Chanteperdrix
2006-06-08 17:35       ` Heikki Lindholm
2006-06-08 18:42         ` Gilles Chanteperdrix
2006-06-08 19:27           ` Heikki Lindholm
2006-06-08 20:44             ` Gilles Chanteperdrix

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=4483243E.4050801@domain.hid \
    --to=holindho@domain.hid \
    --cc=gilles.chanteperdrix@xenomai.org \
    --cc=xenomai@xenomai.org \
    /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.