Source-Changes-HG archive

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

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



details:   https://anonhg.NetBSD.org/src/rev/701740479d58
branches:  netbsd-9
changeset: 963922:701740479d58
user:      martin <martin%NetBSD.org@localhost>
date:      Sun Jun 07 12:21:35 2020 +0000

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

        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 2a4083ca85c3 -r 701740479d58 sys/arch/powerpc/oea/pmap.c
--- a/sys/arch/powerpc/oea/pmap.c       Sun May 31 10:46:21 2020 +0000
+++ b/sys/arch/powerpc/oea/pmap.c       Sun Jun 07 12:21:35 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.95 2018/01/27 23:07:36 chs Exp $    */
+/*     $NetBSD: pmap.c,v 1.95.8.1 2020/06/07 12:21:35 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.95 2018/01/27 23:07:36 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.95.8.1 2020/06/07 12:21:35 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