NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/54818: 9.0_RC1 pagedaemon spins
The following reply was made to PR kern/54818; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: ad%netbsd.org@localhost
Cc: gnats-bugs%netbsd.org@localhost, martin%netbsd.org@localhost, tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: kern/54818: 9.0_RC1 pagedaemon spins
Date: Wed, 15 Jan 2020 23:32:29 +0900
ad@ wrote:
> > I guess uvm/uvm_pdpolicy_clockpro.c part (empty uvmpdpol_scanfini())
> > isn't necessary, right?
>
> It's needed to make it compile, but it does not work on 9.0 or -current.
Ah, I see for options PDPOLICY_CLOCKPRO case.
> Thank you for the vmstat output, that was very helpful. I think it trying
> to balance the queues but your other processes are competing with it, and
> because of uvm_pageqlock nobody can make progress. This is not a problem on
> -current any more because uvm_pageqlock is gone.. I have updated the patch
> to try and help this situation. I have not compiled it because I don't have
> a 9.0 system at the moment. Could you please try it again?
>
> http://www.netbsd.org/~ad/2020/uvm-9.diff
Thanks, but unfortunately it fails because this change includes
"TAILQ_ENTRY(vm_page) pdqueue" not available in netbsd-9:
---
# compile GENERIC/uvm_pdpolicy_clock.o
/s/netbsd-9/src/obj.i386/tooldir.NetBSD-9.0_RC1-i386/bin/i486--netbsdelf-gcc -msoft-float -mno-mmx -mno-sse -mno-avx -mindirect-branch=thunk -mindirect-branch-register -ffreestanding -fno-zero-initialized-in-bss -fno-delete-null-pointer-checks -O2 -fno-omit-frame-pointer -fstack-protector -Wstack-protector --param ssp-buffer-size=1 -fno-strict-aliasing -fno-common -std=gnu99 -Werror -Wall -Wno-main -Wno-format-zero-length -Wpointer-arith -Wmissing-prototypes -Wstrict-prototypes -Wold-style-definition -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -Wno-unreachable-code -Wno-pointer-sign -Wno-attributes -Wextra -Wno-unused-parameter -Wold-style-definition -Wno-sign-compare --sysroot=/s/netbsd-9/src/obj.i386/destdir.i386 -Di386 -I. -I../../../../external/bsd/acpica/dist -I../../../../external/bsd/libnv/dist -I../../../../../common/lib/libx86emu -I../../../../../common/lib/libc/misc -I../../../../../common/include -I../../../../arch -I../../../.. -nostdinc -DCOMPAT_UTILS -DCOMPAT!
_44 -D_KERNEL -D_KERNEL_OPT -std=gnu99 -I../../../../lib/libkern/../../../common/lib/libc/quad -I../../../../lib/libkern/../../../common/lib/libc/string -I../../../../lib/libkern/../../../common/lib/libc/arch/i386/string -D_FORTIFY_SOURCE=2 -I../../../../external/isc/atheros_hal/dist -I../../../../external/isc/atheros_hal/ic -I../../../../external/bsd/common/include -I../../../../external/bsd/common/include -I../../../../external/bsd/drm2/include -I../../../../external/bsd/drm2/include -I../../../../external/bsd/drm2/include/drm -I../../../../external/bsd/common/include -I../../../../external/bsd/drm2/dist/include -I../../../../external/bsd/drm2/dist/include/drm -I../../../../external/bsd/drm2/dist/uapi -I../../../../external/bsd/drm2/dist -D__KERNEL__ -DCONFIG_BACKLIGHT_CLASS_DEVICE=0 -DCONFIG_BACKLIGHT_CLASS_DEVICE_MODULE=0 -DCONFIG_DRM_FBDEV_EMULATION=1 -DCONFIG_FB=0 -I../../../../../common/include -I../../../../external/bsd/libnv/dist -I../../../../external/bsd/drm2/i91!
5drm -I../../../../external/bsd/drm2/dist/drm/i915 -DCONFIG_DR!
M_I915_FBDEV=1 -DCONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=0 -DCONFIG_DRM_FBDEV_EMULATION=1 -I../../../../external/bsd/drm2/include/radeon -I../../../../external/bsd/drm2/radeon -I../../../../external/bsd/drm2/dist/drm/amd/include -I../../../../external/bsd/drm2/dist/drm/radeon -I../../../../external/bsd/drm2/dist/drm/nouveau -I../../../../external/bsd/drm2/dist/drm/nouveau/include -I../../../../external/bsd/drm2/dist/drm/nouveau/include/nvkm -I../../../../external/bsd/drm2/dist/drm/nouveau/nvkm -I../../../../external/bsd/drm2/nouveau -DCONFIG_NOUVEAU_DEBUG=5 -DCONFIG_NOUVEAU_DEBUG_DEFAULT=3 -I../../../../external/bsd/acpica/dist/include -c ../../../../uvm/uvm_pdpolicy_clock.c -o uvm_pdpolicy_clock.o
In file included from ../../../../sys/timevar.h:64:0,
from ../../../../sys/time.h:307,
from ../../../../sys/param.h:145,
from ../../../../uvm/uvm_pdpolicy_clock.c:74:
../../../../uvm/uvm_pdpolicy_clock.c: In function 'uvmpdpol_balancequeue':
../../../../sys/queue.h:503:12: error: 'struct vm_page' has no member named 'pdqueue'
if (((elm)->field.tqe_next = (head)->tqh_first) != TAILQ_END(head))\
^
../../../../uvm/uvm_pdpolicy_clock.c:270:2: note: in expansion of macro 'TAILQ_INSERT_HEAD'
TAILQ_INSERT_HEAD(&pdpol_state.s_activeq, &marker, pdqueue);
^~~~~~~~~~~~~~~~~
../../../../sys/queue.h:504:20: error: 'struct vm_page' has no member named 'pdqueue'
(head)->tqh_first->field.tqe_prev = \
^
../../../../uvm/uvm_pdpolicy_clock.c:270:2: note: in expansion of macro 'TAILQ_INSERT_HEAD'
TAILQ_INSERT_HEAD(&pdpol_state.s_activeq, &marker, pdqueue);
^~~~~~~~~~~~~~~~~
:
---
Is it possible to keep struct vm_page for netbsd-9 branch?
Thanks,
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index