Author: imp
Date: Tue Mar 20 03:37:09 2018
New Revision: 331238
URL: https://svnweb.freebsd.org/changeset/base/331238

Log:
  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

Modified:
  head/sys/cam/nvme/nvme_da.c

Modified: head/sys/cam/nvme/nvme_da.c
==============================================================================
--- head/sys/cam/nvme/nvme_da.c Tue Mar 20 03:37:04 2018        (r331237)
+++ head/sys/cam/nvme/nvme_da.c Tue Mar 20 03:37:09 2018        (r331238)
@@ -167,19 +167,22 @@ 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
  * share this to implement the sysctl.
  */
 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 =
 {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to