diff options
author | jimharris <jimharris@FreeBSD.org> | 2015-07-27 15:32:37 +0000 |
---|---|---|
committer | jimharris <jimharris@FreeBSD.org> | 2015-07-27 15:32:37 +0000 |
commit | 6e669fcd5fcfae645821748bce9ce554e5ac1024 (patch) | |
tree | 25174a64d6b36fc8df64cd25db9b51453bcfc23c /sys/dev/nvd/nvd.c | |
parent | 9c93ec1f0bfb28216eaa38482d4a91ea5ff2808e (diff) | |
download | FreeBSD-src-6e669fcd5fcfae645821748bce9ce554e5ac1024.zip FreeBSD-src-6e669fcd5fcfae645821748bce9ce554e5ac1024.tar.gz |
MFC r285767:
nvd: set d_delmaxsize to full capacity of NVMe namespace
The NVMe specification has no ability to specify a maximum delete size
that is less than the full capacity of the namespace - so just using the
namespace size is the correct value here.
This fixes reported issues where ZFS trim on init looked like it was
hanging the system - previously the default I/O max size (128KB on
Intel NVMe controllers) was used for delete operations which worked out
to only about 8MB/s. With this patch I can add an 800GB DC P3700
drive to a ZFS pool in about 15-20 seconds.
Sponsored by: Intel
Diffstat (limited to 'sys/dev/nvd/nvd.c')
-rw-r--r-- | sys/dev/nvd/nvd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/nvd/nvd.c b/sys/dev/nvd/nvd.c index b48fb35..016d728 100644 --- a/sys/dev/nvd/nvd.c +++ b/sys/dev/nvd/nvd.c @@ -278,6 +278,7 @@ nvd_new_disk(struct nvme_namespace *ns, void *ctrlr_arg) disk->d_maxsize = nvme_ns_get_max_io_xfer_size(ns); disk->d_sectorsize = nvme_ns_get_sector_size(ns); disk->d_mediasize = (off_t)nvme_ns_get_size(ns); + disk->d_delmaxsize = (off_t)nvme_ns_get_size(ns); if (TAILQ_EMPTY(&disk_head)) disk->d_unit = 0; |