From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v3 2/2] iommu: Remove cpu-local spinlock Date: Wed, 1 Jun 2016 12:10:09 +0100 Message-ID: <1464779409-26711-2-git-send-email-chris@chris-wilson.co.uk> References: <1464776603-11998-1-git-send-email-chris@chris-wilson.co.uk> <1464779409-26711-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1464779409-26711-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joerg Roedel Cc: linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org, iommu@lists.linux-foundation.org List-Id: iommu@lists.linux-foundation.org QnkgYXZvaWRpbmcgY3Jvc3MtQ1BVIHVzYWdlIG9mIHRoZSBwZXItY3B1IGlvdmEgY2FjaGUsIHdl IGNhbiBmb3JnbwpoYXZpbmcgYSBzcGlubG9jayBpbnNpZGUgdGhlIHBlci1jcHUgc3RydWN0LiBU aGUgb25seSBwbGFjZSB3aGVyZSB3ZQphY3R1YWxseSBtYXkgdG91Y2ggYW5vdGhlciBDUFUncyBk YXRhIGlzIHdoZW4gcGVyZm9ybWluZyBhIGNhY2hlIGZsdXNoCmFmdGVyIHJ1bm5pbmcgb3V0IG9m IG1lbW9yeS4gSGVyZSwgd2UgY2FuIGluc3RlYWQgc2NoZWR1bGUgYSB0YXNrIHRvIHJ1bgpvbiB0 aGUgb3RoZXIgQ1BVIHRvIGRvIHRoZSBmbHVzaCBiZWZvcmUgdHJ5aW5nIGFnYWluLgoKU2lnbmVk LW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBKb29u YXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+CkNjOiBKb2VyZyBS b2VkZWwgPGpvcm9AOGJ5dGVzLm9yZz4KQ2M6IGlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24u b3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCi0tLQogZHJpdmVycy9pb21tdS9p b3ZhLmMgfCAyOSArKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9p b21tdS9pb3ZhLmMgYi9kcml2ZXJzL2lvbW11L2lvdmEuYwppbmRleCBlMjMwMDFiZmNmZWUuLjM2 Y2RjOGVlYWIxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9pb3ZhLmMKKysrIGIvZHJpdmVy cy9pb21tdS9pb3ZhLmMKQEAgLTM5MCw2ICszOTAsMTEgQEAgZnJlZV9pb3ZhKHN0cnVjdCBpb3Zh X2RvbWFpbiAqaW92YWQsIHVuc2lnbmVkIGxvbmcgcGZuKQogfQogRVhQT1JUX1NZTUJPTF9HUEwo ZnJlZV9pb3ZhKTsKIAorc3RhdGljIHZvaWQgZnJlZV90aGlzX2NhY2hlZF9pb3Zhcyh2b2lkICpp bmZvKQoreworCWZyZWVfY3B1X2NhY2hlZF9pb3ZhcyhzbXBfcHJvY2Vzc29yX2lkKCksIGluZm8p OworfQorCiAvKioKICAqIGFsbG9jX2lvdmFfZmFzdCAtIGFsbG9jYXRlcyBhbiBpb3ZhIGZyb20g cmNhY2hlCiAgKiBAaW92YWQ6IC0gaW92YSBkb21haW4gaW4gcXVlc3Rpb24KQEAgLTQxMywxNyAr NDE4LDEyIEBAIGFsbG9jX2lvdmFfZmFzdChzdHJ1Y3QgaW92YV9kb21haW4gKmlvdmFkLCB1bnNp Z25lZCBsb25nIHNpemUsCiByZXRyeToKIAluZXdfaW92YSA9IGFsbG9jX2lvdmEoaW92YWQsIHNp emUsIGxpbWl0X3BmbiwgdHJ1ZSk7CiAJaWYgKCFuZXdfaW92YSkgewotCQl1bnNpZ25lZCBpbnQg Y3B1OwotCiAJCWlmIChmbHVzaGVkX3JjYWNoZSkKIAkJCXJldHVybiAwOwogCiAJCS8qIFRyeSBy ZXBsZW5pc2hpbmcgSU9WQXMgYnkgZmx1c2hpbmcgcmNhY2hlLiAqLwogCQlmbHVzaGVkX3JjYWNo ZSA9IHRydWU7Ci0JCXByZWVtcHRfZGlzYWJsZSgpOwotCQlmb3JfZWFjaF9vbmxpbmVfY3B1KGNw dSkKLQkJCWZyZWVfY3B1X2NhY2hlZF9pb3ZhcyhjcHUsIGlvdmFkKTsKLQkJcHJlZW1wdF9lbmFi bGUoKTsKKwkJb25fZWFjaF9jcHUoZnJlZV90aGlzX2NhY2hlZF9pb3ZhcywgaW92YWQsIHRydWUp OwogCQlnb3RvIHJldHJ5OwogCX0KIApAQCAtNjQ3LDcgKzY0Nyw2IEBAIHN0cnVjdCBpb3ZhX21h Z2F6aW5lIHsKIH07CiAKIHN0cnVjdCBpb3ZhX2NwdV9yY2FjaGUgewotCXNwaW5sb2NrX3QgbG9j azsKIAlzdHJ1Y3QgaW92YV9tYWdhemluZSAqbG9hZGVkOwogCXN0cnVjdCBpb3ZhX21hZ2F6aW5l ICpwcmV2OwogfTsKQEAgLTcyOSw3ICs3MjgsNiBAQCBzdGF0aWMgdm9pZCBpbml0X2lvdmFfcmNh Y2hlcyhzdHJ1Y3QgaW92YV9kb21haW4gKmlvdmFkKQogCQkJY29udGludWU7CiAJCWZvcl9lYWNo X3Bvc3NpYmxlX2NwdShjcHUpIHsKIAkJCWNwdV9yY2FjaGUgPSBwZXJfY3B1X3B0cihyY2FjaGUt PmNwdV9yY2FjaGVzLCBjcHUpOwotCQkJc3Bpbl9sb2NrX2luaXQoJmNwdV9yY2FjaGUtPmxvY2sp OwogCQkJY3B1X3JjYWNoZS0+bG9hZGVkID0gaW92YV9tYWdhemluZV9hbGxvYyhHRlBfS0VSTkVM KTsKIAkJCWNwdV9yY2FjaGUtPnByZXYgPSBpb3ZhX21hZ2F6aW5lX2FsbG9jKEdGUF9LRVJORUwp OwogCQl9CkBAIC03NDksMTAgKzc0Nyw4IEBAIHN0YXRpYyBib29sIF9faW92YV9yY2FjaGVfaW5z ZXJ0KHN0cnVjdCBpb3ZhX2RvbWFpbiAqaW92YWQsCiAJc3RydWN0IGlvdmFfbWFnYXppbmUgKm1h Z190b19mcmVlID0gTlVMTDsKIAlzdHJ1Y3QgaW92YV9jcHVfcmNhY2hlICpjcHVfcmNhY2hlOwog CWJvb2wgY2FuX2luc2VydCA9IGZhbHNlOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAljcHVf cmNhY2hlID0gZ2V0X2NwdV9wdHIocmNhY2hlLT5jcHVfcmNhY2hlcyk7Ci0Jc3Bpbl9sb2NrX2ly cXNhdmUoJmNwdV9yY2FjaGUtPmxvY2ssIGZsYWdzKTsKIAogCWlmICghaW92YV9tYWdhemluZV9m dWxsKGNwdV9yY2FjaGUtPmxvYWRlZCkpIHsKIAkJY2FuX2luc2VydCA9IHRydWU7CkBAIC03ODAs NyArNzc2LDYgQEAgc3RhdGljIGJvb2wgX19pb3ZhX3JjYWNoZV9pbnNlcnQoc3RydWN0IGlvdmFf ZG9tYWluICppb3ZhZCwKIAlpZiAoY2FuX2luc2VydCkKIAkJaW92YV9tYWdhemluZV9wdXNoKGNw dV9yY2FjaGUtPmxvYWRlZCwgaW92YV9wZm4pOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm Y3B1X3JjYWNoZS0+bG9jaywgZmxhZ3MpOwogCXB1dF9jcHVfcHRyKHJjYWNoZS0+Y3B1X3JjYWNo ZXMpOwogCiAJaWYgKG1hZ190b19mcmVlKSB7CkBAIC04MTMsMTAgKzgwOCw4IEBAIHN0YXRpYyB1 bnNpZ25lZCBsb25nIF9faW92YV9yY2FjaGVfZ2V0KHN0cnVjdCBpb3ZhX3JjYWNoZSAqcmNhY2hl LAogCXN0cnVjdCBpb3ZhX2NwdV9yY2FjaGUgKmNwdV9yY2FjaGU7CiAJdW5zaWduZWQgbG9uZyBp b3ZhX3BmbiA9IDA7CiAJYm9vbCBoYXNfcGZuID0gZmFsc2U7Ci0JdW5zaWduZWQgbG9uZyBmbGFn czsKIAogCWNwdV9yY2FjaGUgPSBnZXRfY3B1X3B0cihyY2FjaGUtPmNwdV9yY2FjaGVzKTsKLQlz cGluX2xvY2tfaXJxc2F2ZSgmY3B1X3JjYWNoZS0+bG9jaywgZmxhZ3MpOwogCiAJaWYgKCFpb3Zh X21hZ2F6aW5lX2VtcHR5KGNwdV9yY2FjaGUtPmxvYWRlZCkpIHsKIAkJaGFzX3BmbiA9IHRydWU7 CkBAIC04MzYsNyArODI5LDYgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pb3ZhX3JjYWNoZV9n ZXQoc3RydWN0IGlvdmFfcmNhY2hlICpyY2FjaGUsCiAJaWYgKGhhc19wZm4pCiAJCWlvdmFfcGZu ID0gaW92YV9tYWdhemluZV9wb3AoY3B1X3JjYWNoZS0+bG9hZGVkLCBsaW1pdF9wZm4pOwogCi0J c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3B1X3JjYWNoZS0+bG9jaywgZmxhZ3MpOwogCXB1dF9j cHVfcHRyKHJjYWNoZS0+Y3B1X3JjYWNoZXMpOwogCiAJcmV0dXJuIGlvdmFfcGZuOwpAQCAtODY2 LDE3ICs4NTgsMTEgQEAgc3RhdGljIHZvaWQgZnJlZV9jcHVfaW92YV9yY2FjaGUodW5zaWduZWQg aW50IGNwdSwgc3RydWN0IGlvdmFfZG9tYWluICppb3ZhZCwKIAkJCQkgc3RydWN0IGlvdmFfcmNh Y2hlICpyY2FjaGUpCiB7CiAJc3RydWN0IGlvdmFfY3B1X3JjYWNoZSAqY3B1X3JjYWNoZSA9IHBl cl9jcHVfcHRyKHJjYWNoZS0+Y3B1X3JjYWNoZXMsIGNwdSk7Ci0JdW5zaWduZWQgbG9uZyBmbGFn czsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjcHVfcmNhY2hlLT5sb2NrLCBmbGFncyk7Ci0KIAlp b3ZhX21hZ2F6aW5lX2ZyZWVfcGZucyhjcHVfcmNhY2hlLT5sb2FkZWQsIGlvdmFkKTsKIAlpb3Zh X21hZ2F6aW5lX2ZyZWUoY3B1X3JjYWNoZS0+bG9hZGVkKTsKIAogCWlvdmFfbWFnYXppbmVfZnJl ZV9wZm5zKGNwdV9yY2FjaGUtPnByZXYsIGlvdmFkKTsKIAlpb3ZhX21hZ2F6aW5lX2ZyZWUoY3B1 X3JjYWNoZS0+cHJldik7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjcHVfcmNhY2hlLT5s b2NrLCBmbGFncyk7CiB9CiAKIC8qCkBAIC05MTAsMTYgKzg5NiwxMyBAQCB2b2lkIGZyZWVfY3B1 X2NhY2hlZF9pb3Zhcyh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgaW92YV9kb21haW4gKmlvdmFk KQogewogCXN0cnVjdCBpb3ZhX2NwdV9yY2FjaGUgKmNwdV9yY2FjaGU7CiAJc3RydWN0IGlvdmFf cmNhY2hlICpyY2FjaGU7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgaTsKIAogCWZvciAo aSA9IDA7IGkgPCBJT1ZBX1JBTkdFX0NBQ0hFX01BWF9TSVpFOyArK2kpIHsKIAkJcmNhY2hlID0g JmlvdmFkLT5yY2FjaGVzW2ldOwogCQljcHVfcmNhY2hlID0gcGVyX2NwdV9wdHIocmNhY2hlLT5j cHVfcmNhY2hlcywgY3B1KTsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmNwdV9yY2FjaGUtPmxvY2ss IGZsYWdzKTsKIAkJaW92YV9tYWdhemluZV9mcmVlX3BmbnMoY3B1X3JjYWNoZS0+bG9hZGVkLCBp b3ZhZCk7CiAJCWlvdmFfbWFnYXppbmVfZnJlZV9wZm5zKGNwdV9yY2FjaGUtPnByZXYsIGlvdmFk KTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3B1X3JjYWNoZS0+bG9jaywgZmxhZ3MpOwog CX0KIH0KIAotLSAKMi44LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=