commit-hurd
[Top][All Lists]
Advanced

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

[SCM] Hurd branch, master, updated. v0.6-13-gb497f16


From: Justus Winter
Subject: [SCM] Hurd branch, master, updated. v0.6-13-gb497f16
Date: Fri, 17 Apr 2015 20:33:18 +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  b497f1613187c142ad6d0b76761a49811c37da80 (commit)
       via  4266bb02b1f3342d3fc4920c07c71592a14acdd9 (commit)
       via  c234e34ad80801acd902c6d4892a7722fd084a87 (commit)
       via  bf06e6535f7e00a3711978fa7835a3394b82b547 (commit)
       via  e00a105ff35ee53bfd6caeb6f29c47d8ed7cf3ab (commit)
       via  499bcd54f132464fcec55583fcf433fbe6ce4e3b (commit)
       via  6d9601c56f2dd29cfbcf8dee30a2fff24a39df17 (commit)
       via  cfe76b64ba01edcac75f751aba1766ade2e54c7d (commit)
       via  c16eed2cb64089bf7d958db0fe85352f4ceefb4d (commit)
       via  8c050fb080c6e1981dc8e5a97a2313cd24e9b4b4 (commit)
       via  f4823c00581eb91e5b42169405e641463256bbfa (commit)
       via  e17366f09a6003dcc95633ce312aa3753f056e28 (commit)
       via  4166312a45357c2ff11b00219dfb83b7475ac4b1 (commit)
      from  b8ffab7c38f3ede424b8a07553d6ee6b16abb85b (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 b497f1613187c142ad6d0b76761a49811c37da80
Author: Justus Winter <address@hidden>
Date:   Thu Apr 16 16:12:05 2015 +0200

    fatfs: port to libdiskfs' node cache
    
    * fatfs/inode.c: Drop all cache-related code.
    (diskfs_user_make_node): New function.
    (diskfs_cached_lookup_in_dirbuf): Reimplement using the `lookup_context'.
    (read_node): Rename to diskfs_user_read_node and adopt accordingly.
    (diskfs_try_dropping_softrefs): Rename to 
`diskfs_user_try_dropping_softrefs'.
    (diskfs_node_reload): Pass context to `diskfs_user_read_node'.
    (diskfs_alloc_node): Pass `dir' via context to `diskfs_user_read_node'.
    * fatfs/fatfs.h (struct disknode): Drop fields `hnext', `hprevp'.
    (struct lookup_context): New definition.
    (ifind): Drop declaration.
    * fatfs/dir.c (diskfs_lookup_hard): Adjust accordingly.
    * fatfs/main.c (fetch_root): Likewise.

commit 4266bb02b1f3342d3fc4920c07c71592a14acdd9
Author: Justus Winter <address@hidden>
Date:   Wed Apr 15 16:26:31 2015 +0200

    isofs: port to libdiskfs' node cache
    
    * isofs/inode.c: Drop all cache-related code.
    (diskfs_user_make_node): New function.
    (calculate_file_start): Check for `record' being null.
    (cache_id): New function.
    (read_node): Rename to diskfs_user_read_node and adopt accordingly.
    (diskfs_try_dropping_softrefs): Rename to diskfs_user_try_dropping_softrefs.
    * isofs/isofs.h (struct lookup_context): New definition.
    (cache_id): New declaration.
    * isofs/lookup.c (diskfs_lookup_hard): Adjust accordingly.
    * isofs/main.c (fetch_root): Likewise.

commit c234e34ad80801acd902c6d4892a7722fd084a87
Author: Justus Winter <address@hidden>
Date:   Wed Apr 15 13:17:06 2015 +0200

    libdiskfs: implement a node cache
    
    Previously, all users of libdiskfs implemented a node cache on their
    own.  Move the node cache from ext2fs into libdiskfs.  We preserve the
    previous API by marking all functions that we pull from ext2fs as
    weak, so that users like tmpfs can still implement their own node
    cache.
    
    * ext2fs/dir.c (diskfs_lookup_hard): Adjust accordingly.
    * ext2fs/ext2fs.c (main): Don't call `inode_init'.
    * ext2fs/ext2fs.h (struct disknode): Drop `hnext', `hprevp'.
    * ext2fs/inode.c: Move the node cache into diskfs.
    (diskfs_user_make_node): New function.
    (diskfs_try_dropping_softrefs): Rename to 
`diskfs_user_try_dropping_softrefs'.
    (read_node): Rename to `diskfs_user_read_node'.  Also move a chunk of
    code dealing with generations from `diskfs_cached_lookup' here.
    * libdiskfs/Makefile (OTHERSRCS): Add `node-cache.c'.
    * libdiskfs/diskfs.h (struct node): Add `hnext', `hprevp'.
    Amend existing comments, add forward declarations.
    * libdiskfs/node-cache.c: New file.

commit bf06e6535f7e00a3711978fa7835a3394b82b547
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 22:37:31 2015 +0200

    ext2fs: use fat nodes
    
    Use `diskfs_make_node_alloc' to allocate both the node and the
    disknode in a continuous chunk of memory.  This increases locality and
    reduces the pressure on the memory allocator.
    
    * ext2fs/inode.c: Use `diskfs_node_disknode' to access the disknode.
    (diskfs_cached_lookup): Use `diskfs_make_node_alloc' to allocate the
    node.
    (diskfs_node_norefs): Only free `np'.
    * ext2fs/dir.c: Use `diskfs_node_disknode' to access the disknode.
    * ext2fs/ext2fs.h: Likewise.
    * ext2fs/getblk.c: Likewise.
    * ext2fs/ialloc.c: Likewise.
    * ext2fs/pager.c: Likewise.
    * ext2fs/truncate.c: Likewise.

commit e00a105ff35ee53bfd6caeb6f29c47d8ed7cf3ab
Author: Justus Winter <address@hidden>
Date:   Fri Apr 17 17:44:07 2015 +0200

    libdiskfs: declare all inline functions as `extern inline'
    
    * libdiskfs/diskfs.h (diskfs_node_disknode, diskfs_disknode_node):
    Declare functions as `extern inline' so that we can use them in other
    functions declared as `extern inline'.

commit 499bcd54f132464fcec55583fcf433fbe6ce4e3b
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 21:24:48 2015 +0200

    libdiskfs: fix node initialization
    
    * libdiskfs/node-make.c (init_node): Initialize flag `author_tracks_uid'.

commit 6d9601c56f2dd29cfbcf8dee30a2fff24a39df17
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 21:18:31 2015 +0200

    libdiskfs: drop unused fields from struct node
    
    * libdiskfs/diskfs.h (struct node): Drop unused fields from struct
    node.

commit cfe76b64ba01edcac75f751aba1766ade2e54c7d
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 21:17:19 2015 +0200

    libdiskfs: make struct node more compact
    
    * libdiskfs/diskfs.h (struct node): Turn flags into a bit field.

commit c16eed2cb64089bf7d958db0fe85352f4ceefb4d
Author: Justus Winter <address@hidden>
Date:   Wed May 14 11:19:35 2014 +0200

    libdiskfs: lock-less reference counting of nodes
    
    * libdiskfs/diskfs.h (struct node): Use refcounts_t for reference counting.
    (diskfs_node_refcnt_lock): Remove.
    (diskfs_node_norefs,diskfs_drop_node): Change comments accordingly.
    * libdiskfs/init-init.c: Adjust accordingly.
    * libdiskfs/node-drop.c: Likewise.
    * libdiskfs/node-make.c: Likewise.
    * libdiskfs/node-nput.c: Likewise.
    * libdiskfs/node-nputl.c: Likewise.
    * libdiskfs/node-nref.c: Likewise.
    * libdiskfs/node-nrefl.c: Likewise.
    * libdiskfs/node-nrele.c: Likewise.
    * libdiskfs/node-nrelel.c: Likewise.
    * ext2fs/inode.c: Likewise.
    * fatfs/inode.c: Likewise.
    * isofs/inode.c: Likewise.
    * tmpfs/node.c: Likewise.
    * doc/hurd.texi: Likewise.

commit 8c050fb080c6e1981dc8e5a97a2313cd24e9b4b4
Author: Justus Winter <address@hidden>
Date:   Tue May 13 15:35:42 2014 +0200

    tmpfs: use a seperate lock to protect all_nodes
    
    Previously, tmpfs used diskfs_node_refcnt_lock to serialize access to
    the all_nodes and some other related global state related to memory
    consumption.
    
    Use a separate lock to protect all_nodes, and atomic operations to
    access the state related to memory consumption. Adjust the reference
    counting accordingly.  Every node in the all_nodes carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the all_nodes.
    
    * tmpfs/tmpfs.h (num_files, tmpfs_space_used): Use atomic operations
    for these variables.
    (adjust_used): Use atomic operations.
    (get_used): New convenience function to atomically retrieve
    tmpfs_space_used.
    * tmpfs/node.c (all_nodes_lock): New lock.
    (diskfs_alloc_node): Use a separate lock to protect all_nodes.
    Adjust the reference counting accordingly.
    (diskfs_free_node): Likewise.
    (diskfs_cached_lookup):Likewise.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Do not remove the node from all_nodes.  This
    actually looks like a mistake, I do not know why they did that here as
    well as in diskfs_free_node.
    (diskfs_try_dropping_softrefs): Check whether someone reacquired a
    reference, and if so hold on to our light reference.
    (diskfs_grow): Use atomic operations.
    * tmpfs/tmpfs.c (diskfs_set_statfs): Likewise.

commit f4823c00581eb91e5b42169405e641463256bbfa
Author: Justus Winter <address@hidden>
Date:   Tue May 13 15:16:31 2014 +0200

    isofs: use a seperate lock to protect node_cache
    
    Previously, isofs used diskfs_node_refcnt_lock to serialize access to
    the node_cache.
    
    Use a separate lock to protect node_cache.  Adjust the reference
    counting accordingly.  Every node in the node_cache carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the node_cache.
    
    * isofs/inode.c (nodecache_lock): New lock.
    (inode_cache_find): Use a separate lock to protect node_cache.
    Adjust the reference counting accordingly.
    (diskfs_cached_lookup): Likewise.
    (load_inode): Likewise.
    (cache_inode): Update comment accordingly.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Move the code removing the node from node_cache...
    (diskfs_try_dropping_softrefs): ... here, where we check whether
    someone reacquired a reference, and if so hold on to our light
    reference.

commit e17366f09a6003dcc95633ce312aa3753f056e28
Author: Justus Winter <address@hidden>
Date:   Tue May 13 15:14:53 2014 +0200

    fatfs: use a seperate lock to protect nodehash
    
    Previously, fatfs used diskfs_node_refcnt_lock to serialize access to
    the nodehash.
    
    Use a separate lock to protect nodehash.  Adjust the reference
    counting accordingly.  Every node in the nodehash carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the nodehash.
    
    * fatfs/inode.c (nodecache_lock): New lock.
    (diskfs_cached_lookup): Use a separate lock to protect nodehash.
    Adjust the reference counting accordingly.
    (ifind): Likewise.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Move the code removing the node from nodehash...
    (diskfs_try_dropping_softrefs): ... here, where we check whether
    someone reacquired a reference, and if so hold on to our light
    reference.

commit 4166312a45357c2ff11b00219dfb83b7475ac4b1
Author: Justus Winter <address@hidden>
Date:   Tue May 13 13:09:15 2014 +0200

    ext2fs: use a seperate lock to protect nodehash
    
    Previously, ext2fs used diskfs_node_refcnt_lock to serialize access to
    the nodehash.
    
    Use a separate lock to protect nodehash.  Adjust the reference
    counting accordingly.  Every node in the nodehash carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the nodehash.
    
    * ext2fs/inode.c (nodecache_lock): New lock.
    (diskfs_cached_lookup): Use a separate lock to protect nodehash.
    Adjust the reference counting accordingly.
    (ifind): Likewise.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Move the code removing the node from nodehash...
    (diskfs_try_dropping_softrefs): ... here, where we check whether
    someone reacquired a reference, and if so hold on to our light
    reference.

-----------------------------------------------------------------------

Summary of changes:
 doc/hurd.texi           |   11 +--
 ext2fs/dir.c            |   79 +++++++-------
 ext2fs/ext2fs.c         |    2 -
 ext2fs/ext2fs.h         |   13 +--
 ext2fs/getblk.c         |   63 ++++++------
 ext2fs/ialloc.c         |   13 ++-
 ext2fs/inode.c          |  231 ++++++++--------------------------------
 ext2fs/pager.c          |   52 +++++-----
 ext2fs/truncate.c       |   16 ++--
 fatfs/dir.c             |    6 +-
 fatfs/fatfs.h           |   17 ++-
 fatfs/inode.c           |  254 ++++++---------------------------------------
 fatfs/main.c            |    6 +-
 isofs/inode.c           |  267 +++++++----------------------------------------
 isofs/isofs.h           |   13 ++-
 isofs/lookup.c          |   18 ++--
 isofs/main.c            |   15 ++-
 libdiskfs/Makefile      |    2 +-
 libdiskfs/diskfs.h      |   90 ++++++++++++----
 libdiskfs/init-init.c   |    2 -
 libdiskfs/node-cache.c  |  260 +++++++++++++++++++++++++++++++++++++++++++++
 libdiskfs/node-drop.c   |   11 +-
 libdiskfs/node-make.c   |    4 +-
 libdiskfs/node-nput.c   |   52 ++++------
 libdiskfs/node-nputl.c  |   12 +--
 libdiskfs/node-nref.c   |    9 +-
 libdiskfs/node-nrefl.c  |    4 +-
 libdiskfs/node-nrele.c  |   48 ++++-----
 libdiskfs/node-nrelel.c |    9 +-
 tmpfs/node.c            |  104 +++++++++++++------
 tmpfs/tmpfs.c           |    6 +-
 tmpfs/tmpfs.h           |   20 +++-
 32 files changed, 766 insertions(+), 943 deletions(-)
 create mode 100644 libdiskfs/node-cache.c


hooks/post-receive
-- 
Hurd



reply via email to

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