commit-hurd
[Top][All Lists]
Advanced

[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



reply via email to

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