From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zeng, Oak" Subject: [PATCH 1/4] drm/amdkfd: Fix sdma queue allocate race condition Date: Fri, 31 May 2019 21:19:04 +0000 Message-ID: <1559337538-14249-1-git-send-email-Oak.Zeng@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US 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: "Zhao, Yong" , "Kuehling, Felix" , "Freehill, Chris" , "Zeng, Oak" , "Liu, Alex" U0RNQSBxdWV1ZSBhbGxvY2F0aW9uIHJlcXVpcmVzIHRoZSBkcW0gbG9jayBhcyBpdCBtb2RpZnkN CnRoZSBnbG9iYWwgZHFtIG1lbWJlcnMuIEludHJvZHVjZSBmdW5jdGlvbnMgdG8gYWxsb2NhdGUv ZGVhbGxvY2F0ZQ0KaW4gbG9ja2VkL3VubG9ja2VkIGNpcmN1bXN0YW5jZS4NCg0KQ2hhbmdlLUlk OiBJZDMwODQ1MjRjNWY2NWQ5NjI5YjEyY2Y2YjQ4NjJhNzUxNjk0NWNiMQ0KU2lnbmVkLW9mZi1i eTogT2FrIFplbmcgPE9hay5aZW5nQGFtZC5jb20+DQotLS0NCiAuLi4vZ3B1L2RybS9hbWQvYW1k a2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jICB8IDQ2ICsrKysrKysrKysrKysrKystLS0t LS0NCiAxIGZpbGUgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVl X21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVf bWFuYWdlci5jDQppbmRleCBlY2UzNWM3Li4xZjcwN2JiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMNCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jDQpAQCAtNjEs NiArNjEsOCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9zZG1hX3F1ZXVlX25vY3BzY2goc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogDQogc3RhdGljIHZvaWQgZGVhbGxvY2F0ZV9zZG1h X3F1ZXVlKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLA0KIAkJCQlzdHJ1Y3QgcXVl dWUgKnEpOw0KK3N0YXRpYyB2b2lkIGRlYWxsb2NhdGVfc2RtYV9xdWV1ZV9sb2NrZWQoc3RydWN0 IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQorCQkJCXN0cnVjdCBxdWV1ZSAqcSk7DQogDQog c3RhdGljIHZvaWQga2ZkX3Byb2Nlc3NfaHdfZXhjZXB0aW9uKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yayk7DQogDQpAQCAtNDQ2LDEwICs0NDgsMTAgQEAgc3RhdGljIGludCBkZXN0cm95X3F1ZXVl X25vY3BzY2hfbG9ja2VkKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLA0KIAkJZGVh bGxvY2F0ZV9ocWQoZHFtLCBxKTsNCiAJfSBlbHNlIGlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0g S0ZEX1FVRVVFX1RZUEVfU0RNQSkgew0KIAkJZHFtLT5zZG1hX3F1ZXVlX2NvdW50LS07DQotCQlk ZWFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxKTsNCisJCWRlYWxsb2NhdGVfc2RtYV9xdWV1ZV9s b2NrZWQoZHFtLCBxKTsNCiAJfSBlbHNlIGlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0gS0ZEX1FV RVVFX1RZUEVfU0RNQV9YR01JKSB7DQogCQlkcW0tPnhnbWlfc2RtYV9xdWV1ZV9jb3VudC0tOw0K LQkJZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlKGRxbSwgcSk7DQorCQlkZWFsbG9jYXRlX3NkbWFfcXVl dWVfbG9ja2VkKGRxbSwgcSk7DQogCX0gZWxzZSB7DQogCQlwcl9kZWJ1ZygicS0+cHJvcGVydGll cy50eXBlICVkIGlzIGludmFsaWRcbiIsDQogCQkJCXEtPnByb3BlcnRpZXMudHlwZSk7DQpAQCAt OTIyLDggKzkyNCwxMCBAQCBzdGF0aWMgaW50IGFsbG9jYXRlX3NkbWFfcXVldWUoc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogCWlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0gS0ZE X1FVRVVFX1RZUEVfU0RNQSkgew0KIAkJaWYgKGRxbS0+c2RtYV9iaXRtYXAgPT0gMCkNCiAJCQly ZXR1cm4gLUVOT01FTTsNCisJCWRxbV9sb2NrKGRxbSk7DQogCQliaXQgPSBfX2ZmczY0KGRxbS0+ c2RtYV9iaXRtYXApOw0KIAkJZHFtLT5zZG1hX2JpdG1hcCAmPSB+KDFVTEwgPDwgYml0KTsNCisJ CWRxbV91bmxvY2soZHFtKTsNCiAJCXEtPnNkbWFfaWQgPSBiaXQ7DQogCQlxLT5wcm9wZXJ0aWVz LnNkbWFfZW5naW5lX2lkID0gcS0+c2RtYV9pZCAlDQogCQkJCWdldF9udW1fc2RtYV9lbmdpbmVz KGRxbSk7DQpAQCAtOTMyLDggKzkzNiwxMCBAQCBzdGF0aWMgaW50IGFsbG9jYXRlX3NkbWFfcXVl dWUoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogCX0gZWxzZSBpZiAocS0+cHJv cGVydGllcy50eXBlID09IEtGRF9RVUVVRV9UWVBFX1NETUFfWEdNSSkgew0KIAkJaWYgKGRxbS0+ eGdtaV9zZG1hX2JpdG1hcCA9PSAwKQ0KIAkJCXJldHVybiAtRU5PTUVNOw0KKwkJZHFtX2xvY2so ZHFtKTsNCiAJCWJpdCA9IF9fZmZzNjQoZHFtLT54Z21pX3NkbWFfYml0bWFwKTsNCiAJCWRxbS0+ eGdtaV9zZG1hX2JpdG1hcCAmPSB+KDFVTEwgPDwgYml0KTsNCisJCWRxbV91bmxvY2soZHFtKTsN CiAJCXEtPnNkbWFfaWQgPSBiaXQ7DQogCQkvKiBzZG1hX2VuZ2luZV9pZCBpcyBzZG1hIGlkIGlu Y2x1ZGluZw0KIAkJICogYm90aCBQQ0llLW9wdGltaXplZCBTRE1BcyBhbmQgWEdNSS0NCkBAIC05 NTMsMTcgKzk1OSwzNSBAQCBzdGF0aWMgaW50IGFsbG9jYXRlX3NkbWFfcXVldWUoc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogCXJldHVybiAwOw0KIH0NCiANCitzdGF0aWMgdm9p ZCBkZWFsbG9jYXRlX3NkbWFfcXVldWVfbG9ja2VkKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdl ciAqZHFtLA0KKwkJCQlzdHJ1Y3QgcXVldWUgKnEpDQorew0KKwlpZiAocS0+cHJvcGVydGllcy50 eXBlID09IEtGRF9RVUVVRV9UWVBFX1NETUEpIHsNCisJCWlmIChxLT5zZG1hX2lkID49IGdldF9u dW1fc2RtYV9xdWV1ZXMoZHFtKSkNCisJCQlyZXR1cm47DQorCQlkcW0tPnNkbWFfYml0bWFwIHw9 ICgxVUxMIDw8IHEtPnNkbWFfaWQpOw0KKwl9IGVsc2UgaWYgKHEtPnByb3BlcnRpZXMudHlwZSA9 PSBLRkRfUVVFVUVfVFlQRV9TRE1BX1hHTUkpIHsNCisJCWlmIChxLT5zZG1hX2lkID49IGdldF9u dW1feGdtaV9zZG1hX3F1ZXVlcyhkcW0pKQ0KKwkJCXJldHVybjsNCisJCWRxbS0+eGdtaV9zZG1h X2JpdG1hcCB8PSAoMVVMTCA8PCBxLT5zZG1hX2lkKTsNCisJfQ0KK30NCisNCiBzdGF0aWMgdm9p ZCBkZWFsbG9jYXRlX3NkbWFfcXVldWUoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0s DQogCQkJCXN0cnVjdCBxdWV1ZSAqcSkNCiB7DQogCWlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0g S0ZEX1FVRVVFX1RZUEVfU0RNQSkgew0KIAkJaWYgKHEtPnNkbWFfaWQgPj0gZ2V0X251bV9zZG1h X3F1ZXVlcyhkcW0pKQ0KIAkJCXJldHVybjsNCisJCWRxbV9sb2NrKGRxbSk7DQogCQlkcW0tPnNk bWFfYml0bWFwIHw9ICgxVUxMIDw8IHEtPnNkbWFfaWQpOw0KKwkJZHFtX3VubG9jayhkcW0pOw0K IAl9IGVsc2UgaWYgKHEtPnByb3BlcnRpZXMudHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9TRE1BX1hH TUkpIHsNCiAJCWlmIChxLT5zZG1hX2lkID49IGdldF9udW1feGdtaV9zZG1hX3F1ZXVlcyhkcW0p KQ0KIAkJCXJldHVybjsNCisJCWRxbV9sb2NrKGRxbSk7DQogCQlkcW0tPnhnbWlfc2RtYV9iaXRt YXAgfD0gKDFVTEwgPDwgcS0+c2RtYV9pZCk7DQorCQlkcW1fdW5sb2NrKGRxbSk7DQogCX0NCiB9 DQogDQpAQCAtOTgyLDcgKzEwMDYsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9zZG1hX3F1ZXVlX25v Y3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogDQogCXJldHZhbCA9IGFs bG9jYXRlX2Rvb3JiZWxsKHFwZCwgcSk7DQogCWlmIChyZXR2YWwpDQotCQlnb3RvIG91dF9kZWFs bG9jYXRlX3NkbWFfcXVldWU7DQorCQlnb3RvIG91dF9kZWFsbG9jYXRlX3NkbWFfcXVldWVfbG9j a2VkOw0KIA0KIAlkcW0tPmFzaWNfb3BzLmluaXRfc2RtYV92bShkcW0sIHEsIHFwZCk7DQogCXJl dHZhbCA9IG1xZF9tZ3ItPmluaXRfbXFkKG1xZF9tZ3IsICZxLT5tcWQsICZxLT5tcWRfbWVtX29i aiwNCkBAIC0xMDAxLDggKzEwMjUsOCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9zZG1hX3F1ZXVlX25v Y3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogCW1xZF9tZ3ItPnVuaW5p dF9tcWQobXFkX21nciwgcS0+bXFkLCBxLT5tcWRfbWVtX29iaik7DQogb3V0X2RlYWxsb2NhdGVf ZG9vcmJlbGw6DQogCWRlYWxsb2NhdGVfZG9vcmJlbGwocXBkLCBxKTsNCi1vdXRfZGVhbGxvY2F0 ZV9zZG1hX3F1ZXVlOg0KLQlkZWFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxKTsNCitvdXRfZGVh bGxvY2F0ZV9zZG1hX3F1ZXVlX2xvY2tlZDoNCisJZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlX2xvY2tl ZChkcW0sIHEpOw0KIA0KIAlyZXR1cm4gcmV0dmFsOw0KIH0NCkBAIC0xMTk0LDcgKzEyMTgsNyBA QCBzdGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFn ZXIgKmRxbSwgc3RydWN0IHF1ZXVlICpxLA0KIA0KIAlyZXR2YWwgPSBhbGxvY2F0ZV9kb29yYmVs bChxcGQsIHEpOw0KIAlpZiAocmV0dmFsKQ0KLQkJZ290byBvdXRfZGVhbGxvY2F0ZV9zZG1hX3F1 ZXVlOw0KKwkJZ290byBvdXRfZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlX2xvY2tlZDsNCiANCiAJbXFk X21nciA9IGRxbS0+bXFkX21ncnNbZ2V0X21xZF90eXBlX2Zyb21fcXVldWVfdHlwZSgNCiAJCQlx LT5wcm9wZXJ0aWVzLnR5cGUpXTsNCkBAIC0xMjQyLDcgKzEyNjYsNyBAQCBzdGF0aWMgaW50IGNy ZWF0ZV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwgc3RydWN0 IHF1ZXVlICpxLA0KIA0KIG91dF9kZWFsbG9jYXRlX2Rvb3JiZWxsOg0KIAlkZWFsbG9jYXRlX2Rv b3JiZWxsKHFwZCwgcSk7DQotb3V0X2RlYWxsb2NhdGVfc2RtYV9xdWV1ZToNCitvdXRfZGVhbGxv Y2F0ZV9zZG1hX3F1ZXVlX2xvY2tlZDoNCiAJaWYgKHEtPnByb3BlcnRpZXMudHlwZSA9PSBLRkRf UVVFVUVfVFlQRV9TRE1BIHx8DQogCQlxLT5wcm9wZXJ0aWVzLnR5cGUgPT0gS0ZEX1FVRVVFX1RZ UEVfU0RNQV9YR01JKQ0KIAkJZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlKGRxbSwgcSk7DQpAQCAtMTM5 NiwxMCArMTQyMCwxMCBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfcXVldWVfY3BzY2goc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQogDQogCWlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0g S0ZEX1FVRVVFX1RZUEVfU0RNQSkgew0KIAkJZHFtLT5zZG1hX3F1ZXVlX2NvdW50LS07DQotCQlk ZWFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxKTsNCisJCWRlYWxsb2NhdGVfc2RtYV9xdWV1ZV9s b2NrZWQoZHFtLCBxKTsNCiAJfSBlbHNlIGlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0gS0ZEX1FV RVVFX1RZUEVfU0RNQV9YR01JKSB7DQogCQlkcW0tPnhnbWlfc2RtYV9xdWV1ZV9jb3VudC0tOw0K LQkJZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlKGRxbSwgcSk7DQorCQlkZWFsbG9jYXRlX3NkbWFfcXVl dWVfbG9ja2VkKGRxbSwgcSk7DQogCX0NCiANCiAJbGlzdF9kZWwoJnEtPmxpc3QpOw0KQEAgLTE2 MjUsMTAgKzE2NDksMTAgQEAgc3RhdGljIGludCBwcm9jZXNzX3Rlcm1pbmF0aW9uX2Nwc2NoKHN0 cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLA0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHEs ICZxcGQtPnF1ZXVlc19saXN0LCBsaXN0KSB7DQogCQlpZiAocS0+cHJvcGVydGllcy50eXBlID09 IEtGRF9RVUVVRV9UWVBFX1NETUEpIHsNCiAJCQlkcW0tPnNkbWFfcXVldWVfY291bnQtLTsNCi0J CQlkZWFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxKTsNCisJCQlkZWFsbG9jYXRlX3NkbWFfcXVl dWVfbG9ja2VkKGRxbSwgcSk7DQogCQl9IGVsc2UgaWYgKHEtPnByb3BlcnRpZXMudHlwZSA9PSBL RkRfUVVFVUVfVFlQRV9TRE1BX1hHTUkpIHsNCiAJCQlkcW0tPnhnbWlfc2RtYV9xdWV1ZV9jb3Vu dC0tOw0KLQkJCWRlYWxsb2NhdGVfc2RtYV9xdWV1ZShkcW0sIHEpOw0KKwkJCWRlYWxsb2NhdGVf c2RtYV9xdWV1ZV9sb2NrZWQoZHFtLCBxKTsNCiAJCX0NCiANCiAJCWlmIChxLT5wcm9wZXJ0aWVz LmlzX2FjdGl2ZSkNCi0tIA0KMi43LjQNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4