[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] Hurd branch, master, updated. v0.5-211-g07e46eb
From: |
Justus Winter |
Subject: |
[SCM] Hurd branch, master, updated. v0.5-211-g07e46eb |
Date: |
Wed, 26 Mar 2014 00:50:47 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".
The branch, master has been updated
via 07e46eb2e25583f0f3e06342f0c854769b353b10 (commit)
from 6d5511668545d00da4e3e5dd142b4f082c76b083 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 07e46eb2e25583f0f3e06342f0c854769b353b10
Author: Justus Winter <address@hidden>
Date: Sat Mar 15 14:06:15 2014 +0100
mach-defpager: replace the magic typecast with a hash table
Previously, the mach-defpager used a "magic typecast" for object
lookups. It renamed the port to the address of the associated object,
and upon receiving a message it would cast the port name back to a
pointer.
While this might seem like an optimization, it actually makes the port
handling in the kernel less efficient. Ports with small continuous
names are stored in an array, while other ports get spilled in a splay
tree.
Replace the linked list of default_port_t objects with a hash table.
Do not rename the ports, rather use the hash table to lookup objects
associated with ports.
* mach-defpager/default_pager.c (struct pager_port): Replace queue
with hash table, remove count, move type declaration to priv.h.
(pager_port_list_init): Adjust accordingly.
(pager_port_list_insert): Likewise.
(pager_port_list_delete): Likewise.
(destroy_paging_partition): Replace queue_iterate with HURD_IHASH_ITERATE.
(S_default_pager_objects): Likewise.
(S_default_pager_object_pages): Likewise.
(seqnos_memory_object_create): Do not rename the port but store it in
the hash table.
(S_default_pager_object_create): Likewise.
* mach-defpager/priv.h (struct dstruct): Add fast-removal pointer.
(pnameof): Remove obsolete macro definition.
(dnameof): Likewise.
* mach-defpager/mig-decls.h (begin_using_default_pager): Replace the
magic typecast with a hash table lookup.
* mach-defpager/Makefile (HURDLIBS): Add ihash.
-----------------------------------------------------------------------
Summary of changes:
mach-defpager/Makefile | 1 +
mach-defpager/default_pager.c | 84 +++++++++++++----------------------------
mach-defpager/mig-decls.h | 7 +--
mach-defpager/priv.h | 20 ++++++++--
4 files changed, 45 insertions(+), 67 deletions(-)
hooks/post-receive
--
Hurd
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] Hurd branch, master, updated. v0.5-211-g07e46eb,
Justus Winter <=