On Tue, Apr 24, 2018 at 01:53:07PM +0200, Mark Kettenis wrote: > > Date: Tue, 24 Apr 2018 20:18:42 +1000 > > From: Jonathan Gray <[email protected]> > > > > On Wed, Apr 18, 2018 at 06:55:35PM +0200, Alexander Bluhm wrote: > > > On Thu, Apr 19, 2018 at 12:10:04AM +1000, Jonathan Gray wrote: > > > > That's with the big radeon update diff as well? > > > > > > That was current. Boots fine. > > > > > > With ~jsg/radeon.diff.2 it still crashes. I have checked, it is > > > the diff with > > > > > > if (rdev->rio_mem_size > 0) > > > bus_space_unmap(rdev->iot, rdev->rio_mem, > > > rdev->rio_mem_size); > > > > > > initializing kernel modesetting (RV100 0x1002:0x515E 0x1002:0x515E). > > > radeon_cp: Failed to load firmware "radeon/R100_cp.bin" > > > error: [drm:pid0:r100_cp_init] *ERROR* Failed to load firmware! > > > drm:pid0:r100_startup *ERROR* failed initializing CP (-2). > > > drm:pid0:r100_init *ERROR* Disabling GPU acceleration > > > uvm_fault(0xd0cae21c, 0xd11e2000, 0, 1) -> e > > > kernel: page fault trap, code=0 > > > Stopped at pmap_page_remove_pae+0x18: cmpl $0,0x48(%edi) > > > ddb{0}> trace > > > pmap_page_remove_pae(d11e2768) at pmap_page_remove_pae+0x18 > > > ttm_tt_destroy(d5765a00) at ttm_tt_destroy+0x61 > > > ttm_bo_cleanup_refs_or_queue(d572eb28) at > > > ttm_bo_cleanup_refs_or_queue+0x2b3 > > > ttm_bo_unref(d0f63ed8) at ttm_bo_unref+0x69 > > > radeon_bo_unref(d572eb28) at radeon_bo_unref+0x27 > > > radeon_wb_fini(d572d000) at radeon_wb_fini+0x49 > > > r100_init(d572d000) at r100_init+0x409 > > > radeon_device_init(d572d000,d5701400,d570143c,840001) at > > > radeon_device_init+0x7 > > > 97 > > > radeondrm_attachhook(d572d000) at radeondrm_attachhook+0x2b > > > config_process_deferred_mountroot() at > > > config_process_deferred_mountroot+0x2c > > > main(0) at main+0x7bf > > > > After spending some time trying to track this down I have come up with > > the diff below and included it in ~jsg/radeon.diff.4 can you confirm > > that it works for you as well? > > That fix is correct. UVM works differently from the Linux VM system, > so we can't really implement kunmap(). Maybe we should rename it (to > kunmap_virt()?).
That is a good idea. I'd like to get the radeondrm update in first though. > > Cheers, > > Mark > > > > diff --git sys/dev/pci/drm/ttm/ttm_bo_util.c > > sys/dev/pci/drm/ttm/ttm_bo_util.c > > index 3b26d865be2..da6c459bd39 100644 > > --- sys/dev/pci/drm/ttm/ttm_bo_util.c > > +++ sys/dev/pci/drm/ttm/ttm_bo_util.c > > @@ -644,7 +644,7 @@ void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map) > > vunmap(map->virtual, bo->mem.bus.size); > > break; > > case ttm_bo_map_kmap: > > - kunmap(map->page); > > + kunmap(map->virtual); > > break; > > case ttm_bo_map_premapped: > > break; > > > > >
