From owner-freebsd-current@freebsd.org Sat May 9 21:25:23 2020 Return-Path: Delivered-To: freebsd-current@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 067B32F654B for ; Sat, 9 May 2020 21:25:23 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 49KKwy3VHJz4M5v; Sat, 9 May 2020 21:25:21 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id 049LPClc080151 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sun, 10 May 2020 00:25:15 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 049LPClc080151 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 049LPClP080149; Sun, 10 May 2020 00:25:12 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 10 May 2020 00:25:12 +0300 From: Konstantin Belousov To: Andriy Gapon Cc: FreeBSD Current Subject: Re: CHANGE_PV_LIST_LOCK_TO_PHYS is not correct when !NUMA ? Message-ID: <20200509212512.GB68906@kib.kiev.ua> References: <0d7db402-621e-cc6b-2918-2078f63e2a9b@FreeBSD.org> <20200508161500.GC44519@kib.kiev.ua> <6485ab77-a3d0-8916-9431-74e4da1e3ea7@FreeBSD.org> <20200509161325.GH44519@kib.kiev.ua> <20200509165010.GI44519@kib.kiev.ua> <88ebc8f9-b10d-366d-a12a-fb74417904bc@FreeBSD.org> <20200509204743.GA68906@kib.kiev.ua> <258a6528-2d43-d72e-b5e1-b189566a9b50@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <258a6528-2d43-d72e-b5e1-b189566a9b50@FreeBSD.org> X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED,PLING_QUERY autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on tom.home X-Rspamd-Queue-Id: 49KKwy3VHJz4M5v X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.32 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 May 2020 21:25:23 -0000 On Sun, May 10, 2020 at 12:02:19AM +0300, Andriy Gapon wrote: > On 09/05/2020 23:47, Konstantin Belousov wrote: > > Might be not, might be it would help due to pmap_delayed_invl_genp(). > > But I would more worry about this 'already started' issue, because > > this must not happen. Can you remove the assert from the macro and > > provide backtrace of 'DI already started' panic ? > > Oh, now that you asked for it, I see that it was a secondary panic (through vt, > fb, drm code path). > The first panic was still the same "address %lx beyond the last segment". > I'll test your suggestion tomorrow. Yes, the backtrace is reasonable in the sense that VM was recursed due to panic while already in DI section. So pmap_remove() from inside panic handler indeed triggered the right assert. > > > #10 0xffffffff8080340e in vpanic (fmt=, ap=) at > /usr/devel/git/motil/sys/kern/kern_shutdown.c:902 > #11 0xffffffff808031a3 in panic (fmt=0xffffffff8119a998 > "\265\001ʀ\377\377\377\377") at /usr/devel/git/motil/sys/kern/kern_shutdown.c:839 > #12 0xffffffff80bb4c05 in pmap_delayed_invl_start_u () at > /usr/devel/git/motil/sys/amd64/amd64/pmap.c:783 > #13 0xffffffff80bb8ede in pmap_remove (pmap=0xffffffff812ee930 > , sva=18446741877558251520, eva=) at > /usr/devel/git/motil/sys/amd64/amd64/pmap.c:5418 > #14 0xffffffff80b2b6ad in _kmem_unback (object=, > addr=18446741877558251520, size=102400) at /usr/devel/git/motil/sys/vm/vm_kern.c:574 > #15 0xffffffff80b2b7dd in kmem_free (addr=18446741877558251520, size=102400) at > /usr/devel/git/motil/sys/vm/vm_kern.c:614 > #16 0xffffffff807db77b in free_large (addr=0xfffffe00ab2e9000, size=102400) at > /usr/devel/git/motil/sys/kern/kern_malloc.c:599 > #17 free (addr=0xfffffe00ab2e9000, mtp=0xffffffff825f90c0 ) at > /usr/devel/git/motil/sys/kern/kern_malloc.c:818 > #18 0xffffffff82444922 in dc_gamma_release (gamma=) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc_surface.c:162 > #19 destruct (plane_state=0xfffff800080ef800) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc_surface.c:53 > #20 dc_plane_state_free (kref=) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc_surface.c:140 > #21 kref_put (kref=, rel=) at > /usr/devel/git/motil/sys/compat/linuxkpi/common/include/linux/kref.h:74 > #22 dc_plane_state_release (plane_state=) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc_surface.c:146 > #23 0xffffffff82442de9 in dc_resource_state_destruct > (context=0xfffffe00a2af0000) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc_resource.c:2295 > #24 0xffffffff824355d2 in dc_state_free (kref=) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc.c:1152 > #25 kref_put (kref=, rel=) at > /usr/devel/git/motil/sys/compat/linuxkpi/common/include/linux/kref.h:74 > #26 dc_release_state (context=) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/dc/core/dc.c:1158 > #27 0xffffffff8241f6cc in dm_atomic_destroy_state (obj=, > state=0xfffff80020465550) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:1667 > #28 0xffffffff82569734 in drm_atomic_state_default_clear > (state=0xfffff80008274a00) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/drm_atomic.c:202 > #29 0xffffffff82569827 in drm_atomic_state_clear (state=) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/drm_atomic.c:240 > #30 __drm_atomic_state_free (ref=0xfffff80008274a00) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/drm_atomic.c:256 > #31 0xffffffff825998d8 in kref_put (kref=0xfffff80008274a00, rel= out>) at /usr/devel/git/motil/sys/compat/linuxkpi/common/include/linux/kref.h:74 > #32 drm_atomic_state_put (state=0xfffff80008274a00) at > /usr/home/avg/devel/kms-drm/include/drm/drm_atomic.h:385 > #33 restore_fbdev_mode_atomic (fb_helper=, active=true) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/drm_fb_helper.c:461 > #34 0xffffffff8259567a in drm_fb_helper_restore_fbdev_mode_unlocked > (fb_helper=0xfffff8002096d800) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/drm_fb_helper.c:549 > #35 0xffffffff825bcc8a in vt_kms_postswitch (arg=0xfffff800027c52c0) at > /usr/home/avg/devel/kms-drm/drivers/gpu/drm/linux_fb.c:97 > #36 0xffffffff806b04b2 in vt_window_switch (vw=0xffffffff80e999a8 > ) at /usr/devel/git/motil/sys/dev/vt/vt_core.c:603 > #37 0xffffffff806ada0f in vtterm_cngrab (tm=) at > /usr/devel/git/motil/sys/dev/vt/vt_core.c:1612 > #38 0xffffffff8079f776 in cngrab () at /usr/devel/git/motil/sys/kern/kern_cons.c:397 > #39 0xffffffff8080335c in vpanic (fmt=0xffffffff80cc257f "address %lx beyond the > last segment", ap=0xfffffe009e18c890) at > /usr/devel/git/motil/sys/kern/kern_shutdown.c:887 > #40 0xffffffff808031a3 in panic (fmt=0xffffffff8119a998 > "\265\001ʀ\377\377\377\377") at /usr/devel/git/motil/sys/kern/kern_shutdown.c:839 > #41 0xffffffff80bc2ac3 in pmap_remove_pte (pmap=0xfffffe00a4cdbb08, > ptq=0xfffff800cd2b4000, va=34523316224, ptepde=3442163815, > free=0xfffffe009e18c9a0, lockp=0xfffffe009e18c9b8) at > /usr/devel/git/motil/sys/amd64/amd64/pmap.c:3599 > #42 0xffffffff80bba98c in pmap_remove_ptes (pmap=0xfffffe00a4cdbb08, > sva=34523316224, eva=34525413376, pde=0xfffff800b2515270, > free=0xfffffe009e18c9a0, lockp=0xfffffe009e18c9b8) at > /usr/devel/git/motil/sys/amd64/amd64/pmap.c:5378 > #43 0xffffffff80bb921c in pmap_remove (pmap=, sva=34523316224, > eva=) at /usr/devel/git/motil/sys/amd64/amd64/pmap.c:5506 > #44 0xffffffff80b301a0 in vm_map_delete (map=0xfffffe00a4cdb9e8, > start=, end=) at > /usr/devel/git/motil/sys/vm/vm_map.c:3804 > #45 0xffffffff80b3856e in kern_munmap (td=0xfffffe009c7be800, addr0= out>, size=2097152) at /usr/devel/git/motil/sys/vm/vm_mmap.c:624 > #46 0xffffffff80bcff00 in syscallenter (td=) at > /usr/devel/git/motil/sys/amd64/amd64/../../kern/subr_syscall.c:162 > #47 amd64_syscall (td=0xfffffe009c7be800, traced=0) at > /usr/devel/git/motil/sys/amd64/amd64/trap.c:1161 > > -- > Andriy Gapon