Print this page
4045 zfs write throttle & i/o scheduler performance work
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/zil.c
          +++ new/usr/src/uts/common/fs/zfs/zil.c
↓ open down ↓ 864 lines elided ↑ open up ↑
 865  865              ZB_ZIL_OBJECT, ZB_ZIL_LEVEL,
 866  866              lwb->lwb_blk.blk_cksum.zc_word[ZIL_ZC_SEQ]);
 867  867  
 868  868          if (zilog->zl_root_zio == NULL) {
 869  869                  zilog->zl_root_zio = zio_root(zilog->zl_spa, NULL, NULL,
 870  870                      ZIO_FLAG_CANFAIL);
 871  871          }
 872  872          if (lwb->lwb_zio == NULL) {
 873  873                  lwb->lwb_zio = zio_rewrite(zilog->zl_root_zio, zilog->zl_spa,
 874  874                      0, &lwb->lwb_blk, lwb->lwb_buf, BP_GET_LSIZE(&lwb->lwb_blk),
 875      -                    zil_lwb_write_done, lwb, ZIO_PRIORITY_LOG_WRITE,
      875 +                    zil_lwb_write_done, lwb, ZIO_PRIORITY_SYNC_WRITE,
 876  876                      ZIO_FLAG_CANFAIL | ZIO_FLAG_DONT_PROPAGATE, &zb);
 877  877          }
 878  878  }
 879  879  
 880  880  /*
 881  881   * Define a limited set of intent log block sizes.
 882  882   *
 883  883   * These must be a multiple of 4KB. Note only the amount used (again
 884  884   * aligned to 4KB) actually gets written. However, we can't always just
 885  885   * allocate SPA_MAXBLOCKSIZE as the slog space could be exhausted.
↓ open down ↓ 1231 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX