[Intel-gfx] [PATCH] drm/i915: Leave the aliasing-ppgtt size alone

Mika Kuoppala mika.kuoppala at linux.intel.com
Thu Nov 7 08:32:47 UTC 2019


Chris Wilson <chris at chris-wilson.co.uk> writes:

> The hidden aliasing-ppgtt's size is never revealed, as we only inspect
> the front GTT when engaged. However, we were "fixing" the hidden ppgtt
> to match, with the net result that we ended up leaking the unused
> portion (on Braswell were we preallocated the entire range).

On here I think that the comment is a bit misleading. We preallocate
the pdps upfront, the va_ranges that the aliasing init does matches
in size.

As there is two types of 'preallocation' at play in here,
the commit message should be amended to explicitly state that the top
pdps leak.

Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>

>
> [   26.025364] DMA-API: pci 0000:00:02.0: device driver has pending DMA allocations while released from device [count=2]
> [   26.025364] One of leaked entries details: [device address=0x0000000230778000] [size=4096 bytes] [mapped with DMA_BIDIRECTIONAL] [mapped as single]
> [   26.025683] WARNING: CPU: 0 PID: 415 at kernel/dma/debug.c:894 dma_debug_device_change+0x1a4/0x1f0
> [   26.025905] Modules linked in: i915(E-) intel_powerclamp(E) nls_ascii(E) nls_cp437(E) crct10dif_pclmul(E) crc32_pclmul(E) vfat(E) crc32c_intel(E) fat(E) ghash_clmulni_intel(E) prime_numbers(E) intel_gtt(E) i2c_algo_bit(E) efi_pstore(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) fb_sys_fops(E) evdev(E) drm(E) aesni_intel(E) glue_helper(E) crypto_simd(E) cryptd(E) intel_cstate(E) sg(E) efivars(E) pcspkr(E) video(E) button(E) efivarfs(E) ip_tables(E) x_tables(E) autofs4(E) sd_mod(E) lpc_ich(E) ahci(E) mfd_core(E) i2c_i801(E) libahci(E) i2c_designware_pci(E) i2c_designware_core(E)
> [   26.026613] CPU: 0 PID: 415 Comm: rmmod Tainted: G            E     5.4.0-rc6+ #25
> [   26.026837] Hardware name:  /, BIOS PYBSWCEL.86A.0027.2015.0507.1758 05/07/2015
> [   26.027080] RIP: 0010:dma_debug_device_change+0x1a4/0x1f0
> [   26.027319] Code: 89 54 24 08 e8 ad 60 62 00 48 8b 54 24 08 48 89 c6 41 57 4d 89 e9 49 89 d8 44 89 f1 41 54 48 c7 c7 e0 61 06 82 e8 c1 aa f5 ff <0f> 0b 5a 59 48 83 3c 24 00 0f 85 97 26 00 00 8b 05 77 47 92 01 85
> [   26.027600] RSP: 0018:ffff888228d2fcc8 EFLAGS: 00010282
> [   26.027831] RAX: 0000000000000000 RBX: 0000000230778000 RCX: 0000000000000000
> [   26.028053] RDX: 0000000000000001 RSI: 0000000000000008 RDI: ffffed10451a5f8f
> [   26.028279] RBP: ffff88823480c0b0 R08: 0000000000000001 R09: ffffed1046e83eb1
> [   26.028500] R10: ffffed1046e83eb0 R11: ffff88823741f587 R12: ffffffff82067340
> [   26.028725] R13: 0000000000001000 R14: 0000000000000002 R15: ffffffff82067480
> [   26.028952] FS:  00007fdf3ed174c0(0000) GS:ffff888237400000(0000) knlGS:0000000000000000
> [   26.029185] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   26.029405] CR2: 000055e211109030 CR3: 0000000230139000 CR4: 00000000001006f0
> [   26.029622] Call Trace:
> [   26.029846]  notifier_call_chain+0x67/0xa0
> [   26.030076]  blocking_notifier_call_chain+0x5a/0x80
> [   26.030305]  device_release_driver_internal+0x20d/0x260
> [   26.030535]  driver_detach+0x7b/0xe1
> [   26.030761]  bus_remove_driver+0x8c/0x153
> [   26.030993]  pci_unregister_driver+0x2d/0xf0
> [   26.032603]  i915_exit+0x16/0x1c [i915]
>
> Reported-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_gtt.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 88179202c556..6239a9adbf14 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2609,8 +2609,6 @@ static int init_aliasing_ppgtt(struct i915_ggtt *ggtt)
>  	GEM_BUG_ON(ggtt->vm.vma_ops.unbind_vma != ggtt_unbind_vma);
>  	ggtt->vm.vma_ops.unbind_vma = aliasing_gtt_unbind_vma;
>  
> -	ppgtt->vm.total = ggtt->vm.total;
> -
>  	return 0;
>  
>  err_ppgtt:
> -- 
> 2.24.0


More information about the Intel-gfx mailing list