[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libpthread cleanup: L4 port, PowerPC port

From: Thomas Schwinge
Subject: libpthread cleanup: L4 port, PowerPC port
Date: Sat, 4 Aug 2012 12:34:28 +0200
User-agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.3.1 (i486-pc-linux-gnu)


I'm currently having a look at a few pending libpthread issues.  Before
getting to these, I'd first like to propose some cleanup.  I have not yet
tested these changes, but will do so once they're generally approved.

There has been a libpthread port for Hurd on L4 use, which is dead, and
has been superseded by a Viengoos port, which has its own branches:
master-viengoos and its successor, master-viengoos-on-bare-metal.  This
project is curently stalled, too, and when it is revived, it should first
merge generic improvements (as well as port the Hurd/Mach changes to
Viengoos as necessary) from master (and possibly also be completely
merged back into master).  Therefore, the L4 port in master is a)
completely out of date, and b) dead, so I propose to remove it.  OK?

Remove L4 port.

* TODO: Update.
* Makefile.am: Remove file.
* headers.m4: Likewise.
* signal/README: Likewise.
* signal/TODO: Likewise.
* signal/kill.c: Likewise.
* signal/pt-kill-siginfo-np.c: Likewise.
* signal/sig-internal.c: Likewise.
* signal/sig-internal.h: Likewise.
* signal/sigaction.c: Likewise.
* signal/sigaltstack.c: Likewise.
* signal/signal-dispatch.c: Likewise.
* signal/signal.h: Likewise.
* signal/sigpending.c: Likewise.
* signal/sigsuspend.c: Likewise.
* signal/sigtimedwait.c: Likewise.
* signal/sigwaiter.c: Likewise.
* signal/sigwaitinfo.c: Likewise.
* sysdeps/generic/killpg.c: Likewise.
* sysdeps/generic/raise.c: Likewise.
* sysdeps/generic/sigaddset.c: Likewise.
* sysdeps/generic/sigdelset.c: Likewise.
* sysdeps/generic/sigemptyset.c: Likewise.
* sysdeps/generic/sigfillset.c: Likewise.
* sysdeps/generic/siginterrupt.c: Likewise.
* sysdeps/generic/sigismember.c: Likewise.
* sysdeps/generic/signal.c: Likewise.
* sysdeps/generic/sigwait.c: Likewise.
* sysdeps/l4/bits/pthread-np.h: Likewise.
* sysdeps/l4/hurd/bits/pthread-np.h: Likewise.
* sysdeps/l4/hurd/ia32/pt-machdep.c: Likewise.
* sysdeps/l4/hurd/ia32/pt-setup.c: Likewise.
* sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c: Likewise.
* sysdeps/l4/hurd/powerpc/pt-machdep.c: Likewise.
* sysdeps/l4/hurd/powerpc/pt-setup.c: Likewise.
* sysdeps/l4/hurd/pt-block.c: Likewise.
* sysdeps/l4/hurd/pt-kill.c: Likewise.
* sysdeps/l4/hurd/pt-setactivity-np.c: Likewise.
* sysdeps/l4/hurd/pt-sigstate-destroy.c: Likewise.
* sysdeps/l4/hurd/pt-sigstate-init.c: Likewise.
* sysdeps/l4/hurd/pt-sigstate.c: Likewise.
* sysdeps/l4/hurd/pt-startup.c: Likewise.
* sysdeps/l4/hurd/pt-sysdep.c: Likewise.
* sysdeps/l4/hurd/pt-sysdep.h: Likewise.
* sysdeps/l4/hurd/pt-thread-alloc.c: Likewise.
* sysdeps/l4/hurd/pt-thread-halt.c: Likewise.
* sysdeps/l4/hurd/pt-thread-start.c: Likewise.
* sysdeps/l4/hurd/pt-wakeup.c: Likewise.
* sysdeps/l4/hurd/sig-sysdep.h: Likewise.
* sysdeps/l4/hurd/sigprocmask.c: Likewise.
* sysdeps/l4/pt-block.c: Likewise.
* sysdeps/l4/pt-docancel.c: Likewise.
* sysdeps/l4/pt-pool-np.c: Likewise.
* sysdeps/l4/pt-spin.c: Likewise.
* sysdeps/l4/pt-stack-alloc.c: Likewise.
* sysdeps/l4/pt-thread-alloc.c: Likewise.
* sysdeps/l4/pt-thread-dealloc.c: Likewise.
* sysdeps/l4/pt-thread-halt.c: Likewise.
* sysdeps/l4/pt-thread-start.c: Likewise.
* sysdeps/l4/pt-timedblock.c: Likewise.
* sysdeps/l4/pt-wakeup.c: Likewise.

diff --git a/TODO b/TODO
index d7e54da..8b087b1 100644
--- a/TODO
+++ b/TODO
@@ -142,36 +142,3 @@
 ** TLS
   Support for TLS is only implemented for Mach/Hurd (x86).
-* L4 Specific Issues
-** Stack
-*** Size
-   The stack size is defined to be a single page in
-   sysdeps/l4/hurd/pt-sysdep.h.  Once we are able to setup regions,
-   this can be expanded to two megs as suggested by the Mach version.
-   Until then, however, we need to allocate too much physical memory.
-*** Deallocation
-   __thread_stack_dealloc currently does not deallocate the stack.
-   For a proper implementation, we need a working memory manager.
-** Scheduling
-*** yield
-   [L4] We cannot use yield for spin locks as L4 only yields to threads of
-   priority which are greater than or equal to the yielding thread.
-   If there are threads of lower priority, they are not considered;
-   the yielding thread is just placed back on the processor.  This
-   introduces priority inversion quite quickly.  L4 will not add a
-   priority suppression function call.  As such, we need to do
-   an ipc with a small time out and then use exponential back off to
-   do the actual waiting.  This sucks.
-** Stub code
-  [L4] We include <task_client.h> in pt-start.c, however, we need a library
-  so we do not have to play with the corba stuff.
-** Root server and Task server
-*** Getting the tids.
-   pt-start.c has a wonderfully evil hack that will never work well.
-** Paging
-  We set the pager to the root server. Evil.  Fix this in pt-start.c.
[Removed files omitted.]

Also, I propose to remove the incomplete and unmaintained PowerPC port.

Remove PowerPC port.

* TODO: Update.
* sysdeps/powerpc/bits/machine-lock.h: Remove file.
* sysdeps/powerpc/bits/memory.h: Likewise.
* sysdeps/powerpc/bits/spin-lock.h: Likewise.
* sysdeps/powerpc/machine-sp.h: Likewise.
* sysdeps/powerpc/pt-machdep.h: Likewise.

diff --git a/TODO b/TODO
index 8b087b1..848992d 100644
--- a/TODO
+++ b/TODO
@@ -139,6 +139,3 @@
 ** weak aliases
    Use them consistently and correctly and start by reading
-** TLS
-  Support for TLS is only implemented for Mach/Hurd (x86).
[Removed files omitted.]

In August 2008, Neal has been porting over some generic changes from the
Viengoos branch to master, and I'm now identifying if there are
additional changes to be ported.


Attachment: pgpPfO8I9RhKG.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]