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
This commit is contained in:
Warner Losh 2018-03-20 03:37:09 +00:00
parent fdfc0a83a3
commit 6f591d13fd
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=331238

View File

@ -167,10 +167,16 @@ static void ndasuspend(void *arg);
#define NDA_MAX_TRIM_ENTRIES 256 /* Number of DSM trims to use, max 256 */ #define NDA_MAX_TRIM_ENTRIES 256 /* Number of DSM trims to use, max 256 */
#endif #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_retry_count = NDA_DEFAULT_RETRY;
static int nda_send_ordered = NDA_DEFAULT_SEND_ORDERED; static int nda_send_ordered = NDA_DEFAULT_SEND_ORDERED;
static int nda_default_timeout = NDA_DEFAULT_TIMEOUT; static int nda_default_timeout = NDA_DEFAULT_TIMEOUT;
static int nda_max_trim_entries = NDA_MAX_TRIM_ENTRIES; 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 * 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 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 = static struct periph_driver ndadriver =
{ {
ndainit, "nda", ndainit, "nda",