Print this page
3752 want more verifiable dbuf user eviction
Submitted by:   Justin Gibbs <justing@spectralogic.com>
Submitted by:   Will Andrews <willa@spectralogic.com>


  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  25  */
  26 
  27 #ifndef _SYS_DMU_IMPL_H
  28 #define _SYS_DMU_IMPL_H
  29 
  30 #include <sys/txg_impl.h>
  31 #include <sys/zio.h>
  32 #include <sys/dnode.h>
  33 #include <sys/zfs_context.h>
  34 #include <sys/zfs_ioctl.h>

  35 
  36 #ifdef  __cplusplus
  37 extern "C" {
  38 #endif
  39 
  40 /*
  41  * This is the locking strategy for the DMU.  Numbers in parenthesis are
  42  * cases that use that lock order, referenced below:
  43  *
  44  * ARC is self-contained
  45  * bplist is self-contained
  46  * refcount is self-contained
  47  * txg is self-contained (hopefully!)
  48  * zst_lock
  49  * zf_rwlock
  50  *
  51  * XXX try to improve evicting path?
  52  *
  53  * dp_config_rwlock > os_obj_lock > dn_struct_rwlock >
  54  *      dn_dbufs_mtx > hash_mutexes > db_mtx > dd_lock > leafs




  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*
  22  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  23  * Use is subject to license terms.
  24  * Copyright (c) 2012, Joyent, Inc. All rights reserved.
  25  */
  26 
  27 #ifndef _SYS_DMU_IMPL_H
  28 #define _SYS_DMU_IMPL_H
  29 
  30 #include <sys/txg_impl.h>
  31 #include <sys/zio.h>
  32 #include <sys/dnode.h>
  33 #include <sys/zfs_context.h>
  34 #include <sys/zfs_ioctl.h>
  35 #include <sys/dmu.h>
  36 
  37 #ifdef  __cplusplus
  38 extern "C" {
  39 #endif
  40 
  41 /*
  42  * This is the locking strategy for the DMU.  Numbers in parenthesis are
  43  * cases that use that lock order, referenced below:
  44  *
  45  * ARC is self-contained
  46  * bplist is self-contained
  47  * refcount is self-contained
  48  * txg is self-contained (hopefully!)
  49  * zst_lock
  50  * zf_rwlock
  51  *
  52  * XXX try to improve evicting path?
  53  *
  54  * dp_config_rwlock > os_obj_lock > dn_struct_rwlock >
  55  *      dn_dbufs_mtx > hash_mutexes > db_mtx > dd_lock > leafs