Date: Thu, 19 Feb 2015 14:05:18 +0000 From: Steven Hartland <killing@multiplay.co.uk> To: freebsd-fs@freebsd.org Subject: Re: Creating zpool on NVMe Disks takes forever Message-ID: <54E5ED9E.9010408@multiplay.co.uk> In-Reply-To: <54E5D574.8020406@fuckner.net> References: <54E5BB12.3060707@fuckner.net> <54E5CF6E.5030906@multiplay.co.uk> <54E5D574.8020406@fuckner.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------020602090107060600080905 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 19/02/2015 12:22, Michael Fuckner wrote: > On 02/19/2015 12:56 PM, Steven Hartland wrote: >> Disable trim on init: >> sysctl vfs.zfs.vdev.trim_on_init=0 > this fixed it, thx! > > but why does it take >8h to trim 2x 400GB? Or is trimming handled > differently on NVMe than on HDD/SSD? Its very basic but you might want to give the attached patch a go and see if it reduces you TRIM time significantly? Regards Steve --------------020602090107060600080905 Content-Type: text/x-patch; name="nvd-delmaxsize.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="nvd-delmaxsize.patch" Index: sys/dev/nvd/nvd.c =================================================================== --- sys/dev/nvd/nvd.c (revision 278999) +++ sys/dev/nvd/nvd.c (working copy) @@ -287,8 +287,10 @@ nvd_new_disk(struct nvme_namespace *ns, void *ctrl disk->d_flags = 0; - if (nvme_ns_get_flags(ns) & NVME_NS_DEALLOCATE_SUPPORTED) + if (nvme_ns_get_flags(ns) & NVME_NS_DEALLOCATE_SUPPORTED) { disk->d_flags |= DISKFLAG_CANDELETE; + disk->d_delmaxsize = ((off_t)disk->d_sectorsize * ((off_t)1 << 32)); + } if (nvme_ns_get_flags(ns) & NVME_NS_FLUSH_SUPPORTED) disk->d_flags |= DISKFLAG_CANFLUSHCACHE; --------------020602090107060600080905--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54E5ED9E.9010408>