All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@domain.hid>
To: rpm@xenomai.org
Cc: xenomai-core <xenomai@xenomai.org>
Subject: Re: [Xenomai-core] [PATCH] optimise syscall mux-code calculation
Date: Sat, 15 Jul 2006 10:06:01 +0200	[thread overview]
Message-ID: <44B8A1E9.7080004@domain.hid> (raw)
In-Reply-To: <1152930271.5027.69.camel@domain.hid>

[-- Attachment #1: Type: text/plain, Size: 3273 bytes --]

Philippe Gerum wrote:
> On Thu, 2006-07-13 at 13:13 +0200, Jan Kiszka wrote:
>> Hi,
>>
>> some may recall the "micro-optimisation" thread I once started. Here is
>> now a simple approach to deal with the yet suboptimal mux-code
>> calculation in user-space. Code saving:
>>
>> Before:
>>    text    data     bss     dec     hex filename
>>   18004     476       8   18488    4838 native/.libs/libnative.so
>>   27445     696       4   28145    6df1 posix/.libs/libpthread_rt.so
>>
>> After:
>>    text    data     bss     dec     hex filename
>>   17172     476       8   17656    44f8 native/.libs/libnative.so
>>   26805     696       4   27505    6b71 posix/.libs/libpthread_rt.so
>>
>> Of course, this also results in a few ops less being executed on each
>> Xenomai syscall invocation (not many cycles, though).
>>
>> Tested without problems on x86 so far.
>>
> 
> This is post 2.2 stuff since we need to check this critical change
> against each and every supported arch. 

Agree, there is no need to hurry in 2.2.

> Since this breaks the ABI
> including the ascending compatibility between old apps and new kernel
> support, this won't make it during the v2 series either.

The ABI chance just took place due to my laziness - I didn't want to
touch every skin library. Anyway, this ABI breakage can be avoided with
slightly more effort, i.e. by doing the shift in user-space during the
binding.

> 
>> Jan
>> plain text document attachment (optimise-muxcode-calculation.patch)
>> ---
>>  include/asm-arm/syscall.h      |   25 +++++++++++++------------
>>  include/asm-blackfin/syscall.h |    4 +++-
>>  include/asm-i386/syscall.h     |    3 ++-
>>  include/asm-ia64/syscall.h     |   23 ++++++++++++-----------
>>  include/asm-powerpc/syscall.h  |    3 ++-
>>  ksrc/nucleus/shadow.c          |    3 ++-
>>  6 files changed, 34 insertions(+), 27 deletions(-)
>>
>> Index: xenomai/include/asm-arm/syscall.h
>> ===================================================================
>> --- xenomai.orig/include/asm-arm/syscall.h
>> +++ xenomai/include/asm-arm/syscall.h
>> @@ -26,6 +26,7 @@
>>  #include <asm-generic/xenomai/syscall.h>
>>  
>>  #define __xn_mux_code(id,op)    ((op << 24)|((id << 16) & 0xff0000)|(__xn_sys_mux & 0xffff))
>> +#define __xn_mux_code_shft(shifted_id,op) ((op << 24)|shifted_id|(__xn_sys_mux & 0xffff))
> 
> +#define __xn_mux_code_shft(shifted_id,op) ((op << 24)|shifted_id)
> 
> should be enough.

Given my current calculation of the muxid in the kernel, yes. But the
original variant has zero effect on the code and looks more consistent
to me.

> 
> <snip>
> 
>> Index: xenomai/include/asm-blackfin/syscall.h
>> ===================================================================
>> --- xenomai.orig/include/asm-blackfin/syscall.h
>> +++ xenomai/include/asm-blackfin/syscall.h
>> @@ -27,6 +27,7 @@
>>     (i.e. negative syscall number in orig_p0 meaning "non-syscall
>>     entry"). */
>>  #define __xn_mux_code(id,op)   ((id << 24)|((op << 16) & 0xff0000)|(__xn_sys_mux & 0xffff))
>> +#define __xn_mux_code_fast(shifted_id,op) ((op << 24)|shifted_id|(__xn_sys_mux & 0xffff))
>>  
> 
> Breakage alert.
> 

Oops.

Ok, I will rework this patch.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

  reply	other threads:[~2006-07-15  8:06 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-13 11:13 [Xenomai-core] [PATCH] optimise syscall mux-code calculation Jan Kiszka
2006-07-15  2:24 ` Philippe Gerum
2006-07-15  8:06   ` Jan Kiszka [this message]
2006-07-15  8:31     ` Philippe Gerum
2006-07-15  8:37       ` Jan Kiszka
2006-07-15 15:11         ` Philippe Gerum
2006-07-15 11:40     ` Jan Kiszka
2006-07-15 12:13       ` Gilles Chanteperdrix
2006-07-15 12:29         ` Jan Kiszka
2006-07-15 15:56       ` Gilles Chanteperdrix
2006-07-16  9:43         ` Jan Kiszka
2006-07-16 14:47           ` Jan Kiszka
2006-07-19  9:25             ` Philippe Gerum

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=44B8A1E9.7080004@domain.hid \
    --to=jan.kiszka@domain.hid \
    --cc=rpm@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.