svn commit: r242420 - head/sys/dev/nvme
Jim Harris
jimharris at FreeBSD.org
Wed Oct 31 23:44:20 UTC 2012
Author: jimharris
Date: Wed Oct 31 23:44:19 2012
New Revision: 242420
URL: http://svn.freebsd.org/changeset/base/242420
Log:
Use callout_reset_curcpu to allow the callout to be handled by the
current CPU and not always CPU 0.
This has the added benefit of reducing a huge amount of spinlock
contention on the callout_cpu spinlock for CPU 0.
Sponsored by: Intel
Modified:
head/sys/dev/nvme/nvme_qpair.c
Modified: head/sys/dev/nvme/nvme_qpair.c
==============================================================================
--- head/sys/dev/nvme/nvme_qpair.c Wed Oct 31 22:21:33 2012 (r242419)
+++ head/sys/dev/nvme/nvme_qpair.c Wed Oct 31 23:44:19 2012 (r242420)
@@ -390,7 +390,12 @@ nvme_qpair_submit_cmd(struct nvme_qpair
req->cmd.cid = tr->cid;
qpair->act_tr[tr->cid] = tr;
+#if __FreeBSD_version >= 800030
+ callout_reset_curcpu(&tr->timer, NVME_TIMEOUT_IN_SEC * hz,
+ nvme_timeout, tr);
+#else
callout_reset(&tr->timer, NVME_TIMEOUT_IN_SEC * hz, nvme_timeout, tr);
+#endif
/* Copy the command from the tracker to the submission queue. */
memcpy(&qpair->cmd[qpair->sq_tail], &req->cmd, sizeof(req->cmd));
More information about the svn-src-head
mailing list