aboutsummaryrefslogtreecommitdiffstats
path: root/sys/cam/nvme/nvme_da.c
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-03-20 03:37:09 +0000
committerWarner Losh <imp@FreeBSD.org>2018-03-20 03:37:09 +0000
commit6f591d13fd9eed58aa183a23f6c7025c163b4de2 (patch)
treec06f3336e671d249fc8f38006b3ba30e64dbe1cd /sys/cam/nvme/nvme_da.c
parentfdfc0a83a344225da6fbdb5aa2f95208ac077b3d (diff)
downloadsrc-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/nvme/nvme_da.c')
-rw-r--r--sys/cam/nvme/nvme_da.c9
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",