git: bd7e18a378fa - stable/13 - Eliminate key press requirement "show vmopag" command output.

From: Stephen J. Kiernan <stevek_at_FreeBSD.org>
Date: Wed, 29 Dec 2021 19:37:17 UTC
The branch stable/13 has been updated by stevek:

URL: https://cgit.FreeBSD.org/src/commit/?id=bd7e18a378fa0eb919b9ccfcc490c3ff6f7f9cb5

commit bd7e18a378fa0eb919b9ccfcc490c3ff6f7f9cb5
Author:     Stephen J. Kiernan <stevek@FreeBSD.org>
AuthorDate: 2021-12-17 21:39:51 +0000
Commit:     Stephen J. Kiernan <stevek@FreeBSD.org>
CommitDate: 2021-12-29 19:32:48 +0000

    Eliminate key press requirement "show vmopag" command output.
    
    Summary:
    One was required to press a key to continue after every 18 lines of
    output. This requirement had been in the "show vmopag" command since it
    was introduced, which was many years before paging was added to DDB.
    With paging, this explict key check is no longer necessary.
    
    Obtained from:  Juniper Networks, Inc.
    MFC after:      1 week
    
    Test Plan:
    Run "show vmopag" from db> prompt and see that it does not need additional
    keypresses other than the ones needed for the pager.
    
    Subscribers: imp, #contributor_reviews_base
    
    Differential Revision: https://reviews.freebsd.org/D33550
    
    (cherry picked from commit 18048b6e3cb647f2a18e1e51df1cf86a90fc6802)
---
 sys/vm/vm_object.c | 40 ++++++++++------------------------------
 1 file changed, 10 insertions(+), 30 deletions(-)

diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index c465a2cf76dd..cc4463567aae 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -2815,18 +2815,13 @@ DB_SHOW_COMMAND(vmopag, vm_object_print_pages)
 	vm_pindex_t fidx;
 	vm_paddr_t pa;
 	vm_page_t m, prev_m;
-	int rcount, nl, c;
+	int rcount;
 
-	nl = 0;
 	TAILQ_FOREACH(object, &vm_object_list, object_list) {
 		db_printf("new object: %p\n", (void *)object);
-		if (nl > 18) {
-			c = cngetc();
-			if (c != ' ')
-				return;
-			nl = 0;
-		}
-		nl++;
+		if (db_pager_quit)
+			return;
+
 		rcount = 0;
 		fidx = 0;
 		pa = -1;
@@ -2838,13 +2833,8 @@ DB_SHOW_COMMAND(vmopag, vm_object_print_pages)
 				if (rcount) {
 					db_printf(" index(%ld)run(%d)pa(0x%lx)\n",
 						(long)fidx, rcount, (long)pa);
-					if (nl > 18) {
-						c = cngetc();
-						if (c != ' ')
-							return;
-						nl = 0;
-					}
-					nl++;
+					if (db_pager_quit)
+						return;
 					rcount = 0;
 				}
 			}				
@@ -2856,13 +2846,8 @@ DB_SHOW_COMMAND(vmopag, vm_object_print_pages)
 			if (rcount) {
 				db_printf(" index(%ld)run(%d)pa(0x%lx)\n",
 					(long)fidx, rcount, (long)pa);
-				if (nl > 18) {
-					c = cngetc();
-					if (c != ' ')
-						return;
-					nl = 0;
-				}
-				nl++;
+				if (db_pager_quit)
+					return;
 			}
 			fidx = m->pindex;
 			pa = VM_PAGE_TO_PHYS(m);
@@ -2871,13 +2856,8 @@ DB_SHOW_COMMAND(vmopag, vm_object_print_pages)
 		if (rcount) {
 			db_printf(" index(%ld)run(%d)pa(0x%lx)\n",
 				(long)fidx, rcount, (long)pa);
-			if (nl > 18) {
-				c = cngetc();
-				if (c != ' ')
-					return;
-				nl = 0;
-			}
-			nl++;
+			if (db_pager_quit)
+				return;
 		}
 	}
 }