summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2008-12-04Use correct CPPFLAGS and CFLAGS when building libhurd-slab.Neal H. Walfield
2008-12-04 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Set to $(USER_CPPFLAGS). (AM_CFLAGS): Set to $(USER_CFLAGS).
2008-11-18Improve as_dump output.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * as-dump.c (do_walk): Don't print the prefix if it is the empty string. (as_dump_from): Print a backtrace. Don't actually dump the address space by default.
2008-11-18Improve README.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * README: Improve text.
2008-11-18Add support for prefaulting pages.Neal H. Walfield
viengoos/ 2008-11-18 Neal H. Walfield <neal@gnu.org> * rm.h (RM_fault): Define. (rm_method_id_string): Handle it. (fault): New RPC. * server.c (server_loop): Implement it. libhurd-mm/ 2008-11-18 Neal H. Walfield <neal@gnu.org> * anonymous.c (fault): Add code to prefault the pages. Leave disabled.
2008-11-18Add code to the page fault handler to also map some pages after the fault ↵Neal H. Walfield
location. 2008-11-18 Neal H. Walfield <neal@gnu.org> * server.c (server_loop): Add code to the page fault handler that not only map the faulted page but also some following pages. Leave disabled.
2008-11-18Add cache benchmark.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * cache.c: New file. * Makefile.am (cache_CPPFLAGS): New variable. (cache_CFLAGS): Likewise. (cache_LDFLAGS): Likewise. (cache_LDADD): Likewise. (cache_SOURCES): Likewise. (boot_PROGRAMS): Add cache.
2008-11-18For normal memory advice, set INFO.DISCARDED to ANON->POLICY.DISCARDABLE.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * anonymous.c (advise): When ADVICE is pager_advice_normal, set INFO.DISCARDED to ANON->POLICY.DISCARDABLE.
2008-11-18Preallocate the pages around a fault.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * anonymous.c (fault): Preallocate the pages around a fault. Only copy the capability in place if we just allocated the storage.
2008-11-18Only print configuration when destroying the root activity.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * activity.c (activity_destroy): Only print configuration when destroying the root activity.
2008-11-18Print more ager statistics.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * ager.c (ager_loop): Count the number of shared pages that are unmapped, the total number of active pages and the total number of inactive pages. Print this information.
2008-11-18Update profile interface and add support for profiling multiple threads.Neal H. Walfield
libc-parts/ 2008-11-18 Neal H. Walfield <neal@gnu.org> * profile.h (profile_start): Take additional parameter name2. Update users. (profile_region): Create the id from the function name and the description. * profile.c [__gnu_hurd_viengoos__]: Include <s-printf.h>. [! __gnu_hurd_viengoos__]: Include <pthread.h>. (THREADS): Define. (struct site): Rename from this... (struct call_site): ... to this. Add fields name2 and nested_calls. (SIZE): Rename from this... (CALL_SITES): ... to this. (sites_hash): Replace this variable... (sites_hash_buffer): ... and this one... (init): ... and this one... (sites): ... and this one... (used): ... and this one... (epoch): ... and this one... (calls): ... and this one... (total_time): ... and this one... (extant): ... and this one... (struct profile_block): ... with this new structure... (thread_count): ... this variable... (profile_blocks): ... and this variable. Update users. (struct profile_block): New function. (profile_stats_dump): Improve output. (profile_end): Increment SITE->NESTED_CALLS. (profile_start): Take additional parameter name2. Save it in SITE->NAME2. Call profile_block to get the thread's profile block. Remove initialization code. (profile_end): Call profile_block to get the thread's profile block. viengoos/ 2008-11-18 Neal H. Walfield <neal@gnu.org> * ager.c (ager_loop): Update use of profile_start to match new API. * pager.c (pager_collect): Likewise.
2008-11-18Fix logic error in as_lookup code.Neal H. Walfield
2008-11-17 Neal H. Walfield <neal@gnu.org> * as-lookup.c (DUMP_OR_RET) [NDEBUG]: Just return. (as_lookup_rel_internal) [NDEBUG]: Define dump_path to be false.
2008-11-18Correctly detect type mismatches when copying capabilities.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * cap.h (cap_copy_x): Correctly detect type mismatches.
2008-11-18Improve README.Neal H. Walfield
2008-11-18 Neal H. Walfield <neal@gnu.org> * README: Improve text.
2008-11-17Add _L4_kdb system call.Neal H. Walfield
2008-11-17 Neal H. Walfield <neal@gnu.org> * ia32/l4/bits/syscall.h (_L4_kdb): New function.
2008-11-17Keep a pointer to an object's folio in its descriptor.Neal H. Walfield
2008-11-17 Neal H. Walfield <neal@gnu.org> * object.h (struct object_desc): Add field maybe_folio_desc. (objects_folio): Use it if valid. If not, update it.
2008-11-17Avoid double-zero initializing memory.Neal H. Walfield
2008-11-17 Neal H. Walfield <neal@gnu.org> * object.c (object_init): Don't clear BUFFER or OBJECT_DESCS. * thread.c (thread_init): Don't clear BUFFER.
2008-11-17Comment out prefault code.Neal H. Walfield
2008-11-17 Neal H. Walfield <neal@gnu.org> * server.c (struct fault_info): Remove struct. (page_fault): Remove function. Inline code in callers. (server_loop): Comment out code that prefaults pages in cap_copy and object_discarded_clear.
2008-11-16Optimize object look up.Neal H. Walfield
2008-11-16 Neal H. Walfield <neal@gnu.org> * cap.c (cap_to_object_internal): Don't clear CAP->TYPE if object_find returns NULL. * server.c (page_fault): Look up the object using cap_to_object. Check the capability's version with the object's version.
2008-11-15Check that there is enough free memory before calling zalloc.Neal H. Walfield
2008-11-15 Neal H. Walfield <neal@gnu.org> * zalloc.h (zalloc_internal): New declaration. (zalloc): Change to an inline function, which calls zalloc_internal if there is sufficient memory to satisfy the request. * zalloc.c (zalloc): Rename from this... (zalloc_internal): ... to this.
2008-11-14Add new function backtrace_print.Neal H. Walfield
2008-11-14 Neal H. Walfield <neal@gnu.org> * backtrace.c (backtrace_print): New function.
2008-11-14When dequeuing pages, use list_dequeue instead of list_unlink.Neal H. Walfield
2008-11-14 Neal H. Walfield <neal@gnu.org> * pager.c (reclaim_from): Use list_dequeue instead of list_unlink.
2008-11-14Change Viengoo's frame hash to use a load factory of 30.Neal H. Walfield
2008-11-14 Neal H. Walfield <neal@gnu.org> * object.c (object_init): Set OBJECTS load factory to 30.
2008-11-14Take frames from the head of the available list.Neal H. Walfield
2008-11-14 Neal H. Walfield <neal@gnu.org> * memory.c (memory_frame_allocate): Take frames from the head of the available list.
2008-11-14Dump the current statistics whenever an activity is destroyed.Neal H. Walfield
2008-11-14 Neal H. Walfield <neal@gnu.org> * activity.c (activity_destroy): Dump the current statistics whenever an activity is destroyed.
2008-11-14Map pages preemptively.Neal H. Walfield
hurd/ 2008-11-14 Neal H. Walfield <neal@gnu.org> * rpc.h: Include <l4/space.h>. (RPC_): When receiving a message, accept any mapping. viengoos/ 2008-11-14 Neal H. Walfield <neal@gnu.org> * server.c (struct fault_info): New structure. (page_fault): New function. (server_loop): Implement page fault handling in terms of the new function. When copying a capability that makes a page available in the caller's hardware address space, map it preemptively. When clearing a discarded bit for a page that appears in the caller's hardware address space, allocate the object and map it preemptively.
2008-11-13Sort profile data.Neal H. Walfield
2008-11-13 Neal H. Walfield <neal@gnu.org> * profile.c (profile_stats_dump): Sort by the total time.
2008-11-12Introduce a list_dequeue function and rename list_queue to list_enqueue.Neal H. Walfield
2008-11-12 Neal H. Walfield <neal@gnu.org> * list.h (list_queue): Rename from this... (list_enqueue): ... to this. Update users. (list_dequeue): New function. (LIST_CLASS): Rename the generated queue function accordingly and update users. Generate a stub for dequeueing elements.
2008-11-12Add victim frames to the end of the eviction list.Neal H. Walfield
2008-11-12 Neal H. Walfield <neal@gnu.org> * pager.c (reclaim_from): Add victims to the end of the eviction list.
2008-11-12Print call site when dumping a trace buffer.Neal H. Walfield
2008-11-12 Neal H. Walfield <neal@gnu.org> * trace.h (trace_buffer_dump): Take additional arguments func and line. Print them. (trace_buffer_dump): Also define as a macro.
2008-11-12Make the anonymous pager's fault handler and madvise reentrant.Neal H. Walfield
2008-11-12 Neal H. Walfield <neal@gnu.org> * anonymous.h (struct anonymous_pager): Improve documentation for the fill_lock field. * anonymous.c (fault): Drop ANON->LOCK before calling the user's fill function. (destroy): Before destroying ANON, take ANON->FILL_LOCK. * madvise.c (madvise): Refactor to not hold map lock when calling MAP->PAGER->ADVISE.
2008-11-12Add a btree_find_first function.Neal H. Walfield
2008-11-12 Neal H. Walfield <neal@gnu.org> * btree.h (find_first): New function. (BTREE_CLASS): Generate a find_first function. * t-find-first.c (region_compare): New file. * Makefile.am (TESTS): Add t-find-first. (check_PROGRAMS): Likewise. (t_find_first_SOURCES): New variable. (t_find_first_CPPFLAGS): Likewise.
2008-11-11Remove dead code inherited from reference implementation.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * btree.c: Remove dead code.
2008-11-11Don't use s_putchar to send individual characters.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * s_printf.c [! RM_INTERN] (s_printf): Don't use s_putchar to send individual characters. Use an io_buffer instead.
2008-11-11Make a struct cap's priority field signed.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * cap.h (struct cap): Make priority signed.
2008-11-11Make a struct cap's priority field signed.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * cap.h (struct cap): Make priority signed.
2008-11-11Add frames to the right end of the inactive and active lists.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * ager.c (ager_loop): Add frames to the end of the active or inactive list, not the head.
2008-11-11Fix typo in viengoos/object.c.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * object.c (object_desc_claim): Fix typo.
2008-11-11/Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * README: Remove reference to patching Pistachio and libl4. libl4/ 2008-11-11 Neal H. Walfield <neal@gnu.org> * ia32/l4/bits/vregs.h (_L4_utcb): Use %gs:0.
2008-11-11Add debugging output when passing bad arguments to madvise.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * madvise.c (madvise): Add debugging output for bad arguments.
2008-11-11Profile the anonymous pager's fault handler.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * anonymous.c: Include <profile.h>. (fault): Profile.
2008-11-11Add port of sqlite.Neal H. Walfield
/ 2008-11-11 Neal H. Walfield <neal@gnu.org> * configure.ac: Generate benchmarks/sqlite/Makefile. benchmarks/ 2008-11-11 Neal H. Walfield <neal@gnu.org> * Makefile.am (SUBDIRS): Add sqlite. benchmarks/sqlite 2008-11-11 Neal H. Walfield <neal@gnu.org> * Makefile.am: New file.
2008-11-11Add port of sqlite.Neal H. Walfield
/ 2008-11-11 Neal H. Walfield <neal@gnu.org> * configure.ac: Generate benchmarks/sqlite/Makefile. benchmarks/ 2008-11-11 Neal H. Walfield <neal@gnu.org> * Makefile.am (SUBDIRS): Add sqlite. benchmarks/sqlite 2008-11-11 Neal H. Walfield <neal@gnu.org> * Makefile.am: New file.
2008-11-11Only touch sysroot/lib/libc.a, don't overwrite it.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * Makefile.am (libc-stmp): Only touch sysroot/lib/libc.a, don't overwrite it.
2008-11-11Port profiling code to Unix.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * profile.c [! __gnu_hurd_viengoos__]: Don't include <l4.h> or <hurd/rm.h>. Include <sys/time.h> and <stdio.h>. [! __gnu_hurd_viengoos__ && ! PAGESIZE] (PAGESIZE): Define. [! __gnu_hurd_viengoos__ && ! panic] (panic): Define. [! __gnu_hurd_viengoos__ && ! do_debug] (do_debug): Define. (now): New function. (profile_stats_dump): Use it instead of l4_system_clock. (profile_start): Likewise. (profile_end): Likewise. (profile_start) [__gnu_hurd_viengoos__]: If NAME is NULL, use "unknown".
2008-11-11Add routines that generate a zipf distribution.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * zipf.h: New file. * zipf.c: Likewise.
2008-11-11Add routines that generate a zipf distribution.Neal H. Walfield
2008-11-11 Neal H. Walfield <neal@gnu.org> * zipf.h: New file. * zipf.c: Likewise.
2008-11-06Support clearing the discarded status and prefaulting using madvise.Neal H. Walfield
2008-11-06 Neal H. Walfield <neal@gnu.org> * anonymous.c (fault): Handle the case where COUNT > 0. Don't assume that storage has been allocated if INFO.DISCARDED is true. (advise): Interpret pager_advice_normal to mean to cleared discarded pages and to allocate unallocated pages.
2008-11-04In the activity structure, use a pair of lists per priority level.Neal H. Walfield
2008-11-04 Neal H. Walfield <neal@gnu.org> * activity.h (struct activity): Replace fields active, inactive, priorities and priorities_count with fields frames_ and frames. Update users. * object.h (activity_lru): Rename from this... (activity): ... to this. Update users. * activity.c (activity_destroy): When moving frames claimed by a child to its parent's lowest priority level, update each frame's respective priority. (activity_prepare) [! NDEBUG]: Initialize priority levels.
2008-11-04Return the number of priority bits to 7.Neal H. Walfield
hurd/ 2008-11-04 Neal H. Walfield <neal@gnu.org> * cap.h (OBJECT_PRIORITY_BITS): Change to 7. (OBJECT_PRIORITY_LEVELS): Define. (OBJECT_PRIORITY_LRU): Don't define. Update users. (struct object_policy): Remove field pad0. Change to a uint8_t. (OBJECT_POLICY): Update. ruth/ 2008-11-04 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Use OBJECT_PRIORITY_DEFAULT, not OBJECT_PRIORITY_LRU. benchmarks/ 2008-11-04 Neal H. Walfield <neal@gnu.org> * activity-distribution.c (main): Use OBJECT_PRIORITY_DEFAULT, not OBJECT_PRIORITY_LRU. * GCbench.c (helper): Likewise.