From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Martin Subject: [PATCH v4 08/25] arm64/sve: Enable SVE state tracking for non-task contexts Date: Thu, 17 Jan 2019 20:33:22 +0000 Message-ID: <1547757219-19439-9-git-send-email-Dave.Martin@arm.com> References: <1547757219-19439-1-git-send-email-Dave.Martin@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 4D30F4A379 for ; Thu, 17 Jan 2019 15:34:48 -0500 (EST) Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0oYpp6YDuk39 for ; Thu, 17 Jan 2019 15:34:47 -0500 (EST) Received: from foss.arm.com (usa-sjc-mx-foss1.foss.arm.com [217.140.101.70]) by mm01.cs.columbia.edu (Postfix) with ESMTP id BB78B4A381 for ; Thu, 17 Jan 2019 15:34:46 -0500 (EST) In-Reply-To: <1547757219-19439-1-git-send-email-Dave.Martin@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu To: kvmarm@lists.cs.columbia.edu Cc: Okamoto Takayuki , Christoffer Dall , Ard Biesheuvel , Marc Zyngier , Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org List-Id: kvmarm@lists.cs.columbia.edu VGhlIGN1cnJlbnQgRlBTSU1EL1NWRSBjb250ZXh0IGhhbmRsaW5nIHN1cHBvcnQgZm9yIG5vbi10 YXNrIChpLmUuLApLVk0gdmNwdSkgY29udGV4dHMgZG9lcyBub3QgdGFrZSBTVkUgaW50byBhY2Nv dW50LiAgVGhpcyBtZWFucyB0aGF0Cm9ubHkgdGFzayBjb250ZXh0cyBjYW4gc2FmZWx5IHVzZSBT VkUgYXQgcHJlc2VudC4KCkluIHByZXBhcmF0aW9uIGZvciBlbmFibGluZyBLVk0gZ3Vlc3RzIHRv IHVzZSBTVkUsIGl0IGlzIG5lY2Vzc2FyeQp0byBrZWVwIHRyYWNrIG9mIFNWRSBzdGF0ZSBmb3Ig bm9uLXRhc2sgY29udGV4dHMgdG9vLgoKVGhpcyBwYXRjaCBhZGRzIHRoZSBuZWNlc3Nhcnkgc3Vw cG9ydCwgcmVtb3ZpbmcgYXNzdW1wdGlvbnMgZnJvbQp0aGUgY29udGV4dCBzd2l0Y2ggY29kZSBh Ym91dCB0aGUgbG9jYXRpb24gb2YgdGhlIFNWRSBjb250ZXh0CnN0b3JhZ2UuCgpXaGVuIGJpbmRp bmcgYSB2Y3B1IGNvbnRleHQsIGl0cyB2ZWN0b3IgbGVuZ3RoIGlzIGFyYml0cmFyaWx5CnNwZWNp ZmllZCBhcyBTVkVfVkxfTUlOIGZvciBub3cuICBJbiBhbnkgY2FzZSwgYmVjYXVzZSBUSUZfU1ZF IGlzCnByZXNlbnRseSBjbGVhcmVkIGF0IHZjcHUgY29udGV4dCBiaW5kIHRpbWUsIHRoZSBzcGVj aWZpZWQgdmVjdG9yCmxlbmd0aCB3aWxsIG5vdCBiZSB1c2VkIGZvciBhbnl0aGluZyB5ZXQuICBJ biBsYXRlciBwYXRjaGVzIFRJRl9TVkUKd2lsbCBiZSBzZXQgaGVyZSBhcyBhcHByb3ByaWF0ZSwg YW5kIHRoZSBhcHByb3ByaWF0ZSBtYXhpbXVtIHZlY3RvcgpsZW5ndGggZm9yIHRoZSB2Y3B1IHdp bGwgYmUgcGFzc2VkIHdoZW4gYmluZGluZy4KClNpZ25lZC1vZmYtYnk6IERhdmUgTWFydGluIDxE YXZlLk1hcnRpbkBhcm0uY29tPgpSZXZpZXdlZC1ieTogQWxleCBCZW5uw6llIDxhbGV4LmJlbm5l ZUBsaW5hcm8ub3JnPgoKLS0tCgpDaGFuZ2VzIHNpbmNlIFJGQyB2MzoKCiAqIEFkZCBtaXNzaW5n IGluY2x1ZGUgb2YgPGFzbS9mcHNpbWQuaD4gaW4gYXJjaC9hcm02NC9rdm0vZnBzaW1kLmMuCgog KiBQYXNzIFNWRV9WTF9NSU4gaW5zdGVhZCBvZiBzdmVfbWF4X3ZsIHRvIGZwc2ltZF9iaW5kX3N0 YXRlX3RvX2NwdSgpLAogICB0byBhdm9pZCBhIGxpbmsgZXJyb3IgaW4gdGhlIENPTkZOSUdfQVJN NjRfU1ZFPW4gY2FzZS4gIFRoZSB2YWx1ZSBpcwogICBpbiBhbnkgY2FzZSBub3QgdXNlZCBmb3Ig YW55dGhpbmcgaW4gcHJhY3RpY2UsIGFuZCB0aGUgY29kZSBpcwogICByZXBsYWNlZCB3aXRoIHRo ZSByZWFsIHZlY3RvciBsZW5ndGggaW4gYSBzdWJzZXF1ZW50IHBhdGNoLAogICByZXNvbHZpbmcg dGhlIGxpbmsgZXJyb3IuCi0tLQogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9mcHNpbWQuaCB8ICAz ICsrLQogYXJjaC9hcm02NC9rZXJuZWwvZnBzaW1kLmMgICAgICB8IDIwICsrKysrKysrKysrKysr Ky0tLS0tCiBhcmNoL2FybTY0L2t2bS9mcHNpbWQuYyAgICAgICAgIHwgIDUgKysrKy0KIDMgZmls ZXMgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2Zwc2ltZC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2Fz bS9mcHNpbWQuaAppbmRleCA5NjRhZGM5Li5kZjdhMTQzIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0 L2luY2x1ZGUvYXNtL2Zwc2ltZC5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20vZnBzaW1k LmgKQEAgLTU2LDcgKzU2LDggQEAgZXh0ZXJuIHZvaWQgZnBzaW1kX3Jlc3RvcmVfY3VycmVudF9z dGF0ZSh2b2lkKTsKIGV4dGVybiB2b2lkIGZwc2ltZF91cGRhdGVfY3VycmVudF9zdGF0ZShzdHJ1 Y3QgdXNlcl9mcHNpbWRfc3RhdGUgY29uc3QgKnN0YXRlKTsKIAogZXh0ZXJuIHZvaWQgZnBzaW1k X2JpbmRfdGFza190b19jcHUodm9pZCk7Ci1leHRlcm4gdm9pZCBmcHNpbWRfYmluZF9zdGF0ZV90 b19jcHUoc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpzdGF0ZSk7CitleHRlcm4gdm9pZCBmcHNp bWRfYmluZF9zdGF0ZV90b19jcHUoc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpzdGF0ZSwKKwkJ CQkgICAgIHZvaWQgKnN2ZV9zdGF0ZSwgdW5zaWduZWQgaW50IHN2ZV92bCk7CiAKIGV4dGVybiB2 b2lkIGZwc2ltZF9mbHVzaF90YXNrX3N0YXRlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0KTsK IGV4dGVybiB2b2lkIGZwc2ltZF9mbHVzaF9jcHVfc3RhdGUodm9pZCk7CmRpZmYgLS1naXQgYS9h cmNoL2FybTY0L2tlcm5lbC9mcHNpbWQuYyBiL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jCmlu ZGV4IDkyYzIzMzEuLjA5ZWUyNjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva2VybmVsL2Zwc2lt ZC5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL2Zwc2ltZC5jCkBAIC0xMjEsNiArMTIxLDggQEAK ICAqLwogc3RydWN0IGZwc2ltZF9sYXN0X3N0YXRlX3N0cnVjdCB7CiAJc3RydWN0IHVzZXJfZnBz aW1kX3N0YXRlICpzdDsKKwl2b2lkICpzdmVfc3RhdGU7CisJdW5zaWduZWQgaW50IHN2ZV92bDsK IH07CiAKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgZnBzaW1kX2xhc3Rfc3RhdGVfc3Ry dWN0LCBmcHNpbWRfbGFzdF9zdGF0ZSk7CkBAIC0yNDEsMTQgKzI0MywxNSBAQCBzdGF0aWMgdm9p ZCB0YXNrX2Zwc2ltZF9sb2FkKHZvaWQpCiAgKi8KIHZvaWQgZnBzaW1kX3NhdmUodm9pZCkKIHsK LQlzdHJ1Y3QgdXNlcl9mcHNpbWRfc3RhdGUgKnN0ID0gX190aGlzX2NwdV9yZWFkKGZwc2ltZF9s YXN0X3N0YXRlLnN0KTsKKwlzdHJ1Y3QgZnBzaW1kX2xhc3Rfc3RhdGVfc3RydWN0IGNvbnN0ICps YXN0ID0KKwkJdGhpc19jcHVfcHRyKCZmcHNpbWRfbGFzdF9zdGF0ZSk7CiAJLyogc2V0IGJ5IGZw c2ltZF9iaW5kX3Rhc2tfdG9fY3B1KCkgb3IgZnBzaW1kX2JpbmRfc3RhdGVfdG9fY3B1KCkgKi8K IAogCVdBUk5fT04oIWluX3NvZnRpcnEoKSAmJiAhaXJxc19kaXNhYmxlZCgpKTsKIAogCWlmICgh dGVzdF90aHJlYWRfZmxhZyhUSUZfRk9SRUlHTl9GUFNUQVRFKSkgewogCQlpZiAoc3lzdGVtX3N1 cHBvcnRzX3N2ZSgpICYmIHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NWRSkpIHsKLQkJCWlmIChXQVJO X09OKHN2ZV9nZXRfdmwoKSAhPSBjdXJyZW50LT50aHJlYWQuc3ZlX3ZsKSkgeworCQkJaWYgKFdB Uk5fT04oc3ZlX2dldF92bCgpICE9IGxhc3QtPnN2ZV92bCkpIHsKIAkJCQkvKgogCQkJCSAqIENh bid0IHNhdmUgdGhlIHVzZXIgcmVncywgc28gY3VycmVudCB3b3VsZAogCQkJCSAqIHJlLWVudGVy IHVzZXIgd2l0aCBjb3JydXB0IHN0YXRlLgpAQCAtMjU4LDkgKzI2MSwxMSBAQCB2b2lkIGZwc2lt ZF9zYXZlKHZvaWQpCiAJCQkJcmV0dXJuOwogCQkJfQogCi0JCQlzdmVfc2F2ZV9zdGF0ZShzdmVf cGZmcigmY3VycmVudC0+dGhyZWFkKSwgJnN0LT5mcHNyKTsKKwkJCXN2ZV9zYXZlX3N0YXRlKChj aGFyICopbGFzdC0+c3ZlX3N0YXRlICsKKwkJCQkJCXN2ZV9mZnJfb2Zmc2V0KGxhc3QtPnN2ZV92 bCksCisJCQkJICAgICAgICZsYXN0LT5zdC0+ZnBzcik7CiAJCX0gZWxzZQotCQkJZnBzaW1kX3Nh dmVfc3RhdGUoc3QpOworCQkJZnBzaW1kX3NhdmVfc3RhdGUobGFzdC0+c3QpOwogCX0KIH0KIApA QCAtMTAzNCw2ICsxMDM5LDggQEAgdm9pZCBmcHNpbWRfYmluZF90YXNrX3RvX2NwdSh2b2lkKQog CQl0aGlzX2NwdV9wdHIoJmZwc2ltZF9sYXN0X3N0YXRlKTsKIAogCWxhc3QtPnN0ID0gJmN1cnJl bnQtPnRocmVhZC51dy5mcHNpbWRfc3RhdGU7CisJbGFzdC0+c3ZlX3N0YXRlID0gY3VycmVudC0+ dGhyZWFkLnN2ZV9zdGF0ZTsKKwlsYXN0LT5zdmVfdmwgPSBjdXJyZW50LT50aHJlYWQuc3ZlX3Zs OwogCWN1cnJlbnQtPnRocmVhZC5mcHNpbWRfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCiAJ aWYgKHN5c3RlbV9zdXBwb3J0c19zdmUoKSkgewpAQCAtMTA0Nyw3ICsxMDU0LDggQEAgdm9pZCBm cHNpbWRfYmluZF90YXNrX3RvX2NwdSh2b2lkKQogCX0KIH0KIAotdm9pZCBmcHNpbWRfYmluZF9z dGF0ZV90b19jcHUoc3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpzdCkKK3ZvaWQgZnBzaW1kX2Jp bmRfc3RhdGVfdG9fY3B1KHN0cnVjdCB1c2VyX2Zwc2ltZF9zdGF0ZSAqc3QsIHZvaWQgKnN2ZV9z dGF0ZSwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBzdmVfdmwpCiB7CiAJc3RydWN0IGZwc2ltZF9s YXN0X3N0YXRlX3N0cnVjdCAqbGFzdCA9CiAJCXRoaXNfY3B1X3B0cigmZnBzaW1kX2xhc3Rfc3Rh dGUpOwpAQCAtMTA1NSw2ICsxMDYzLDggQEAgdm9pZCBmcHNpbWRfYmluZF9zdGF0ZV90b19jcHUo c3RydWN0IHVzZXJfZnBzaW1kX3N0YXRlICpzdCkKIAlXQVJOX09OKCFpbl9zb2Z0aXJxKCkgJiYg IWlycXNfZGlzYWJsZWQoKSk7CiAKIAlsYXN0LT5zdCA9IHN0OworCWxhc3QtPnN2ZV9zdGF0ZSA9 IHN2ZV9zdGF0ZTsKKwlsYXN0LT5zdmVfdmwgPSBzdmVfdmw7CiB9CiAKIC8qCmRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2t2bS9mcHNpbWQuYyBiL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCmluZGV4 IGFhYzc4MDguLjFjZjRmMDIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCisr KyBiL2FyY2gvYXJtNjQva3ZtL2Zwc2ltZC5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxp bnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkX2luZm8uaD4KICNpbmNsdWRlIDxs aW51eC9rdm1faG9zdC5oPgorI2luY2x1ZGUgPGFzbS9mcHNpbWQuaD4KICNpbmNsdWRlIDxhc20v a3ZtX2FzbS5oPgogI2luY2x1ZGUgPGFzbS9rdm1faG9zdC5oPgogI2luY2x1ZGUgPGFzbS9rdm1f bW11Lmg+CkBAIC04NSw3ICs4Niw5IEBAIHZvaWQga3ZtX2FyY2hfdmNwdV9jdHhzeW5jX2ZwKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7CiAK IAlpZiAodmNwdS0+YXJjaC5mbGFncyAmIEtWTV9BUk02NF9GUF9FTkFCTEVEKSB7Ci0JCWZwc2lt ZF9iaW5kX3N0YXRlX3RvX2NwdSgmdmNwdS0+YXJjaC5jdHh0LmdwX3JlZ3MuZnBfcmVncyk7CisJ CWZwc2ltZF9iaW5kX3N0YXRlX3RvX2NwdSgmdmNwdS0+YXJjaC5jdHh0LmdwX3JlZ3MuZnBfcmVn cywKKwkJCQkJIE5VTEwsIFNWRV9WTF9NSU4pOworCiAJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl9G T1JFSUdOX0ZQU1RBVEUpOwogCQljbGVhcl90aHJlYWRfZmxhZyhUSUZfU1ZFKTsKIAl9Ci0tIAoy LjEuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Ka3Zt YXJtIG1haWxpbmcgbGlzdAprdm1hcm1AbGlzdHMuY3MuY29sdW1iaWEuZWR1Cmh0dHBzOi8vbGlz dHMuY3MuY29sdW1iaWEuZWR1L21haWxtYW4vbGlzdGluZm8va3ZtYXJtCg==