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