Print this page
4752 fan out read zio taskqs
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Dan McDonald <danmcd@omniti.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/spa.c
          +++ new/usr/src/uts/common/fs/zfs/spa.c
↓ open down ↓ 13 lines elided ↑ open up ↑
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  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      - * Copyright (c) 2013 by Delphix. All rights reserved.
       24 + * Copyright (c) 2011, 2014 by Delphix. All rights reserved.
  25   25   * Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  26   26   */
  27   27  
  28   28  /*
  29   29   * SPA: Storage Pool Allocator
  30   30   *
  31   31   * This file contains all the routines used when modifying on-disk SPA state.
  32   32   * This includes opening, importing, destroying, exporting a pool, and syncing a
  33   33   * pool.
  34   34   */
↓ open down ↓ 87 lines elided ↑ open up ↑
 122  122   * taskq and the number of taskqs; when dispatching an event in this case, the
 123  123   * particular taskq is chosen at random.
 124  124   *
 125  125   * The different taskq priorities are to handle the different contexts (issue
 126  126   * and interrupt) and then to reserve threads for ZIO_PRIORITY_NOW I/Os that
 127  127   * need to be handled with minimum delay.
 128  128   */
 129  129  const zio_taskq_info_t zio_taskqs[ZIO_TYPES][ZIO_TASKQ_TYPES] = {
 130  130          /* ISSUE        ISSUE_HIGH      INTR            INTR_HIGH */
 131  131          { ZTI_ONE,      ZTI_NULL,       ZTI_ONE,        ZTI_NULL }, /* NULL */
 132      -        { ZTI_N(8),     ZTI_NULL,       ZTI_BATCH,      ZTI_NULL }, /* READ */
      132 +        { ZTI_N(8),     ZTI_NULL,       ZTI_P(12, 8),   ZTI_NULL }, /* READ */
 133  133          { ZTI_BATCH,    ZTI_N(5),       ZTI_N(8),       ZTI_N(5) }, /* WRITE */
 134  134          { ZTI_P(12, 8), ZTI_NULL,       ZTI_ONE,        ZTI_NULL }, /* FREE */
 135  135          { ZTI_ONE,      ZTI_NULL,       ZTI_ONE,        ZTI_NULL }, /* CLAIM */
 136  136          { ZTI_ONE,      ZTI_NULL,       ZTI_ONE,        ZTI_NULL }, /* IOCTL */
 137  137  };
 138  138  
 139  139  static void spa_sync_version(void *arg, dmu_tx_t *tx);
 140  140  static void spa_sync_props(void *arg, dmu_tx_t *tx);
 141  141  static boolean_t spa_has_active_shared_spare(spa_t *spa);
 142  142  static int spa_load_impl(spa_t *spa, uint64_t, nvlist_t *config,
↓ open down ↓ 6406 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX