public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Philippe Gerum <rpm@xenomai.org>
To: karim@opersys.com
Cc: Pavel Machek <pavel@ucw.cz>,
	linux-kernel@vger.kernel.org,
	Kristian Benoit <kbenoit@opersys.com>
Subject: Re: [PATCH 1/2] I-pipe: Core implementation
Date: Tue, 21 Jun 2005 15:56:29 +0200	[thread overview]
Message-ID: <42B81C8D.3050608@xenomai.org> (raw)
In-Reply-To: <42B817AF.5040700@opersys.com>

Karim Yaghmour wrote:
> Philippe Gerum wrote:
> 
>>Any objection to make the pipeline a static-only feature?
> 
> 
> FWIW, we conducted our tests with the I-pipe loaded as a module.
> Though we didn't publish that particular result as part of our
> earlier posting, we found that the price for having it loaded,
> but unused, versus not having it loaded at all made virtually
> no difference on overall system overhead. Such results would
> seem to indicate that having it as a loadable module has no
> specific advantage. Note, though, that we didn't do the test on
> all configs, just the "plain" one.
> 
> Of course the issue would be much easier to decide if you
> could provide a brief explanation as to what the difference is, in
> terms of execution path, between having it compilled as a module
> and not loaded, versus having it built-in and unused.

Having it built statically but unused by any other domain but Linux is 
basically like having local_irq_disable() and friends as out-of-line 
code, still with real hw masking, but with all interrupts going through 
the I-pipe's interrupt handler before being dispatched to the regular 
Linux handler.

OTOH, having the I-pipe as an unloaded module leaves the original 
interrupt path untouched (at least on x86), but requires a boolean check 
into each stall/unstall/test operations, and a few more (~4) in the 
interrupt path just to make sure that we are operating in real or 
virtual (i.e. pipelined) mode, IOW to check if the pipelining engine is 
engaged or not, and further decide if we should use the CPU or I-pipe 
masking ops. The other solution would have been to play the function 
pointer game in order to reach the pipelined/non-pipelined operations 
depending on the box being i-piped or not, but I was unsure of the 
impact on performances.

-- 

Philippe.

  reply	other threads:[~2005-06-21 14:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-17 23:21 [PATCH 1/2] I-pipe: Core implementation Philippe Gerum
2005-06-18 17:01 ` Pavel Machek
2005-06-20 20:29   ` Philippe Gerum
2005-06-20 22:47     ` Karim Yaghmour
2005-06-21  7:15       ` Philippe Gerum
2005-06-21 13:35         ` Karim Yaghmour
2005-06-21 13:56           ` Philippe Gerum [this message]
2005-06-20 20:32   ` Valdis.Kletnieks

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=42B81C8D.3050608@xenomai.org \
    --to=rpm@xenomai.org \
    --cc=karim@opersys.com \
    --cc=kbenoit@opersys.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@ucw.cz \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox