All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-core] [PATCH 00/12] Generic fast xnsynch support & more
@ 2008-10-16 15:46 Jan Kiszka
  2008-10-16 15:46 ` [Xenomai-core] [PATCH 01/12] Generic thread registration Jan Kiszka
                   ` (13 more replies)
  0 siblings, 14 replies; 50+ messages in thread
From: Jan Kiszka @ 2008-10-16 15:46 UTC (permalink / raw)
  To: xenomai

Here comes a significantly reworked patch series to improve fast mutex
support of Xenomai.

This approach now introduces a generic fast xnsynch core and converts
the existing POSIX implementation over. It also comes with a second
user, the Native skin. Additionally, it improves xeno_get_current via
a TLS variable and addresses the issue that threads in secondary mode
acquiring an uncontended mutex need to be migrated first.

At this chance, the TLS optimization is also applied on self-lookups of
task handles (Native, VRTX and VxWorks). And I included my
SMP-by-default patch for user libs which is highly recommended to reduce
the risk of accidental code breakage on SMP with the new mutex code.

Jan

---
 include/asm-generic/atomic.h               |   24 -
 xenomai/README.INSTALL                     |    2 
 xenomai/configure.in                       |   45 +-
 xenomai/include/asm-arm/atomic.h           |    3 
 xenomai/include/asm-blackfin/atomic.h      |    2 
 xenomai/include/asm-generic/Makefile.am    |    2 
 xenomai/include/asm-generic/Makefile.in    |    2 
 xenomai/include/asm-generic/bits/bind.h    |   82 +++-
 xenomai/include/asm-generic/bits/current.h |   36 +
 xenomai/include/asm-generic/features.h     |   24 -
 xenomai/include/asm-ia64/atomic.h          |    2 
 xenomai/include/asm-powerpc/atomic.h       |    2 
 xenomai/include/asm-x86/atomic.h           |    2 
 xenomai/include/native/mutex.h             |   23 -
 xenomai/include/native/syscall.h           |    1 
 xenomai/include/nucleus/registry.h         |    1 
 xenomai/include/nucleus/shadow.h           |    3 
 xenomai/include/nucleus/synch.h            |   70 +++
 xenomai/include/nucleus/thread.h           |   29 +
 xenomai/include/nucleus/types.h            |   13 
 xenomai/include/psos+/syscall.h            |    8 
 xenomai/include/rtdm/rtdm_driver.h         |    2 
 xenomai/include/vrtx/syscall.h             |    1 
 xenomai/include/vxworks/syscall.h          |    1 
 xenomai/ksrc/arch/arm/Kconfig              |    2 
 xenomai/ksrc/arch/powerpc/Kconfig          |    2 
 xenomai/ksrc/arch/x86/Kconfig              |    2 
 xenomai/ksrc/drivers/testing/switchtest.c  |    2 
 xenomai/ksrc/nucleus/pipe.c                |    2 
 xenomai/ksrc/nucleus/registry.c            |    4 
 xenomai/ksrc/nucleus/select.c              |    2 
 xenomai/ksrc/nucleus/shadow.c              |   38 +-
 xenomai/ksrc/nucleus/synch.c               |  534 ++++++++++++++++++++---------
 xenomai/ksrc/nucleus/thread.c              |    2 
 xenomai/ksrc/skins/native/Kconfig          |    1 
 xenomai/ksrc/skins/native/alarm.c          |    2 
 xenomai/ksrc/skins/native/buffer.c         |    4 
 xenomai/ksrc/skins/native/cond.c           |   18 
 xenomai/ksrc/skins/native/event.c          |    2 
 xenomai/ksrc/skins/native/heap.c           |    2 
 xenomai/ksrc/skins/native/intr.c           |    2 
 xenomai/ksrc/skins/native/mutex.c          |  327 ++++++++++-------
 xenomai/ksrc/skins/native/queue.c          |    2 
 xenomai/ksrc/skins/native/sem.c            |    2 
 xenomai/ksrc/skins/native/syscall.c        |  132 +++++--
 xenomai/ksrc/skins/native/task.c           |   28 -
 xenomai/ksrc/skins/posix/Kconfig           |    1 
 xenomai/ksrc/skins/posix/cb_lock.h         |   21 -
 xenomai/ksrc/skins/posix/cond.c            |   34 -
 xenomai/ksrc/skins/posix/intr.c            |    2 
 xenomai/ksrc/skins/posix/mq.c              |    4 
 xenomai/ksrc/skins/posix/mutex.c           |  121 ++++--
 xenomai/ksrc/skins/posix/mutex.h           |  136 +------
 xenomai/ksrc/skins/posix/sem.c             |    2 
 xenomai/ksrc/skins/posix/syscall.c         |   61 +--
 xenomai/ksrc/skins/posix/thread.c          |   14 
 xenomai/ksrc/skins/psos+/Kconfig           |    2 
 xenomai/ksrc/skins/psos+/event.c           |    2 
 xenomai/ksrc/skins/psos+/queue.c           |    2 
 xenomai/ksrc/skins/psos+/rn.c              |    2 
 xenomai/ksrc/skins/psos+/sem.c             |    2 
 xenomai/ksrc/skins/psos+/syscall.c         |   53 +-
 xenomai/ksrc/skins/psos+/task.c            |   20 -
 xenomai/ksrc/skins/rtai/Kconfig            |    1 
 xenomai/ksrc/skins/rtai/sem.c              |   12 
 xenomai/ksrc/skins/rtai/task.c             |   10 
 xenomai/ksrc/skins/rtdm/drvlib.c           |   27 -
 xenomai/ksrc/skins/uitron/Kconfig          |    1 
 xenomai/ksrc/skins/uitron/flag.c           |    2 
 xenomai/ksrc/skins/uitron/mbx.c            |    3 
 xenomai/ksrc/skins/uitron/sem.c            |    3 
 xenomai/ksrc/skins/uitron/syscall.c        |    8 
 xenomai/ksrc/skins/uitron/task.c           |   11 
 xenomai/ksrc/skins/vrtx/Kconfig            |    2 
 xenomai/ksrc/skins/vrtx/event.c            |    2 
 xenomai/ksrc/skins/vrtx/mb.c               |    2 
 xenomai/ksrc/skins/vrtx/mx.c               |    7 
 xenomai/ksrc/skins/vrtx/queue.c            |    2 
 xenomai/ksrc/skins/vrtx/sem.c              |    2 
 xenomai/ksrc/skins/vrtx/syscall.c          |    4 
 xenomai/ksrc/skins/vrtx/task.c             |   17 
 xenomai/ksrc/skins/vxworks/Kconfig         |    2 
 xenomai/ksrc/skins/vxworks/module.c        |    2 
 xenomai/ksrc/skins/vxworks/msgQLib.c       |    2 
 xenomai/ksrc/skins/vxworks/semLib.c        |    8 
 xenomai/ksrc/skins/vxworks/syscall.c       |   37 +-
 xenomai/ksrc/skins/vxworks/taskLib.c       |   12 
 xenomai/src/skins/native/cond.c            |   30 +
 xenomai/src/skins/native/init.c            |    8 
 xenomai/src/skins/native/mutex.c           |  105 +++++
 xenomai/src/skins/native/task.c            |   44 ++
 xenomai/src/skins/posix/mutex.c            |  192 +++++-----
 xenomai/src/skins/posix/thread.c           |   33 +
 xenomai/src/skins/psos+/task.c             |   34 +
 xenomai/src/skins/uitron/task.c            |   29 +
 xenomai/src/skins/vrtx/init.c              |   19 -
 xenomai/src/skins/vrtx/task.c              |   37 +-
 xenomai/src/skins/vxworks/init.c           |    8 
 xenomai/src/skins/vxworks/taskLib.c        |   29 +
 99 files changed, 1809 insertions(+), 909 deletions(-)

--
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux



^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~2008-10-17 15:02 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-16 15:46 [Xenomai-core] [PATCH 00/12] Generic fast xnsynch support & more Jan Kiszka
2008-10-16 15:46 ` [Xenomai-core] [PATCH 01/12] Generic thread registration Jan Kiszka
2008-10-16 19:26   ` Gilles Chanteperdrix
2008-10-16 21:55     ` Jan Kiszka
2008-10-16 15:46 ` [Xenomai-core] [PATCH 02/12] Handle-based xeno_get_current service Jan Kiszka
2008-10-16 19:36   ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 03/12] Remove xnarch_atomic_intptr Jan Kiszka
2008-10-16 19:37   ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 04/12] Spread xeno_set_current under all skins Jan Kiszka
2008-10-16 19:38   ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 05/12] Factor out xnsynch_acquire/release Jan Kiszka
2008-10-16 19:46   ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 06/12] Lockless fast path for xnsynch_acquire/release Jan Kiszka
2008-10-16 19:57   ` Gilles Chanteperdrix
2008-10-16 21:55     ` Jan Kiszka
2008-10-16 21:58       ` Gilles Chanteperdrix
2008-10-16 22:07         ` Jan Kiszka
2008-10-16 22:12           ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 07/12] Convert POSIX skin to fast xnsynch Jan Kiszka
2008-10-16 20:05   ` Gilles Chanteperdrix
2008-10-16 21:56     ` Jan Kiszka
2008-10-16 15:46 ` [Xenomai-core] [PATCH 08/12] Use fast xnsynch with native skin Jan Kiszka
2008-10-16 20:13   ` Gilles Chanteperdrix
2008-10-16 22:53     ` Jan Kiszka
2008-10-17  9:07       ` Gilles Chanteperdrix
2008-10-17 10:56         ` Jan Kiszka
2008-10-17 10:58           ` Gilles Chanteperdrix
2008-10-17 11:11             ` Jan Kiszka
2008-10-17 11:14             ` Gilles Chanteperdrix
2008-10-17 11:21               ` Jan Kiszka
2008-10-17 11:37                 ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 09/12] Optionally replace pthread_getspecific with TLS variables Jan Kiszka
2008-10-16 20:18   ` Gilles Chanteperdrix
2008-10-16 22:26     ` Jan Kiszka
2008-10-17 15:02       ` Jan Kiszka
2008-10-16 15:46 ` [Xenomai-core] [PATCH 10/12] Report current shadow thread mode to user space Jan Kiszka
2008-10-16 20:23   ` Gilles Chanteperdrix
2008-10-16 23:10     ` Jan Kiszka
2008-10-17  7:32       ` Jan Kiszka
2008-10-16 15:46 ` [Xenomai-core] [PATCH 11/12] Ensure mode switch in mutex fast paths Jan Kiszka
2008-10-16 20:27   ` Gilles Chanteperdrix
2008-10-16 15:46 ` [Xenomai-core] [PATCH 12/12] Enable SMP support for user libs by default Jan Kiszka
2008-10-16 20:29   ` Gilles Chanteperdrix
2008-10-16 22:14     ` Jan Kiszka
2008-10-16 16:21 ` [Xenomai-core] [PATCH 00/12] Generic fast xnsynch support & more Gilles Chanteperdrix
2008-10-17 12:28 ` Gilles Chanteperdrix
2008-10-17 12:44   ` Jan Kiszka
2008-10-17 12:51     ` Gilles Chanteperdrix
2008-10-17 13:31       ` Jan Kiszka
2008-10-17 13:36       ` Philippe Gerum

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.