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

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 */
#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",