Print this page
4334 Improve ZFS N-way mirror read performance

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/sys/vdev.h
          +++ new/usr/src/uts/common/fs/zfs/sys/vdev.h
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24   * Copyright (c) 2012 by Delphix. All rights reserved.
       25 + * Copyright (c) 2013 Steven Hartland. All rights reserved.
  25   26   */
  26   27  
  27   28  #ifndef _SYS_VDEV_H
  28   29  #define _SYS_VDEV_H
  29   30  
  30   31  #include <sys/spa.h>
  31   32  #include <sys/zio.h>
  32   33  #include <sys/dmu.h>
  33   34  #include <sys/space_map.h>
  34   35  #include <sys/fs/zfs.h>
↓ open down ↓ 76 lines elided ↑ open up ↑
 111  112  extern void vdev_cache_init(vdev_t *vd);
 112  113  extern void vdev_cache_fini(vdev_t *vd);
 113  114  extern int vdev_cache_read(zio_t *zio);
 114  115  extern void vdev_cache_write(zio_t *zio);
 115  116  extern void vdev_cache_purge(vdev_t *vd);
 116  117  
 117  118  extern void vdev_queue_init(vdev_t *vd);
 118  119  extern void vdev_queue_fini(vdev_t *vd);
 119  120  extern zio_t *vdev_queue_io(zio_t *zio);
 120  121  extern void vdev_queue_io_done(zio_t *zio);
      122 +extern int vdev_queue_length(vdev_t *vd);
      123 +extern uint64_t vdev_queue_lastoffset(vdev_t *vd);
      124 +extern void vdev_queue_register_lastoffset(vdev_t *vd, zio_t *zio);
 121  125  
 122  126  extern void vdev_config_dirty(vdev_t *vd);
 123  127  extern void vdev_config_clean(vdev_t *vd);
 124  128  extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg,
 125  129      boolean_t);
 126  130  
 127  131  extern void vdev_state_dirty(vdev_t *vd);
 128  132  extern void vdev_state_clean(vdev_t *vd);
 129  133  
 130  134  typedef enum vdev_config_flag {
↓ open down ↓ 34 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX