From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH 16/18] drm/amdgpu: recover page tables after gpu reset Date: Fri, 12 Aug 2016 14:39:05 +0800 Message-ID: <1470983947-32579-17-git-send-email-David1.Zhou@amd.com> References: <1470983947-32579-1-git-send-email-David1.Zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470983947-32579-1-git-send-email-David1.Zhou-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Chunming Zhou Q2hhbmdlLUlkOiBJOTYzNTk4YmE2ZWI0NGJjODYyMGQ3MGUwMjZjMDE3NWQxYTFkZTEyMApTaWdu ZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxEYXZpZDEuWmhvdUBhbWQuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDc3ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf ZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKaW5k ZXggZTVhZTBhOC4uZmYxMWVlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9kZXZpY2UuYwpAQCAtMjE2MiwxOCArMjE2Miw5MyBAQCByZXRyeToKIAkJYW1kZ3B1X2F0b21i aW9zX3NjcmF0Y2hfcmVnc19yZXN0b3JlKGFkZXYpOwogCX0KIAlpZiAoIXIpIHsKKwkJc3RydWN0 IGFtZGdwdV9yaW5nICpidWZmZXJfcmluZyA9IGFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX3Jpbmc7 CisKIAkJYW1kZ3B1X2lycV9ncHVfcmVzZXRfcmVzdW1lX2hlbHBlcihhZGV2KTsKIAkJciA9IGFt ZGdwdV9pYl9yaW5nX3Rlc3RzKGFkZXYpOwogCQlpZiAocikgewogCQkJZGV2X2VycihhZGV2LT5k ZXYsICJpYiByaW5nIHRlc3QgZmFpbGVkICglZCkuXG4iLCByKTsKIAkJCXIgPSBhbWRncHVfc3Vz cGVuZChhZGV2KTsKKwkJCW5lZWRfZnVsbF9yZXNldCA9IHRydWU7CiAJCQlnb3RvIHJldHJ5Owog CQl9Ci0KKwkJLyoqCisJCSAqIHJlY292ZXJ5IHZtIHBhZ2UgdGFibGVzLCBzaW5jZSB3ZSBjYW5u b3QgZGVwZW5kIG9uIFZSQU0gaXMgbm8gcHJvYmxlbQorCQkgKiBhZnRlciBncHUgZnVsbCByZXNl dC4KKwkJICovCisJCWlmIChuZWVkX2Z1bGxfcmVzZXQgJiYgIShhZGV2LT5mbGFncyAmIEFNRF9J U19BUFUpKSB7CisJCQlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwgKnRtcDsKKwkJCXN0cnVjdCBhbWRn cHVfcmluZyAqcmluZzsKKwkJCXN0cnVjdCBmZW5jZSAqZmVuY2UgPSBOVUxMOworCQkJaW50IGk7 CisKKwkJCURSTV9JTkZPKCJyZWNvdmVyIHBhZ2UgdGFibGUgZnJvbSBzaGFkb3dcbiIpOworCQkJ Zm9yIChpID0gMDsgaSA8IGFkZXYtPnZtX21hbmFnZXIudm1fcHRlX251bV9yaW5nczsgaSsrKSB7 CisJCQkJcmluZyA9IGFkZXYtPnZtX21hbmFnZXIudm1fcHRlX3JpbmdzW2ldOworCQkJCWFtZF9z Y2hlZF9ycV9ibG9ja19lbnRpdHkoCisJCQkJCSZyaW5nLT5zY2hlZC5zY2hlZF9ycVtBTURfU0NI RURfUFJJT1JJVFlfTk9STUFMXSwgdHJ1ZSk7CisJCQkJYW1kX3NjaGVkX3JxX2Jsb2NrX2VudGl0 eSgKKwkJCQkJJnJpbmctPnNjaGVkLnNjaGVkX3JxW0FNRF9TQ0hFRF9QUklPUklUWV9LRVJORUxd LCB0cnVlKTsKKwkJCX0KKwkJCXNwaW5fbG9jaygmYWRldi0+dm1fbGlzdF9sb2NrKTsKKwkJCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bSwgdG1wLCAmYWRldi0+dm1fbGlzdCwgbGlzdCkgewor CQkJCXNwaW5fdW5sb2NrKCZhZGV2LT52bV9saXN0X2xvY2spOworCQkJCWFtZF9zY2hlZF9ibG9j a19lbnRpdHkoJnZtLT5zaGFkb3dfZW50aXR5LCBmYWxzZSk7CisJCQkJc3Bpbl9sb2NrKCZhZGV2 LT52bV9saXN0X2xvY2spOworCQkJfQorCQkJc3Bpbl91bmxvY2soJmFkZXYtPnZtX2xpc3RfbG9j ayk7CisJCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dm1fbWFuYWdlci52bV9wdGVfbnVtX3Jpbmdz OyBpKyspIHsKKwkJCQlyaW5nID0gYWRldi0+dm1fbWFuYWdlci52bV9wdGVfcmluZ3NbaV07CisJ CQkJa3RocmVhZF91bnBhcmsocmluZy0+c2NoZWQudGhyZWFkKTsKKwkJCX0KKwkJCXNwaW5fbG9j aygmYWRldi0+dm1fbGlzdF9sb2NrKTsKKwkJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bSwg dG1wLCAmYWRldi0+dm1fbGlzdCwgbGlzdCkgeworCQkJCXNwaW5fdW5sb2NrKCZhZGV2LT52bV9s aXN0X2xvY2spOworCQkJCS8qIHdhaXQgZm9yIGFsbCBzaGFkb3cgam9icyBmaW5pc2hlZCAqLwor CQkJCWlmICh2bS0+c2hhZG93X2VudGl0eS5sYXN0X2ZlbmNlKQorCQkJCQlmZW5jZV93YWl0KHZt LT5zaGFkb3dfZW50aXR5Lmxhc3RfZmVuY2UsIGZhbHNlKTsKKwkJCQlzcGluX2xvY2soJmFkZXYt PnZtX2xpc3RfbG9jayk7CisJCQl9CisJCQlzcGluX3VubG9jaygmYWRldi0+dm1fbGlzdF9sb2Nr KTsKKwkJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT52bV9tYW5hZ2VyLnZtX3B0ZV9udW1fcmluZ3M7 IGkrKykgeworCQkJCXJpbmcgPSBhZGV2LT52bV9tYW5hZ2VyLnZtX3B0ZV9yaW5nc1tpXTsKKwkJ CQlrdGhyZWFkX3BhcmsocmluZy0+c2NoZWQudGhyZWFkKTsKKwkJCQlhbWRfc2NoZWRfcnFfYmxv Y2tfZW50aXR5KAorCQkJCQkmcmluZy0+c2NoZWQuc2NoZWRfcnFbQU1EX1NDSEVEX1BSSU9SSVRZ X05PUk1BTF0sIHRydWUpOworCQkJCWFtZF9zY2hlZF9ycV9ibG9ja19lbnRpdHkoCisJCQkJCSZy aW5nLT5zY2hlZC5zY2hlZF9ycVtBTURfU0NIRURfUFJJT1JJVFlfS0VSTkVMXSwgdHJ1ZSk7CisJ CQl9CisJCQlhbWRfc2NoZWRfYmxvY2tfZW50aXR5KCZhZGV2LT5tbWFuLmVudGl0eSwgZmFsc2Up OworCQkJa3RocmVhZF91bnBhcmsoYnVmZmVyX3JpbmctPnNjaGVkLnRocmVhZCk7CisJCQlzcGlu X2xvY2soJmFkZXYtPnZtX2xpc3RfbG9jayk7CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUo dm0sIHRtcCwgJmFkZXYtPnZtX2xpc3QsIGxpc3QpIHsKKwkJCQlzcGluX3VubG9jaygmYWRldi0+ dm1fbGlzdF9sb2NrKTsKKwkJCQlhbWRncHVfdm1fcmVjb3Zlcl9wYWdlX3RhYmxlX2Zyb21fc2hh ZG93KGFkZXYsIHZtKTsKKwkJCQlpZiAodm0tPnNoYWRvd19zeW5jX2ZlbmNlKSB7CisJCQkJCWZl bmNlX3B1dChmZW5jZSk7CisJCQkJCWZlbmNlID0gZmVuY2VfZ2V0KHZtLT5zaGFkb3dfc3luY19m ZW5jZSk7CisJCQkJfQorCQkJCXNwaW5fbG9jaygmYWRldi0+dm1fbGlzdF9sb2NrKTsKKwkJCX0K KwkJCXNwaW5fdW5sb2NrKCZhZGV2LT52bV9saXN0X2xvY2spOworCQkJaWYgKGZlbmNlKQorCQkJ CWZlbmNlX3dhaXQoZmVuY2UsIGZhbHNlKTsKKwkJCWZlbmNlX3B1dChmZW5jZSk7CisJCQlmb3Ig KGkgPSAwOyBpIDwgYWRldi0+dm1fbWFuYWdlci52bV9wdGVfbnVtX3JpbmdzOyBpKyspIHsKKwkJ CQlyaW5nID0gYWRldi0+dm1fbWFuYWdlci52bV9wdGVfcmluZ3NbaV07CisJCQkJa3RocmVhZF9w YXJrKHJpbmctPnNjaGVkLnRocmVhZCk7CisJCQkJYW1kX3NjaGVkX3JxX2Jsb2NrX2VudGl0eSgK KwkJCQkJJnJpbmctPnNjaGVkLnNjaGVkX3JxW0FNRF9TQ0hFRF9QUklPUklUWV9OT1JNQUxdLCBm YWxzZSk7CisJCQkJYW1kX3NjaGVkX3JxX2Jsb2NrX2VudGl0eSgKKwkJCQkJJnJpbmctPnNjaGVk LnNjaGVkX3JxW0FNRF9TQ0hFRF9QUklPUklUWV9LRVJORUxdLCBmYWxzZSk7CisJCQl9CisJCX0K IAkJZm9yIChpID0gMDsgaSA8IEFNREdQVV9NQVhfUklOR1M7ICsraSkgewogCQkJc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nID0gYWRldi0+cmluZ3NbaV07CiAJCQlpZiAoIXJpbmcpCiAJCQkJY29u dGludWU7CisKKwkJCURSTV9JTkZPKCJyaW5nOiVkIHJlY292ZXIgam9ic1xuIiwgcmluZy0+aWR4 KTsKIAkJCWFtZF9zY2hlZF9qb2JfcmVjb3ZlcnkoJnJpbmctPnNjaGVkKTsKIAkJCWt0aHJlYWRf dW5wYXJrKHJpbmctPnNjaGVkLnRocmVhZCk7CiAJCX0KLS0gCjEuOS4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAph bWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK