On Fri, Jan 06, 2012 at 11:53:35AM -0500, Konrad Rzeszutek Wilk wrote: > On Fri, Jan 06, 2012 at 11:51:03AM -0500, Jerome Glisse wrote: > > On Fri, Jan 6, 2012 at 9:57 AM, Konrad Rzeszutek Wilk > > <konrad.w...@oracle.com> wrote: > > > On Thu, Jan 05, 2012 at 09:14:10PM -0500, Konrad Rzeszutek Wilk wrote: > > >> On Fri, Jan 06, 2012 at 07:53:13AM +1000, Ben Skeggs wrote: > > >> > On Thu, 2012-01-05 at 13:31 -0500, j.gli...@gmail.com wrote: > > >> > > From: Jerome Glisse <jgli...@redhat.com> > > >> > > > > >> > > ttm might call the move notify with null new mem placement, > > >> > > properly handle this case inside nouveau move notify callback. > > >> > This has been fixed already in a -next tree I sent to Dave. > > >> > > >> I just tried -next with your patch (and two other fixes that I had sent): > > >> > > >> drm/ttm/dma: Only call set_pages_array_wb when the page is not in WB pool > > >> drm/ttm/dma: Fix accounting error when calling ttm_mem_global_free_page > > >> and don't try to free freed pages > > >> > > >> and Jerome's AGP fix: > > >> ttm: fix agp since ttm tt rework > > >> > > >> and got the crash (but only with NVidia cards) after swapping between > > >> Xorg and the VCs. > > >> Look in drm-next.jpg > > > > > > http://darnok.org/vga/drm-next.jpg > > > > > >> > > >> With your patch removed ("drm/nouveau/ttm: fix crash as a result of a > > >> recent ttm change") > > >> and the patch below by Jerome I still get it to crash (see > > >> drm-next-with-Jerome-fix-revert-Ben.jpg).. > > > > > > http://darnok.org/vga/drm-next-with-Jerome-fix-revert-Ben.jpg > > > > > > > Anything special to trigger it ? I can't trigger it with simple gnome3 > > session (firefox evince ...) > > I ran etracer, then switched over to a framebuffer console (Alt-F2), logged > in. > Then ran perf record and switched back to etracer. Ran a couple of laps and > when finished > quit the perf top. On the PCI-e it took a while (so I had to run a couple of > laps). > > On the AGP one it happended immediately, which is no surprise since the code > looks > to be activated when we do garbage collection and the machine only had 2GB. > The > PCIe on has 8GB. Perhaps a better way would be to force the workqueue by > setting the > pool limits to smaller values. >
Still having difficulty to reproduce can you reproduce with the attached printk debuging patch and provide the log (only few printk preceding the oops or segfault are interesting). Cheers, Jerome
>From 862e2cc6d35d85404ed24d24c5a5c49c5ef45fc7 Mon Sep 17 00:00:00 2001 From: Jerome Glisse <jgli...@redhat.com> Date: Fri, 6 Jan 2012 13:20:08 -0500 Subject: [PATCH] TTM-DEBUG-PRINTK --- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 724b41a..326b64a 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -812,12 +812,14 @@ nouveau_bo_move_ntfy(struct ttm_buffer_object *bo, struct ttm_mem_reg *new_mem) struct nouveau_bo *nvbo = nouveau_bo(bo); struct nouveau_vma *vma; +DRM_INFO("%s list (%p %p)\n", __func__, nvbo->vma_list.prev, nvbo->vma_list.next); list_for_each_entry(vma, &nvbo->vma_list, head) { if (new_mem && new_mem->mem_type == TTM_PL_VRAM) { nouveau_vm_map(vma, new_mem->mm_node); } else if (new_mem && new_mem->mem_type == TTM_PL_TT && nvbo->page_shift == vma->vm->spg_shift) { +DRM_INFO("%s vma %p new mem %p %d pages\n", __func__, vma, new_mem, new_mem->num_pages); nouveau_vm_map_sg(vma, 0, new_mem-> num_pages << PAGE_SHIFT, new_mem->mm_node); -- 1.7.5.4
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel