https://github.com/torvalds/linux
Revision 6ddd9769db4fc11a98bd7e58be1764e47fdb8384 authored by Emily Deng on 28 August 2018, 12:52:40 UTC, committed by Alex Deucher on 28 August 2018, 17:42:48 UTC
Fix the VMC page fault when the running sequence is as below: 1.amdgpu_gem_create_ioctl 2.ttm_bo_swapout->amdgpu_vm_bo_invalidate, as not called amdgpu_vm_bo_base_init, so won't called list_add_tail(&base->bo_list, &bo->va). Even the bo was evicted, it won't set the bo_base->moved. 3.drm_gem_open_ioctl->amdgpu_vm_bo_base_init, here only called list_move_tail(&base->vm_status, &vm->evicted), but not set the bo_base->moved. 4.amdgpu_vm_bo_map->amdgpu_vm_bo_insert_map, as the bo_base->moved is not set true, the function amdgpu_vm_bo_insert_map will call list_move(&bo_va->base.vm_status, &vm->moved) 5.amdgpu_cs_ioctl won't validate the swapout bo, as it is only in the moved list, not in the evict list. So VMC page fault occurs. Signed-off-by: Emily Deng <Emily.Deng@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent 2f4e7db
Tip revision: 6ddd9769db4fc11a98bd7e58be1764e47fdb8384 authored by Emily Deng on 28 August 2018, 12:52:40 UTC
drm/amdgpu: Need to set moved to true when evict bo
drm/amdgpu: Need to set moved to true when evict bo
Tip revision: 6ddd976
File | Mode | Size |
---|---|---|
partitions | ||
Kconfig | -rw-r--r-- | 6.2 KB |
Kconfig.iosched | -rw-r--r-- | 2.7 KB |
Makefile | -rw-r--r-- | 1.5 KB |
badblocks.c | -rw-r--r-- | 14.5 KB |
bfq-cgroup.c | -rw-r--r-- | 33.5 KB |
bfq-iosched.c | -rw-r--r-- | 184.2 KB |
bfq-iosched.h | -rw-r--r-- | 31.6 KB |
bfq-wf2q.c | -rw-r--r-- | 52.2 KB |
bio-integrity.c | -rw-r--r-- | 13.8 KB |
bio.c | -rw-r--r-- | 52.3 KB |
blk-cgroup.c | -rw-r--r-- | 38.7 KB |
blk-core.c | -rw-r--r-- | 104.6 KB |
blk-exec.c | -rw-r--r-- | 2.9 KB |
blk-flush.c | -rw-r--r-- | 17.3 KB |
blk-integrity.c | -rw-r--r-- | 12.1 KB |
blk-ioc.c | -rw-r--r-- | 11.0 KB |
blk-lib.c | -rw-r--r-- | 10.9 KB |
blk-map.c | -rw-r--r-- | 5.9 KB |
blk-merge.c | -rw-r--r-- | 20.7 KB |
blk-mq-cpumap.c | -rw-r--r-- | 1.6 KB |
blk-mq-debugfs.c | -rw-r--r-- | 24.2 KB |
blk-mq-debugfs.h | -rw-r--r-- | 2.1 KB |
blk-mq-pci.c | -rw-r--r-- | 1.7 KB |
blk-mq-rdma.c | -rw-r--r-- | 1.7 KB |
blk-mq-sched.c | -rw-r--r-- | 16.1 KB |
blk-mq-sched.h | -rw-r--r-- | 2.8 KB |
blk-mq-sysfs.c | -rw-r--r-- | 8.1 KB |
blk-mq-tag.c | -rw-r--r-- | 11.2 KB |
blk-mq-tag.h | -rw-r--r-- | 2.3 KB |
blk-mq-virtio.c | -rw-r--r-- | 1.7 KB |
blk-mq.c | -rw-r--r-- | 74.2 KB |
blk-mq.h | -rw-r--r-- | 5.6 KB |
blk-settings.c | -rw-r--r-- | 28.6 KB |
blk-softirq.c | -rw-r--r-- | 4.4 KB |
blk-stat.c | -rw-r--r-- | 4.7 KB |
blk-stat.h | -rw-r--r-- | 4.4 KB |
blk-sysfs.c | -rw-r--r-- | 24.1 KB |
blk-tag.c | -rw-r--r-- | 9.3 KB |
blk-throttle.c | -rw-r--r-- | 68.7 KB |
blk-timeout.c | -rw-r--r-- | 6.0 KB |
blk-wbt.c | -rw-r--r-- | 18.2 KB |
blk-wbt.h | -rw-r--r-- | 3.6 KB |
blk-zoned.c | -rw-r--r-- | 8.7 KB |
blk.h | -rw-r--r-- | 12.1 KB |
bounce.c | -rw-r--r-- | 6.8 KB |
bsg-lib.c | -rw-r--r-- | 8.7 KB |
bsg.c | -rw-r--r-- | 21.1 KB |
cfq-iosched.c | -rw-r--r-- | 126.6 KB |
cmdline-parser.c | -rw-r--r-- | 4.9 KB |
compat_ioctl.c | -rw-r--r-- | 10.9 KB |
deadline-iosched.c | -rw-r--r-- | 13.2 KB |
elevator.c | -rw-r--r-- | 27.4 KB |
genhd.c | -rw-r--r-- | 48.8 KB |
ioctl.c | -rw-r--r-- | 15.2 KB |
ioprio.c | -rw-r--r-- | 5.1 KB |
kyber-iosched.c | -rw-r--r-- | 25.3 KB |
mq-deadline.c | -rw-r--r-- | 20.0 KB |
noop-iosched.c | -rw-r--r-- | 2.6 KB |
opal_proto.h | -rw-r--r-- | 9.3 KB |
partition-generic.c | -rw-r--r-- | 16.9 KB |
scsi_ioctl.c | -rw-r--r-- | 19.1 KB |
sed-opal.c | -rw-r--r-- | 58.8 KB |
t10-pi.c | -rw-r--r-- | 4.9 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...