Date: Mon, 29 Aug 2016 20:51:34 +0000 (UTC) From: "Conrad E. Meyer" <cem@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r305028 - head/sys/dev/ioat Message-ID: <201608292051.u7TKpYSS005907@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: cem Date: Mon Aug 29 20:51:34 2016 New Revision: 305028 URL: https://svnweb.freebsd.org/changeset/base/305028 Log: ioat(4): Add additional CTR tracing during reset Modified: head/sys/dev/ioat/ioat.c Modified: head/sys/dev/ioat/ioat.c ============================================================================== --- head/sys/dev/ioat/ioat.c Mon Aug 29 20:46:33 2016 (r305027) +++ head/sys/dev/ioat/ioat.c Mon Aug 29 20:51:34 2016 (r305028) @@ -1831,6 +1831,9 @@ ioat_reset_hw(struct ioat_softc *ioat) ioat->resetting_cleanup = TRUE; mtx_unlock(&ioat->cleanup_lock); + CTR2(KTR_IOAT, "%s channel=%u quiesced and drained", __func__, + ioat->chan_idx); + status = ioat_get_chansts(ioat); if (is_ioat_active(status) || is_ioat_idle(status)) ioat_suspend(ioat); @@ -1851,6 +1854,9 @@ ioat_reset_hw(struct ioat_softc *ioat) chanerr = ioat_read_4(ioat, IOAT_CHANERR_OFFSET); ioat_write_4(ioat, IOAT_CHANERR_OFFSET, chanerr); + CTR2(KTR_IOAT, "%s channel=%u hardware suspended", __func__, + ioat->chan_idx); + /* * IOAT v3 workaround - CHANERRMSK_INT with 3E07h to masks out errors * that can cause stability issues for IOAT v3. @@ -1870,6 +1876,8 @@ ioat_reset_hw(struct ioat_softc *ioat) } ioat_reset(ioat); + CTR2(KTR_IOAT, "%s channel=%u hardware reset", __func__, + ioat->chan_idx); /* Wait at most 20 ms */ for (timeout = 0; ioat_reset_pending(ioat) && timeout < 20; timeout++) @@ -1919,11 +1927,16 @@ ioat_reset_hw(struct ioat_softc *ioat) ioat_write_chancmp(ioat, ioat->comp_update_bus_addr); ioat_write_chainaddr(ioat, ioat->ring[0]->hw_desc_bus_addr); error = 0; + CTR2(KTR_IOAT, "%s channel=%u configured channel", __func__, + ioat->chan_idx); out: /* Enqueues a null operation and ensures it completes. */ - if (error == 0) + if (error == 0) { error = ioat_start_channel(ioat); + CTR2(KTR_IOAT, "%s channel=%u started channel", __func__, + ioat->chan_idx); + } /* * Resume completions now that ring state is consistent. @@ -1943,6 +1956,7 @@ out: if (ioat->is_completion_pending) callout_reset(&ioat->poll_timer, 1, ioat_poll_timer_callback, ioat); + CTR2(KTR_IOAT, "%s channel=%u reset done", __func__, ioat->chan_idx); mtx_unlock(IOAT_REFLK); return (error);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201608292051.u7TKpYSS005907>