From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 11/39] drm/i915: Allow userspace to clone contexts on creation Date: Wed, 13 Mar 2019 14:43:33 +0000 Message-ID: <20190313144401.17735-11-chris@chris-wilson.co.uk> References: <20190313144401.17735-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7879A6E092 for ; Wed, 13 Mar 2019 14:45:03 +0000 (UTC) In-Reply-To: <20190313144401.17735-1-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: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QSB1c2VjYXNlIGFyb3NlIG91dCBvZiBoYW5kbGluZyBjb250ZXh0IHJlY292ZXJ5IGluIG1lc2Es IHdoZXJlYnkgdGhleQp3aXNoIHRvIHJlY3JlYXRlIGEgY29udGV4dCB3aXRoIGZyZXNoIGxvZ2lj YWwgc3RhdGUgYnV0IHByZXNlcnZpbmcgYWxsCm90aGVyIGRldGFpbHMgb2YgdGhlIG9yaWdpbmFs LiBDdXJyZW50bHksIHRoZXkgY3JlYXRlIGEgbmV3IGNvbnRleHQgYW5kCml0ZXJhdGUgb3ZlciB3 aGljaCBiaXRzIHRoZXkgd2FudCB0byBjb3B5IGFjcm9zcywgYnV0IGl0IHdvdWxkIG11Y2ggbW9y ZQpjb252ZW5pZW50IGlmIHRoZXkgd2VyZSBhYmxlIHRvIGp1c3QgcGFzcyBpbiBhIHRhcmdldCBj b250ZXh0IHRvIGNsb25lCmR1cmluZyBjcmVhdGlvbi4gVGhpcyBlc3NlbnRpYWxseSBleHRlbmRz IHRoZSBzZXRwYXJhbSBkdXJpbmcgY3JlYXRpb24KdG8gcHVsbCB0aGUgZGV0YWlscyBmcm9tIGEg dGFyZ2V0IGNvbnRleHQgaW5zdGVhZCBvZiB0aGUgdXNlciBzdXBwbGllZApwYXJhbWV0ZXJzLgoK U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgMTAzICsrKysrKysr KysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAg IHwgIDE0ICsrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggNGU0YjBiNWM0YmUwLi5iYWM1NDg1 ODQwOTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTE0ODgs OCArMTQ4OCwxMTEgQEAgc3RhdGljIGludCBjcmVhdGVfc2V0cGFyYW0oc3RydWN0IGk5MTVfdXNl cl9leHRlbnNpb24gX191c2VyICpleHQsIHZvaWQgKmRhdGEpCiAJcmV0dXJuIGN0eF9zZXRwYXJh bShkYXRhLCAmbG9jYWwuc2V0cGFyYW0pOwogfQogCitzdGF0aWMgaW50IGNsb25lX3NzZXUoc3Ry dWN0IGk5MTVfZ2VtX2NvbnRleHQgKmRzdCwKKwkJICAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKnNyYykKK3sKKwljb25zdCBzdHJ1Y3QgaW50ZWxfc3NldSBkZWZhdWx0X3NzZXUgPQorCQlp bnRlbF9kZXZpY2VfZGVmYXVsdF9zc2V1KGRzdC0+aTkxNSk7CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOworCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOworCisJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZHN0LT5pOTE1LCBpZCkgeworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7 CisJCXN0cnVjdCBpbnRlbF9zc2V1IHNzZXU7CisKKwkJY2UgPSBpbnRlbF9jb250ZXh0X2xvb2t1 cChzcmMsIGVuZ2luZSk7CisJCWlmICghY2UpCisJCQljb250aW51ZTsKKworCQlzc2V1ID0gY2Ut PnNzZXU7CisJCWlmICghbWVtY21wKCZzc2V1LCAmZGVmYXVsdF9zc2V1LCBzaXplb2Yoc3NldSkp KQorCQkJY29udGludWU7CisKKwkJY2UgPSBpbnRlbF9jb250ZXh0X3Bpbl9sb2NrKGRzdCwgZW5n aW5lKTsKKwkJaWYgKElTX0VSUihjZSkpCisJCQlyZXR1cm4gUFRSX0VSUihjZSk7CisKKwkJY2Ut PnNzZXUgPSBzc2V1OworCQlpbnRlbF9jb250ZXh0X3Bpbl91bmxvY2soY2UpOworCX0KKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGNyZWF0ZV9jbG9uZShzdHJ1Y3QgaTkxNV91c2VyX2V4 dGVuc2lvbiBfX3VzZXIgKmV4dCwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2NvbnRleHRfY3JlYXRlX2V4dF9jbG9uZSBsb2NhbDsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4 dCAqZHN0ID0gZGF0YTsKKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqc3JjOworCWludCBlcnI7 CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmxvY2FsLCBleHQsIHNpemVvZihsb2NhbCkpKQorCQly ZXR1cm4gLUVGQVVMVDsKKworCWlmIChsb2NhbC5mbGFncyAmIEk5MTVfQ09OVEVYVF9DTE9ORV9V TktOT1dOKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChsb2NhbC5yc3ZkKQorCQlyZXR1cm4g LUVJTlZBTDsKKworCWlmIChsb2NhbC5jbG9uZV9pZCA9PSBkc3QtPnVzZXJfaGFuZGxlKSAvKiBn b29kIGd1ZXNzISBkZW5pZWQuICovCisJCXJldHVybiAtRU5PRU5UOworCisJcmN1X3JlYWRfbG9j aygpOworCXNyYyA9IF9faTkxNV9nZW1fY29udGV4dF9sb29rdXBfcmN1KGRzdC0+ZmlsZV9wcml2 LCBsb2NhbC5jbG9uZV9pZCk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJaWYgKCFzcmMpCisJCXJl dHVybiAtRU5PRU5UOworCisJR0VNX0JVR19PTihzcmMgPT0gZHN0KTsKKworCWlmIChsb2NhbC5m bGFncyAmIEk5MTVfQ09OVEVYVF9DTE9ORV9GTEFHUykKKwkJZHN0LT51c2VyX2ZsYWdzID0gc3Jj LT51c2VyX2ZsYWdzOworCisJaWYgKGxvY2FsLmZsYWdzICYgSTkxNV9DT05URVhUX0NMT05FX1ND SEVEKQorCQlkc3QtPnNjaGVkID0gc3JjLT5zY2hlZDsKKworCWlmIChsb2NhbC5mbGFncyAmIEk5 MTVfQ09OVEVYVF9DTE9ORV9TU0VVKSB7CisJCWVyciA9IGNsb25lX3NzZXUoZHN0LCBzcmMpOwor CQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAobG9jYWwuZmxhZ3MgJiBJOTE1 X0NPTlRFWFRfQ0xPTkVfVElNRUxJTkUgJiYgc3JjLT50aW1lbGluZSkgeworCQlpZiAoZHN0LT50 aW1lbGluZSkKKwkJCWk5MTVfdGltZWxpbmVfcHV0KGRzdC0+dGltZWxpbmUpOworCQlkc3QtPnRp bWVsaW5lID0gaTkxNV90aW1lbGluZV9nZXQoc3JjLT50aW1lbGluZSk7CisJfQorCisJaWYgKGxv Y2FsLmZsYWdzICYgSTkxNV9DT05URVhUX0NMT05FX1ZNKSB7CisJCXN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dDsKKworCQlkbyB7CisJCQlwcGd0dCA9IFJFQURfT05DRShzcmMtPnBwZ3R0KTsK KwkJCWlmICghcHBndHQpCisJCQkJYnJlYWs7CisKKwkJCWlmICgha3JlZl9nZXRfdW5sZXNzX3pl cm8oJnBwZ3R0LT5yZWYpKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAocHBndHQgPT0gUkVBRF9P TkNFKHNyYy0+cHBndHQpKQorCQkJCWJyZWFrOworCisJCQlpOTE1X3BwZ3R0X3B1dChwcGd0dCk7 CisJCX0gd2hpbGUgKDEpOworCisJCWlmIChwcGd0dCkgeworCQkJX19hc3NpZ25fcHBndHQoZHN0 LCBwcGd0dCk7CisJCQlpOTE1X3BwZ3R0X3B1dChwcGd0dCk7CisJCX0KKwl9CisKKwlyZXR1cm4g MDsKK30KKwogc3RhdGljIGNvbnN0IGk5MTVfdXNlcl9leHRlbnNpb25fZm4gY3JlYXRlX2V4dGVu c2lvbnNbXSA9IHsKIAlbSTkxNV9DT05URVhUX0NSRUFURV9FWFRfU0VUUEFSQU1dID0gY3JlYXRl X3NldHBhcmFtLAorCVtJOTE1X0NPTlRFWFRfQ1JFQVRFX0VYVF9DTE9ORV0gPSBjcmVhdGVfY2xv bmUsCiB9OwogCiBzdGF0aWMgYm9vbCBjbGllbnRfaXNfYmFubmVkKHN0cnVjdCBkcm1faTkxNV9m aWxlX3ByaXZhdGUgKmZpbGVfcHJpdikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCA1MjA2ZDAwMDYwNDMu Ljk3MTQ1MjBmNDNkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCisr KyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMTU4MSw2ICsxNTgxLDIwIEBAIHN0 cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9jcmVhdGVfZXh0X3NldHBhcmFtIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gc2V0cGFyYW07CiB9OwogCitzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dF9jbG9uZSB7CisjZGVmaW5lIEk5MTVfQ09OVEVYVF9D UkVBVEVfRVhUX0NMT05FIDEKKwlzdHJ1Y3QgaTkxNV91c2VyX2V4dGVuc2lvbiBiYXNlOworCV9f dTMyIGNsb25lX2lkOworCV9fdTMyIGZsYWdzOworI2RlZmluZSBJOTE1X0NPTlRFWFRfQ0xPTkVf RkxBR1MJKDF1IDw8IDApCisjZGVmaW5lIEk5MTVfQ09OVEVYVF9DTE9ORV9TQ0hFRAkoMXUgPDwg MSkKKyNkZWZpbmUgSTkxNV9DT05URVhUX0NMT05FX1NTRVUJCSgxdSA8PCAyKQorI2RlZmluZSBJ OTE1X0NPTlRFWFRfQ0xPTkVfVElNRUxJTkUJKDF1IDw8IDMpCisjZGVmaW5lIEk5MTVfQ09OVEVY VF9DTE9ORV9WTQkJKDF1IDw8IDQpCisjZGVmaW5lIEk5MTVfQ09OVEVYVF9DTE9ORV9VTktOT1dO IC0oSTkxNV9DT05URVhUX0NMT05FX1ZNIDw8IDEpCisJX191NjQgcnN2ZDsKK307CisKIHN0cnVj dCBkcm1faTkxNV9nZW1fY29udGV4dF9kZXN0cm95IHsKIAlfX3UzMiBjdHhfaWQ7CiAJX191MzIg cGFkOwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZng=