Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-8]: src/sys/arch/powerpc/oea Pull up following revision(s) (reque...



details:   https://anonhg.NetBSD.org/src/rev/2a24067015d6
branches:  netbsd-8
changeset: 934214:2a24067015d6
user:      martin <martin%NetBSD.org@localhost>
date:      Sun Jun 07 12:23:43 2020 +0000

description:
Pull up following revision(s) (requested by rin in ticket #1554):

        sys/arch/powerpc/oea/pmap.c: revision 1.96

Stop returning while PMAP_LOCK() (= KERNEL_LOCK(1, NULL)) is held.
Kernel freeze with heavy load is significantly mitigated (fixed?),
in which I could not even enter DDB from console.

XXX
There is still inconsistency in usage of two PVO pools.
I will send-pr later.

XXX
pullup to netbsd-[987]

diffstat:

 sys/arch/powerpc/oea/pmap.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (34 lines):

diff -r 6ea2f953eff0 -r 2a24067015d6 sys/arch/powerpc/oea/pmap.c
--- a/sys/arch/powerpc/oea/pmap.c       Sun May 31 10:48:27 2020 +0000
+++ b/sys/arch/powerpc/oea/pmap.c       Sun Jun 07 12:23:43 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.94.8.1 2018/02/27 09:07:33 martin Exp $     */
+/*     $NetBSD: pmap.c,v 1.94.8.2 2020/06/07 12:23:43 martin Exp $     */
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.94.8.1 2018/02/27 09:07:33 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.94.8.2 2020/06/07 12:23:43 martin Exp $");
 
 #define        PMAP_NOOPNAMES
 
@@ -991,6 +991,7 @@
                        }
                        source_pvo = pvo;
                        if (exec && !PVO_EXECUTABLE_P(source_pvo)) {
+                               PMAP_UNLOCK();
                                return 0;
                        }
                        if (victim_pvo != NULL)
@@ -2162,6 +2163,7 @@
                                return true;
                        }
                }
+               PMAP_UNLOCK();
                return false;
 #elif defined (PMAP_OEA64_BRIDGE)
        if (va >= SEGMENT_LENGTH)



Home | Main Index | Thread Index | Old Index