On Fri, Jan 21, 2022 at 03:31:14PM -0700, Thomas Frohwein wrote:
> On Fri, Jan 21, 2022 at 07:54:29PM +1100, Jonathan Gray wrote:
> > On Thu, Jan 20, 2022 at 04:08:28PM -0700, Thomas Frohwein wrote:
> > > On Fri, Jan 21, 2022 at 12:22:49AM +1100, Jonathan Gray wrote:
> > > > On Wed, Jan 19, 2022 at 11:04:26PM -0800, guent...@openbsd.org wrote:
> > > [...]
> > > > > The backtrace is kinda nonsensical, showing a copyout() call with no 
> > > > > predecessor, but maybe that's just from copy*() not setting up a 
> > > > > proper 
> > > > > frame?  However, that's not a change.  Neither has there been any 
> > > > > change 
> > > > > in the pmap layer in multiple months.  The areas of concern IMO are 
> > > > > DRM 
> > > > > and (because it was the last thing mentioned) iwm, but the former 
> > > > > seems 
> > > > > _much_ more likely.
> > > > 
> > > > Booting bsd.mp with inteldrm disabled works?
> > > 
> > > yes, boots and uses llvmpipe after I disable inteldrm*
> > 
> > this fixes sleeping with a mtx held found with kern.pool_debug=2
> > which may help
> 
> thanks, however no change after I built MP kernel and installed it. Still the
> same pmap error that I posted in the original bug report.

Can you try a kernel with this diff and 'option WITNESS' uncommented
in sys/arch/amd64/conf/GENERIC.MP ?

Index: sys/dev/pci/drm/drm_drv.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/drm_drv.c,v
retrieving revision 1.181
diff -u -p -r1.181 drm_drv.c
--- sys/dev/pci/drm/drm_drv.c   14 Jan 2022 06:52:59 -0000      1.181
+++ sys/dev/pci/drm/drm_drv.c   22 Jan 2022 21:33:37 -0000
@@ -1202,12 +1202,16 @@ drm_attach_platform(struct drm_driver *d
        config_found_sm(dev, &arg, drmprint, drmsubmatch);
 }
 
+extern int pool_debug;
+
 struct drm_device *
 drm_attach_pci(const struct drm_driver *driver, struct pci_attach_args *pa,
     int is_agp, int primary, struct device *dev, struct drm_device *drm)
 {
        struct drm_attach_args arg;
        struct drm_softc *sc;
+
+       pool_debug = 2;
 
        arg.drm = drm;
        arg.driver = driver;

Reply via email to