Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/powerpc/oea Stop returning while PMAP_LOCK() (= KER...



details:   https://anonhg.NetBSD.org/src/rev/574b3bb303d3
branches:  trunk
changeset: 933908:574b3bb303d3
user:      rin <rin%NetBSD.org@localhost>
date:      Sun May 31 10:49:39 2020 +0000

description:
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 ade46dc2f3db -r 574b3bb303d3 sys/arch/powerpc/oea/pmap.c
--- a/sys/arch/powerpc/oea/pmap.c       Sun May 31 09:59:37 2020 +0000
+++ b/sys/arch/powerpc/oea/pmap.c       Sun May 31 10:49:39 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.96 2020/05/31 10:49:39 rin 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.96 2020/05/31 10:49:39 rin 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