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)); _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"