git: 350fc36b4cf8 - main - sysctl vm.objects: yield if hog

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Mon, 25 Oct 2021 17:34:10 UTC
The branch main has been updated by kib:

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

commit 350fc36b4cf896cbfce657a6dab600b26367a34a
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2021-05-07 22:13:29 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2021-10-25 17:34:02 +0000

    sysctl vm.objects: yield if hog
    
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D31163
---
 sys/vm/vm_object.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 9462e8753afb..5bbe7faed50b 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -2585,6 +2585,7 @@ vm_object_list_handler(struct sysctl_req *req, bool swap_only)
 		kvo->kvo_structsize = roundup(kvo->kvo_structsize,
 		    sizeof(uint64_t));
 		error = SYSCTL_OUT(req, kvo, kvo->kvo_structsize);
+		maybe_yield();
 		mtx_lock(&vm_object_list_mtx);
 		if (error)
 			break;