diff options
author | Warner Losh <imp@FreeBSD.org> | 2018-03-20 03:37:09 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2018-03-20 03:37:09 +0000 |
commit | 6f591d13fd9eed58aa183a23f6c7025c163b4de2 (patch) | |
tree | c06f3336e671d249fc8f38006b3ba30e64dbe1cd /sys/cam | |
parent | fdfc0a83a344225da6fbdb5aa2f95208ac077b3d (diff) | |
download | src-6f591d13fd9eed58aa183a23f6c7025c163b4de2.tar.gz src-6f591d13fd9eed58aa183a23f6c7025c163b4de2.zip |
Make kern.cam.nda.num_trim tunable to limit the number of BIO_DELETE
requests that we'll collapse into one DSM_TRIM. By default it is a
256, which is the max that will fit into a 4k page.
Sponsored by: Netflix
Notes
Notes:
svn path=/head/; revision=331238
Diffstat (limited to 'sys/cam')
-rw-r--r-- | sys/cam/nvme/nvme_da.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/cam/nvme/nvme_da.c b/sys/cam/nvme/nvme_da.c index 340b48a82248..cf2da478753a 100644 --- a/sys/cam/nvme/nvme_da.c +++ b/sys/cam/nvme/nvme_da.c @@ -167,10 +167,16 @@ static void ndasuspend(void *arg); #define NDA_MAX_TRIM_ENTRIES 256 /* Number of DSM trims to use, max 256 */ #endif +static SYSCTL_NODE(_kern_cam, OID_AUTO, nda, CTLFLAG_RD, 0, + "CAM Direct Access Disk driver"); + //static int nda_retry_count = NDA_DEFAULT_RETRY; static int nda_send_ordered = NDA_DEFAULT_SEND_ORDERED; static int nda_default_timeout = NDA_DEFAULT_TIMEOUT; static int nda_max_trim_entries = NDA_MAX_TRIM_ENTRIES; +SYSCTL_INT(_kern_cam_nda, OID_AUTO, max_trim, CTLFLAG_RDTUN, + &nda_max_trim_entries, NDA_MAX_TRIM_ENTRIES, + "Maximum number of BIO_DELETE to send down as a DSM TRIM."); /* * All NVMe media is non-rotational, so all nvme device instances @@ -178,9 +184,6 @@ static int nda_max_trim_entries = NDA_MAX_TRIM_ENTRIES; */ static int nda_rotating_media = 0; -static SYSCTL_NODE(_kern_cam, OID_AUTO, nda, CTLFLAG_RD, 0, - "CAM Direct Access Disk driver"); - static struct periph_driver ndadriver = { ndainit, "nda", |