From 5dac90bcd64b614e69e1df243ae1f2c6a76da5eb Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Tue, 30 Aug 2016 19:36:53 -0700 Subject: [PATCH] kernel - Fix LOOPMASK debugging for Xinvltlb * Fix LOOPMASK debugging for Xinvltlb, the #if 1 can now be set to #if 0 to turn off the debugging. --- sys/platform/pc64/x86_64/pmap_inval.c | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/sys/platform/pc64/x86_64/pmap_inval.c b/sys/platform/pc64/x86_64/pmap_inval.c index c5b6cbd086..0f2f42deb7 100644 --- a/sys/platform/pc64/x86_64/pmap_inval.c +++ b/sys/platform/pc64/x86_64/pmap_inval.c @@ -136,6 +136,8 @@ pmap_inval_done(pmap_t pmap) crit_exit_id("inval"); } +#ifdef LOOPMASK + /* * API function - invalidation the pte at (va) and replace *ptep with * npte atomically across the pmap's active cpus. @@ -152,26 +154,40 @@ loopdebug(const char *msg, pmap_inval_info_t *info) int cpu = mycpu->gd_cpuid; cpu_lfence(); +#ifdef LOOPMASK atomic_add_long(&smp_smurf_mask.ary[0], 0); - kprintf("%s %d mode=%d m=%08jx d=%08jx s=%08jx " +#endif + kprintf("%s %d mode=%d m=%08jx d=%08jx " +#ifdef LOOPMASK + "s=%08jx " +#endif #ifdef LOOPMASK_IN "in=%08jx " #endif - "smurf=%08jx\n", - msg, cpu, info->mode, +#ifdef LOOPMASK + "smurf=%08jx\n" +#endif + , msg, cpu, info->mode, info->mask.ary[0], - info->done.ary[0], - info->sigmask.ary[0], + info->done.ary[0] +#ifdef LOOPMASK + , info->sigmask.ary[0] +#endif #ifdef LOOPMASK_IN - smp_in_mask.ary[0], + , smp_in_mask.ary[0] +#endif +#ifdef LOOPMASK + , smp_smurf_mask.ary[0] #endif - smp_smurf_mask.ary[0]); + ); kprintf("mdglob "); for (p = 0; p < ncpus; ++p) kprintf(" %d", CPU_prvspace[p]->mdglobaldata.gd_xinvaltlb); kprintf("\n"); } +#endif + #ifdef CHECKSIG #define CHECKSIGMASK(info) _checksigmask(info, __FILE__, __LINE__) @@ -439,7 +455,9 @@ pmap_inval_smp_cmpset(pmap_t pmap, vm_offset_t va, pt_entry_t *ptep, info->ptep = ptep; info->npte = npte; info->opte = opte; +#ifdef LOOPMASK info->failed = 0; +#endif info->mode = INVCMPSET; info->success = 0; -- 2.11.4.GIT