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;
> > 
> > 
> 

Reply via email to