summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorrf157361 <none@none>2007-03-02 15:47:51 -0800
committerrf157361 <none@none>2007-03-02 15:47:51 -0800
commit367c34e9209dae40b80ed2062f852875086a137f (patch)
tree65825747f052df1f129377cb6756767c1a729964 /usr
parent255daac4062f8778c982d51c1515f6c07f388266 (diff)
downloadillumos-gate-367c34e9209dae40b80ed2062f852875086a137f.tar.gz
6489875 RQFULL must also consider tick-compare for N2
Diffstat (limited to 'usr')
-rw-r--r--usr/src/uts/sun4v/os/error.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr/src/uts/sun4v/os/error.c b/usr/src/uts/sun4v/os/error.c
index 55552de0c5..4980161bc8 100644
--- a/usr/src/uts/sun4v/os/error.c
+++ b/usr/src/uts/sun4v/os/error.c
@@ -646,7 +646,7 @@ mem_sync(caddr_t orig_va, size_t orig_len)
* If resumable queue is full, we need to check if any cpu is in
* error state. If not, we drive on. If yes, we need to panic. The
* hypervisor call hv_cpu_state() is being used for checking the
- * cpu state.
+ * cpu state. And reset %tick_compr in case tick-compare was lost.
*/
static void
errh_rq_full(struct async_flt *afltp)
@@ -654,6 +654,10 @@ errh_rq_full(struct async_flt *afltp)
processorid_t who;
uint64_t cpu_state;
uint64_t retval;
+ uint64_t current_tick;
+
+ current_tick = (uint64_t)gettick();
+ tickcmpr_set(current_tick);
for (who = 0; who < NCPU; who++)
if (CPU_IN_SET(cpu_ready_set, who)) {