Module Name: src Committed By: hannken Date: Fri Jul 24 15:20:37 UTC 2015
Modified Files: src/sys/arch/x86/x86: pmap_tlb.c Log Message: Operation pmap_tlb_processpacket() uses x86_ipi(.., LAPIC_DEST_ALLEXCL, ...) when cpuset "target" equals "kcpuset_running". During boot, while some CPUs are not running yet, this will result in more IPI interrupts than expected and "pmap_tlb_pendcount" related KASSERTs fire. Compare the cpuset "target" against "kcpuset_attached", as this set represents the CPUs LAPIC_DEST_ALLEXCL will notify. Should fix PR port-amd64/47437 To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/sys/arch/x86/x86/pmap_tlb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x86/x86/pmap_tlb.c diff -u src/sys/arch/x86/x86/pmap_tlb.c:1.6 src/sys/arch/x86/x86/pmap_tlb.c:1.7 --- src/sys/arch/x86/x86/pmap_tlb.c:1.6 Sat Apr 21 22:22:48 2012 +++ src/sys/arch/x86/x86/pmap_tlb.c Fri Jul 24 15:20:37 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap_tlb.c,v 1.6 2012/04/21 22:22:48 rmind Exp $ */ +/* $NetBSD: pmap_tlb.c,v 1.7 2015/07/24 15:20:37 hannken Exp $ */ /*- * Copyright (c) 2008-2012 The NetBSD Foundation, Inc. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap_tlb.c,v 1.6 2012/04/21 22:22:48 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap_tlb.c,v 1.7 2015/07/24 15:20:37 hannken Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -297,7 +297,7 @@ pmap_tlb_processpacket(pmap_tlb_packet_t { int err = 0; - if (!kcpuset_match(target, kcpuset_running)) { + if (!kcpuset_match(target, kcpuset_attached)) { const struct cpu_info * const self = curcpu(); CPU_INFO_ITERATOR cii; struct cpu_info *lci;