linux/drivers/gpu/drm/i915/gvt
Changbin Du e274086e47 drm/i915/gvt: clean up unsubmited workloads before destroying kmem cache
This is to fix a memory leak issue caused by unfreed gvtg workload objects.
Walk through the workload list and free all of the remained workloads
before destroying kmem cache.

[179.885211] INFO: Object 0xffff9cef10003b80 @offset=7040
[179.885657] kmem_cache_destroy gvt-g_vgpu_workload: Slab cache still has objects
[179.886146] CPU: 2 PID: 2318 Comm: win_lucas Tainted: G    B   W       4.11.0+ #1
[179.887223] Call Trace:
[179.887394]  dump_stack+0x63/0x90
[179.887617]  kmem_cache_destroy+0x1cf/0x1e0
[179.887960]  intel_vgpu_clean_execlist+0x15/0x20 [i915]
[179.888365]  intel_gvt_destroy_vgpu+0x4c/0xd0 [i915]
[179.888688]  intel_vgpu_remove+0x2a/0x30 [kvmgt]
[179.888988]  mdev_device_remove_ops+0x23/0x50 [mdev]
[179.889309]  mdev_device_remove+0xe4/0x190 [mdev]
[179.889615]  remove_store+0x7d/0xb0 [mdev]
[179.889885]  dev_attr_store+0x18/0x30
[179.890129]  sysfs_kf_write+0x37/0x40
[179.890371]  kernfs_fop_write+0x107/0x180
[179.890632]  __vfs_write+0x37/0x160
[179.890865]  ? kmem_cache_alloc+0xd7/0x1b0
[179.891116]  ? apparmor_file_permission+0x1a/0x20
[179.891372]  ? security_file_permission+0x3b/0xc0
[179.891628]  vfs_write+0xb8/0x1b0
[179.891812]  SyS_write+0x55/0xc0
[179.891992]  entry_SYSCALL_64_fastpath+0x1e/0xad

Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2017-05-24 10:33:37 +08:00
..
aperture_gm.c drm/i915/gvt: replace the gvt_err with gvt_vgpu_err 2017-03-17 16:46:45 +08:00
cfg_space.c drm/i915/gvt: exclude cfg space from failsafe mode 2017-03-30 17:47:39 +08:00
cmd_parser.c drm/i915/gvt: use directly assignment for structure copying 2017-04-12 13:57:56 +08:00
cmd_parser.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
debug.h drm/i915/gvt: replace the gvt_err with gvt_vgpu_err 2017-03-17 16:46:45 +08:00
display.c drm/i915/gvt: add mmio init for virtual display 2017-04-12 13:59:33 +08:00
display.h drm/i915/gvt: add resolution definition for vGPU type 2017-02-24 13:25:18 +08:00
edid.c drm/i915/gvt: Fix guest fail to read EDID leading to black guest console issue. 2017-03-21 10:50:02 +08:00
edid.h drm/i915/gvt: Fix static checker warning on intel_gvt_i2c_handle_aux_ch_write() 2016-11-14 18:06:44 +08:00
execlist.c drm/i915/gvt: clean up unsubmited workloads before destroying kmem cache 2017-05-24 10:33:37 +08:00
execlist.h drm/i915/gvt: fix crash in vgpu_reset_execlist 2016-11-14 18:06:43 +08:00
firmware.c drm/i915/gvt: Fix firmware loading interface for GVT-g golden HW state 2017-04-01 13:13:27 +08:00
gtt.c Merge tag 'gvt-next-fixes-2017-04-20' of https://github.com/01org/gvt-linux into drm-intel-next-fixes 2017-04-26 12:20:02 +03:00
gtt.h drm/i915/gvt: introuduce intel_vgpu_reset_gtt() to reset gtt 2017-01-13 15:05:38 +08:00
gvt.c Linux 4.11-rc7 2017-04-19 11:07:14 +10:00
gvt.h Linux 4.11-rc7 2017-04-19 11:07:14 +10:00
handlers.c drm/i915/gvt: Disable compression workaround for Gen9 2017-05-23 13:03:04 +08:00
hypercall.h drm/i915/gvt: remove detect_host() MPT hook 2017-02-07 17:21:44 +08:00
interrupt.c drm/i915/gvt: Add KBL dispatch logic in each function. 2017-03-29 15:28:51 +08:00
interrupt.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
kvmgt.c Linux 4.11-rc7 2017-04-19 11:07:14 +10:00
Makefile drm/i915/gvt/kvmgt: add vfio/mdev support to KVMGT 2016-12-16 16:55:26 +08:00
mmio.c drm/i915/gvt: replace the gvt_err with gvt_vgpu_err 2017-03-17 16:46:45 +08:00
mmio.h drm/i915/gvt: Add KBL platform definition. 2017-03-29 15:28:51 +08:00
mpt.h drm/i915/gvt: remove detect_host() MPT hook 2017-02-07 17:21:44 +08:00
opregion.c drm/i915/gvt: replace the gvt_err with gvt_vgpu_err 2017-03-17 16:46:45 +08:00
reg.h drm/i915/gvt: cleanup opregion memory allocation code 2017-01-09 11:11:32 +08:00
render.c Merge tag 'gvt-fixes-2017-05-11' of https://github.com/01org/gvt-linux into drm-intel-fixes 2017-05-15 13:03:31 +03:00
render.h drm/i915/gvt: vGPU context switch 2016-10-14 18:15:13 +08:00
sched_policy.c Merge tag 'gvt-fixes-2017-05-11' of https://github.com/01org/gvt-linux into drm-intel-fixes 2017-05-15 13:03:31 +03:00
sched_policy.h drm/i915/gvt: use hrtimer replace delayed_work in scheduler 2017-03-30 13:32:24 +08:00
scheduler.c Merge tag 'gvt-next-fixes-2017-04-20' of https://github.com/01org/gvt-linux into drm-intel-next-fixes 2017-04-26 12:20:02 +03:00
scheduler.h drm/i915/gvt: remove workload from intel_shadow_wa_ctx structure 2017-03-29 15:29:21 +08:00
trace_points.c drm/i915/gvt: trace stub 2016-10-14 18:12:11 +08:00
trace.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
vgpu.c Linux 4.11-rc7 2017-04-19 11:07:14 +10:00