Age | Commit message (Collapse) | Author |
|
2008-10-08 Neal H. Walfield <neal@gnu.org>
* rm.h (enum rm_method_id): Add RM_read.
(rm_method_id_string): Handle it.
(read): New RPC.
* server.c (server_loop): Implement the read RPC.
newlib/
2008-10-08 Neal H. Walfield <neal@gnu.org>
* addon/newlib/libc/sys/hurd/readr.c: Include <hurd/rm.h>.
(read): Implement.
|
|
* libhurd-cap: Remove.
* libhurd-cap-server: Likewise.
* physmem: Likewise.
* task: Likewise.
|
|
* wortel: Remove.
|
|
* Makefile.am (SYSDEP_PATH): Replace l4/hurd with viengoos.
Remove other directory names containing l4.
(libpthread_a_SOURCES): Remove pt-pool-np.c.
* sysdeps/l4/pt-spin.c: Move from here...
* sysdeps/viengoos/pt-spin.c: ... to here.
* sysdeps/l4/pt-stack-alloc.c: Move from here...
* sysdeps/viengoos/pt-stack-alloc.c: ... to here.
* sysdeps/l4/pt-timedblock.c: Move from here...
* sysdeps/viengoos/pt-timedblock.c: ... to here.
* sysdeps/l4/hurd/pt-block.c: Move from here...
* sysdeps/viengoos/pt-block.c: ... to here.
* sysdeps/l4/hurd/pt-docancel.c: Move from here...
* sysdeps/viengoos/pt-docancel.c: ... to here.
* sysdeps/l4/hurd/pt-kill.c: Move from here...
* sysdeps/viengoos/pt-kill.c: ... to here.
* sysdeps/l4/hurd/pt-setactivity-np.c: Move from here...
* sysdeps/viengoos/pt-setactivity-np.c: ... to here.
* sysdeps/l4/hurd/pt-sigstate-destroy.c: Move from here...
* sysdeps/viengoos/pt-sigstate-destroy.c: ... to here.
* sysdeps/l4/hurd/pt-sigstate-init.c: Move from here...
* sysdeps/viengoos/pt-sigstate-init.c: ... to here.
* sysdeps/l4/hurd/pt-sigstate.c: Move from here...
* sysdeps/viengoos/pt-sigstate.c: ... to here.
* sysdeps/l4/hurd/pt-startup.c: Move from here...
* sysdeps/viengoos/pt-startup.c: ... to here.
* sysdeps/l4/hurd/pt-sysdep.c: Move from here...
* sysdeps/viengoos/pt-sysdep.c: ... to here.
* sysdeps/l4/hurd/pt-sysdep.h: Move from here...
* sysdeps/viengoos/pt-sysdep.h: ... to here.
* sysdeps/l4/hurd/pt-thread-alloc.c: Move from here...
* sysdeps/viengoos/pt-thread-alloc.c: ... to here.
* sysdeps/l4/hurd/pt-thread-dealloc.c: Move from here...
* sysdeps/viengoos/pt-thread-dealloc.c: ... to here.
* sysdeps/l4/hurd/pt-thread-halt.c: Move from here...
* sysdeps/viengoos/pt-thread-halt.c: ... to here.
* sysdeps/l4/hurd/pt-thread-start.c: Move from here...
* sysdeps/viengoos/pt-thread-start.c: ... to here.
* sysdeps/l4/hurd/pt-wakeup.c: Move from here...
* sysdeps/viengoos/pt-wakeup.c: ... to here.
* sysdeps/l4/hurd/sig-sysdep.h: Move from here...
* sysdeps/viengoos/sig-sysdep.h: ... to here.
* sysdeps/l4/hurd/sigprocmask.c: Move from here...
* sysdeps/viengoos/sigprocmask.c: ... to here.
* sysdeps/l4/hurd/bits/pthread-np.h: Move from here...
* sysdeps/viengoos/bits/pthread-np.h: ... to here.
* headers.m4: Like sysroot/include/bits/pthread-np.h to
libpthread/sysdeps/viengoos/bits/pthread-np.h, not
libpthread/sysdeps/l4/hurd/bits/pthread-np.h.
* sysdeps/l4/hurd/ia32/pt-machdep.c: Move from here...
* sysdeps/viengoos/ia32/pt-machdep.c: ... to here.
* sysdeps/l4/hurd/ia32/pt-setup.c: Move from here...
* sysdeps/viengoos/ia32/pt-setup.c: ... to here.
* sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c: Move from
here...
* sysdeps/viengoos/ia32/signal-dispatch-lowlevel.c: to here...
* sysdeps/l4/hurd/powerpc/pt-machdep.c: Move from here...
* sysdeps/viengoos/powerpc/pt-machdep.c: ... to here.
* sysdeps/l4/hurd/powerpc/pt-setup.c: Move from here...
* sysdeps/viengoos/powerpc/pt-setup.c: ... to here.
|
|
* sysdeps/l4/pt-block.c: Remove file.
* sysdeps/l4/pt-docancel.c: Likewise.
* sysdeps/l4/pt-pool-np.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-wakeup.c: Likewise.
* sysdeps/l4/bits/pthread-np.h: Likewise.
|
|
2008-08-16 Neal H. Walfield <neal@gnu.org>
* thread.h (thread_start_sp_ip): New function.
libpthread/
2008-08-16 Neal H. Walfield <neal@gnu.org>
* sysdeps/l4/hurd/pt-docancel.c: New file.
|
|
* pthread/pt-detach.c (pthread_detach): If destroying the thread,
call __pthread_thread_halt before deallocating the stack. In this
case, also call __pthread_thread_dealloc on the tcb.
|
|
* pthread/pt-alloc.c: Don't include <atomic.h>.
(__pthread_free_threads): Change to a struct __pthread *.
(__pthread_free_threads_lock): New variable.
(__pthread_alloc): When looking for a TCB to reuse, iterate over
__pthread_free_threads taking the first for which the STATE field
is PTHREAD_TERMINATED. When reusing a TCB, first call
__pthread_thread_halt on it.
* pthread/pt-dealloc.c: Don't include <atomic.h>.
(__pthread_free_threads): Change to a struct __pthread *.
(__pthread_free_threads_lock): New declaration.
(__pthread_dealloc): Enqueue PTHREAD on __PTHREAD_FREE_THREADS.
Set PTHREAD->STATE to PTHREAD_TERMINATED after everything else.
* pthread/pt-join.c (pthread_join): Call __pthread_thread_halt
before destroying the thread. When destroying the thread, call
__pthread_thread_dealloc on it.
* pthread/pt-exit.c (pthread_exit): Call __pthread_dealloc only if
the thread is detached and then as the last thing we do before
calling __pthread_thread_halt.
* pthread/pt-internal.h (__pthread_thread_halt): Remove argument
NEED_DEALLOC. Update users.
* sysdeps/l4/hurd/pt-thread-halt.c (__pthread_thread_halt): Remove
argument need_dealloc. Move the deallocation code from this
file...
* sysdeps/l4/hurd/pt-thread-dealloc.c: ... to this new file.
* sysdeps/l4/hurd/pt-sysdep.h (PTHREAD_SYSDEP_MEMBERS): Add field
have_kernel_resources.
* sysdeps/l4/hurd/pt-thread-alloc.c (__pthread_thread_alloc): If
THREAD->HAVE_KERNEL_RESOURCES is true, just return. After
allocating the resources, set THREAD->HAVE_KERNEL_RESOURCES to
true.
|
|
|
|
* l4/ipc.h (_L4_reply_wait_timeout): Use _L4_zero_time, not
_L4_time_period (0).
* l4/schedule.h (_L4_time_period): Correctly handle the case where
USEC is zero.
|
|
* ruth.c (main): Allocate objects after setting up their
respective shadow capabilities. When allocating all available
memory, limit the amount to at most 1 GB.
|
|
* storage.c (storage_free_): Deallocate the folio before updating
the shadow capability.
|
|
* server.c (server_loop): In the implementation of cap_read, if
the capability's type is not void, make sure that the capability
is valid. Otherwise, set the type to cap_void.
|
|
* laden.h: Include <stdint.h>.
(total_memory): New declaration.
* laden.c (total_memory): New definition.
(load_components): Remove V2 specific code.
* kip-fixup.c (kip_fixup): Remove V2 specific code.
* ia32-cmain.c (find_components): Add module regions as type -1,
not L4_MEMDESC_BOOTLOADER. Don't make total_memory a local
variable. Also calculate the total memory in the case where only
MBI->MEM_LOWER and MBI->MEM_UPPER are available. Move kernel
memory reservation from here...
* loader.c (loader_regions_reserve): ... to here. Implement more
robustly. Always add descriptors for
all memory regions with a type other than -1.
|
|
* l4/gnu/kip.h (l4_memory_desc_type_to_string): New function.
|
|
* headers.m4: Remove link from sysroot/include/bits/pthreadtypes.h
to libpthread/sysdeps/generic/bits/pthreadtypes.h and link from
sysroot/include/bits/thread-barrier.h to
libpthread/sysdeps/generic/bits/thread-barrier.h.
|
|
* sysdeps/generic/bits/pthreadtypes.h: Remove dead file.
|
|
* sysdeps/generic/bits/pthread-np.h: New file.
|
|
* sysdeps/ia32/machine-sp.h (thread_stack_pointer):
Optimize esp read.
|
|
* sysdeps/generic/pt-startup.c (__pthread_startup): New file.
|
|
2008-08-12 Neal H. Walfield <neal@gnu.org>
* sysdeps/generic/bits/mutex.h (__PTHREAD_RECURSIVE_MUTEX_INITIALIZER):
Define.
(__PTHREAD_MUTEX_RECURSIVE_INITIALIZER): Don't define.
* include/pthread/pthread.h
(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) [__USE_GNU]: Define.
(PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP): Don't define.
libhurd-mm/
2008-08-12 Neal H. Walfield <neal@gnu.org>
* storage.c (storage_low_mutex): Use
PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, not
PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP.
|
|
|
|
Merge in Samuel Thibault's changes from the main line.
* Makefile.am (libpthread_a_SOURCES): Add pt-getattr.c.
* headers.m4: Link libpthread/include/pthread/pthreadtypes.h to
sysroot/include/pthread/pthreadtypes.h and
libpthread/sysdeps/${arch}/bits/spin-lock-inline.h. to
sysroot/include/bits/spin-lock-inline.h.
* include/pthread/pthread.h: Include <sys/cdefs.h>.
(__extern_inline): If not defined, define appropriately.
2008-08-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
* include/pthread/pthreadtypes.h (__pthread_inheritsched): Remove
comma at end of enumeration.
2008-08-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
* Makefile (sysdeps_headers): Add spin-lock-inline.h.
(SYSDEP_PATH): Move sysdeps/ia32 right after
sysdeps/$(MICROKERNEL)/ia32.
* include/pthread/pthread.h: Include <bits/spin-lock-inline.h>.
* sysdeps/ia32/bits/spin-lock.h: Move inlines to...
* sysdeps/ia32/bits/spin-lock-inline.h: ... new file.
2008-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
* sysdeps/generic/bits/mutex.h: Do not include <errno.h> and
<stddef.h>
* sysdeps/ia32/bits/memory.h (__memory_barrier): Add memory clobber.
* sysdeps/ia32/bits/spin-lock.h (__pthread_spin_trylock,
__pthread_spin_unlock): Add memory clobbers.
* sysdeps/l4/hurd/ia32/pt-setup.c (stack_setup): Fix reservation of
stack room for initial frame.
2008-07-18 Samuel Thibault <samuel.thibault@ens-lyon.org>
* Makefile (sysdeps_headers): add pthread/pthreadtypes.h
2008-06-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
* include/pthread/pthread.h: Do not define __need_clockid_t, include
<time.h>, and define clockid_t if __clockid_defined is not defined.
Include <pthread/pthreadtypes.h>
(pthread_equal): New extern inline.
(pthread_cleanup_push, pthread_cleanup_pop): New macros.
(__pthread_process_shared, __pthread_inheritsched,
__pthread_contentionscope, __pthread_detachstate,
__pthread_mutex_protocol, __pthread_mutex_type,
pthread_attr_t, pthread_mutex_attr_t, pthread_mutex_t,
pthread_condattr_t, pthread_cond_t, pthread_spinlock_t,
pthread_rwlockattr_t, pthread_rwlock_t, pthread_barrierattr_t,
pthread_barrier_t, pthread_key_t, pthread_once_t): Move enums and
typedefs to...
* include/pthread/pthreadtypes.h: ... new file.
* sysdeps/generic/bits/cancelation.h (pthread_cleanup_push): Rename
macro to __pthread_cleanup_push.
(pthread_cleanup_pop): Rename macro to __pthread_cleanup_pop.
* sysdeps/generic/bits/barrier-attr.h (__pthread_process_shared):
Forward-declare enum.
* sysdeps/generic/bits/condition-attr.h (__pthread_process_shared):
Likewise.
* sysdeps/generic/bits/mutex-attr.h (__pthread_mutex_protocol,
__pthread_process_shared, __pthread_mutex_type):
Likewise.
* sysdeps/generic/bits/rwlock-attr.h (__pthread_process_shared):
Likewise.
* sysdeps/generic/bits/thread-attr.h (__pthread_detachstate,
__pthread_inheritsched, __pthread_contentionscope):
Likewise.
* sysdeps/generic/bits/pthread.h (pthread_t): Rename type to
__pthread_t.
(pthread_equal): Rename to __pthread_equal.
2008-06-27 Samuel Thibault <samuel.thibault@ens-lyon.org>
* sysdeps/generic/bits/thread-barrier.h: Remove unused file.
2008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
* include/pthread/pthread.h (pthread_getattr_np): New declaration.
* pthread/pt-getattr.c: New file.
* Makefile (SRCS): Add pt-getattr.c.
2008-03-16 Samuel Thibault <samuel.thibault@ens-lyon.org>
* include/libc-symbols.h (HAVE_ASM_PREVIOUS_DIRECTIVE): Define.
2008-02-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
* sysdeps/l4/hurd/ia32/pt-setup.c (stack_setup): Align stack on 0x10
for MMX operations.
2008-01-01 Samuel Thibault <samuel.thibault@ens-lyon.org>
* include/pthread/pthread.h (pthread_spin_destroy, pthread_spin_init,
pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Use
__extern_inline macro instead of extern __inline.
* sysdeps/ia32/bits/spin-lock.h (__PT_SPIN_INLINE,
__pthread_spin_lock): Likewise
* sysdeps/generic/bits/pthread.h (pthread_equal): Declare ; only
provide inline when __USE_EXTERN_INLINES is defined. Use __extern_inline
macro instead of extern __inline.
* sysdeps/ia32/bits/memory.h (__memory_barrier): Add static to inline.
|
|
* as-lookup.c: Include <profile.h>, not "../viengoos/profile.h".
|
|
* profile.h: Move to ../libc-parts.
* profile.c: Likewise.
* Makefile.am (viengoos_SOURCES): Remove profile.h and profile.c.
* ager.c: Don't include "profile.h" but <profile.h>.
(update_stats): Replace use of profile_start and profile_end with
profile_region and profile_region_end.
|
|
2008-07-08 Neal H. Walfield <neal@gnu.org>
* profile.h: Move to ../libc-parts.
* profile.c: Likewise.
* ager.c: Don't include "profile.h" but <profile.h>.
(update_stats): Replace use of profile_start and profile_end with
profile_region and profile_region_end.
libc-parts/
2008-07-08 Neal H. Walfield <neal@gnu.org>
* profile.h: Moved here from ../viengoos/profile.h.
(profile_region): New macro.
(profile_region_end): Likewise.
(profile_start) [NPROFILE]: Do nothing in this case.
(profile_end) [NPROFILE]: Likewise.
(profile_stats_dump) [NPROFILE]: Likewise.
* profile.c: Moved here from ../viengoos/profile.c.
(profile_start) [! RM_INTERN]: Use a static buffer.
* Makefile.am (common_sources): Add fields profile.c and
profile.h.
benchmarks/boehm-gc/
2008-07-08 Neal H. Walfield <neal@gnu.org>
* patches/04-gc-alloc-c.patch: Remove file.
* patches/05-viengoos-scheduler.patch: Merge changes into this
one. Remove cruft. Update profile code. Tweak scheduler.
* Makefile.am (patch_files): Remove 04-gc-alloc-c.patch.
|
|
2008-07-08 Neal H. Walfield <neal@gnu.org>
* Makefile.am (modules.h): Generate an array of arguments from
each module's command line.
(ruth_commandline): Don't quote arguments.
* hieronymus.c (struct module): Remove field commandline, replace
with args.
(main): Create the argument vector based on the MODULES[I].ARGS.
libc-parts/
2008-07-08 Neal H. Walfield <neal@gnu.org>
* process-spawn.c (process_spawn): Don't add an extra trailing NUL
to the argment vector or the environment vector.
* ia32-cmain.c (finish): Assume the command line is in argz
format and parse it appropriately.
|
|
* Makefile.am (viengoos.striped): Rename from this...
(viengoos.stripped): ... to this.
|
|
* viengoos.c (system_task_load): Free the memory associated with
the main executable.
(bootstrap): New function.
(main): Move most functionality to it. Call it.
|
|
* pager.c (pager_collect): Start with a factor of 1, not 0, when
calculating the impact of active pages. When calculating the
number of frames available to an activity, cast the unsigned
variables to ints. Correct the calculation of FRAMES. Bump
VICTIM->FREE_ALLOCATIONS to a 1000. Always add GOAL to
TOTAL_FREED when we send a memory pressure message.
|
|
* ager.c (update_stats): When calculating statistics, remove a
little bit from the total memory available to the root activity.
|
|
* Makefile.am (all-local) [! ENABLE_TESTS]: Only define in this
case.
(viengoos.striped) [! ENABLE_TESTS]: Likewise.
|
|
* activity.c: Include "zalloc.h" and "memory.h".
(activity_dump): Also print the total amount of memory, the
available memory, and the memory on the laundry list.
|
|
* as-lookup.c: Don't include <pthread.h>.
(as_rwlock): Don't define here.
* as.c: Include <pthread.h>.
(as_rwlock): Define.
(as_rwlock_owner): Likewise.
* as.h: Include <l4/types.h>.
(as_lock): Check and set as_rwlock_owner appropriately.
(as_lock_readonly): Likewise.
(as_unlock): Likewise.
* storage.c (do_serialize): New local variable.
(storage_check_reserve_internal): If AS_RWLOCK_OWNER is non-zero,
check if the caller has the AS_RWLOCK. If so, return. If
DO_SERIALIZE is set or FREE_COUNT is less than
FREE_PAGES_SERIALIZE, take the STORAGE_LOW_MUTEX. If DO_SERIALIZE
was not set, set it and remember that we set it and clear it after
allocating a folio.
|
|
* _exit.c (_exit): Print a backtrace.
|
|
* mutex.h (ss_mutex_lock): Only complain about a possible deadlock
if ERRNO is EDEADLK.
|
|
* cap.h (cap_copy_x): Also call cap_shootdown if the version field
changes.
|
|
* activity.h (ACTIVITY_MEMORY_POLICY): Reverse argument order.
(struct activity_memory_policy): Reverse order of fields.
|
|
* Makefile.am (all-local) [ENABLE_TESTS]: Don't define target in
this case. Fix spelling.
(md5sum): Generate the md5 hash of the binary we include, not the
original binary.
(modules.h): Depend on $(files). Provide a default priority and
weight.
($(files)): Don't depend on modules.S.
(CLEANFILES): New variable.
|
|
* hieronymus.c (main): Fix mask when extracting hexadecimal
digits.
|
|
* patches/05-viengoos-scheduler.patch: Fix profile.h chunk.
|
|
* server.c (server_loop): In the cap_rubout implementation,
shootdown TARGET.
|
|
* object.h (object_desc_to_cap): Correctly set the subpage
specification.
|
|
* Makefile.am (viengoos_LDADD): Also add
../libhurd-mm/libas-kernel.a before libc-kernel.a.
|
|
* as-dump.c [RM_INTERN]: Include <md5.h>, "../viengoos/cap.h" and
"../viengoos/activity.h".
(do_walk) [RM_INTERN]: Print data pages' md5 sums as well.
|
|
* process-spawn.c (process_spawn): Separate arguments with a NUL,
not a space. Likewise of environment variables. Correctly off by
one error when calculating the size required by the environment.
Remember the regions of address space that we allocated and free
them after we are done. Correctly set the folio's subpage. Add a
check that ensures that allocated pages are really zeroed. When
freeing AS_ROOT, overwrite the used capability slot. Destroy AS.
|
|
* cap.c (cap_shootdown): Iterate over all capabilities in a
cappage and all elements in a folio, not just the first log2 of
them.
|
|
2008-06-29 Neal H. Walfield <neal@gnu.org>
* Makefile.am (all-local): New target.
(viengoos.striped): Likewise.
hieronymus/
2008-06-29 Neal H. Walfield <neal@gnu.org>
* Makefile.am (all-local): New target.
(hieronymus.striped): Likewise.
($(addsuffix .S, $(files))): Set BINARY to the binary's name.
($(files)): New target.
($(addsuffix .o, $(files))): Likewise.
|
|
2008-06-29 Neal H. Walfield <neal@gnu.org>
* md5.h: New file from glibc 2.7.
* md5.c: Likewise.
* Makefile.am (common_sources): Add md5.h and md5.c.
hieronymus/
2008-06-29 Neal H. Walfield <neal@gnu.org>
* hieronymus.c: Include <md5.h>.
(struct module): Add field md5sum.
(main): Calculate the md5 digest for the binary. Compare it to
the hash calculated at compile time. If they don't match, panic.
* Makefile.am (md5sum): New function.
(tovar): New function.
(modules.h): Use it. Generate an md5 digest for the binary.
|
|
* ia32-cmain.c (debug_dump): Don't include redundant \n's in
debugging output.
(modules_relocate): Likewise.
* kip-fixup.c (kip_fixup): Likewise.
* laden.c (main): Likewise.
* loader.c (mem_check): Likewise.
(loader_add_region): Likewise.
(loader_regions_reserve): Likewise.
|