From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kyle Huey Subject: Re: [PATCH v3 2/2] x86/Intel: virtualize support for cpuid faulting Date: Sun, 23 Oct 2016 21:18:10 -0700 Message-ID: References: <20161014194736.5913-1-khuey@kylehuey.com> <20161014194736.5913-3-khuey@kylehuey.com> <20161017123227.GA23651@citrix.com> <2cc2636e-f8b0-f90b-a460-9c664e1a748a@citrix.com> <69f84011-05db-20ee-39d5-217416461ddc@citrix.com> <10bd318c-17b6-9643-2821-33aaf6a0fe56@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Boris Ostrovsky Cc: Kevin Tian , Wei Liu , Jun Nakajima , Andrew Cooper , xen-devel@lists.xen.org, Jan Beulich , Robert O'Callahan List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBPY3QgMjEsIDIwMTYgYXQgODo1MiBBTSwgS3lsZSBIdWV5IDxtZUBreWxlaHVleS5j b20+IHdyb3RlOgo+IE9uIFRodSwgT2N0IDIwLCAyMDE2IGF0IDc6NDAgQU0sIEJvcmlzIE9zdHJv dnNreQo+IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4gd3JvdGU6Cj4+IE9uIDEwLzIwLzIw MTYgMTA6MTEgQU0sIEFuZHJldyBDb29wZXIgd3JvdGU6Cj4+PiBPbiAyMC8xMC8xNiAxNDo1NSwg S3lsZSBIdWV5IHdyb3RlOgo+Pj4+Pj4gVGhhdCBzYWlkLCByciBjdXJyZW50bHkgZG9lcyBub3Qg d29yayBpbiBYZW4gZ3Vlc3RzIGR1ZSB0byBzb21lIFBNVQo+Pj4+Pj4gaXNzdWVzIHRoYXQgd2Ug aGF2ZW4ndCB0cmFja2VkIGRvd24geWV0Lgo+Pj4+PiBJcyB0aGlzIFJSIHRyeWluZyB0byB1c2Ug dlBNVSBhbmQgaXQgbm90IGZ1bmN0aW9uaW5nLCBvciBub3QKPj4+Pj4gc3BlY2lmaWNhbGx5IHRy eWluZyB0byB1c2UgUE1VIGZhY2lsaXRpZXMgYW5kIGdldHRpbmcgc3R1Y2sgYW55d2F5Pwo+Pj4+ IFRoZSBsYXR0ZXIuICByciByZWxpZXMgb24gdGhlIHZhbHVlcyByZXR1cm5lZCBieSB0aGUgUE1V ICh0aGUgcmV0aXJlZAo+Pj4+IGNvbmRpdGlvbmFsIGJyYW5jaGVzIGNvdW50ZXIgaW4gcGFydGlj dWxhcikgYmVpbmcgZXhhY3RseSB0aGUgc2FtZQo+Pj4+IGR1cmluZyB0aGUgcmVjb3JkaW5nIGFu ZCByZXBsYXkgcGhhc2VzLiAgVGhpcyBpcyB0cnVlIHdoZW4gcnVubmluZyBvbgo+Pj4+IGJhcmUg bWV0YWwsIGFuZCB3aGVuIHJ1bm5pbmcgaW5zaWRlIGEgS1ZNIGd1ZXN0LCBidXQgd2hlbiBydW5u aW5nIGluIGEKPj4+PiBYZW4gSFZNIGd1ZXN0IHdlIHNlZSB2YWx1ZXMgdGhhdCBhcmUgb2ZmIGJ5 IGEgYnJhbmNoIG9yIHR3byBvbiBhIHNtYWxsCj4+Pj4gZnJhY3Rpb24gb2Ygb3VyIHRlc3RzLiAg U2luY2UgaXQgd29ya3MgaW4gS1ZNIEkgc3VzcGVjdCB0aGlzIGlzIHNvbWUKPj4+PiBzb3J0IG9m IGlzc3VlIHdpdGggaG93IFhlbiBtdWx0aXBsZXhlcyB0aGUgcmVhbCBQTVUgYW5kIGV2ZW50cyBh cmUKPj4+PiAibGVha2luZyIgYmV0d2VlbiBndWVzdHMgKG9yIHBlcmhhcHMgZnJvbSBYZW4gaXRz ZWxmLCB0aG91Z2ggSSBkb24ndAo+Pj4+IHRoaW5rIHRoZSBYZW4ga2VybmVsIGV4ZWN1dGVzIGFu eSByaW5nIDMgY29kZSkuICBFdmVuIGlmIHRoYXQncwo+Pj4+IGNvcnJlY3Qgd2UncmUgYSBsb25n IHdheSBmcm9tIHRyYWNraW5nIGl0IGRvd24gYW5kIHBhdGNoaW5nIGl0IHRob3VnaC4KPj4+IEht bS4gIFRoYXQgaXMgdW5mb3J0dW5hdGUsIGFuZCBkb2VzIHBvaW50IHRvd2FyZHMgYSBidWcgaW4g WGVuLiAgQXJlCj4+PiB0aGVzZSB0ZXN0cyB3aGljaCBub3RpY2UgdGhlIHByb2JsZW0gZWFzeSB0 byBydW4/Cj4+Pgo+Pj4gQm9yaXMgKENDJ2QpIGlzIHRoZSBtYWludGFpbmVyIG9mIHRoYXQgY29k ZS4gIEl0IGhhcyB1bmRlcmdvbmUgcXVpdGUgYQo+Pj4gZmV3IGNoYW5nZXMgcmVjZW50bHkuCj4+ Cj4+IEkgYW0gYWN0dWFsbHkgbm90IHRoZSBtYWludGFpbmVyLCBJIGp1c3QgYnJlYWsgdGhpcyBj b2RlIG1vcmUgb2Z0ZW4gdGhhbgo+PiBvdGhlcnMuCj4+Cj4+IEJ1dCB5ZXMsIGhhdmluZyBhIHRl c3QgY2FzZSB3b3VsZCBtYWtlIGl0IG11Y2ggZWFzaWVyIHRvIHVuZGVyc3RhbmQgd2hhdAo+PiBh bmQgd2h5IGlzIG5vdCB3b3JraW5nLgo+Pgo+PiBXb3VsZCBzb21ldGhpbmcgbGlrZQo+Pgo+PiAg ICAgd3Jtc3IoUEVSRkNUUiwwKTsKPj4gICAgIHdybXNyKEVWTlRTRUwsIFhYWCk7IC8vZW5hYmxl IGNvdW50ZXIKPj4gICAgIC8vIGRvIHNvbWV0aGluZyBzaW1wbGUsIHdpdGggYnJhbmNoZXMKPj4g ICAgIHdybXNyKEVWVFNFTCxZWVkpOyAvLyBkaXNhYmxlIGNvdW50ZXIKPj4KPj4gZGVtb25zdHJh dGUgdGhlIHByb2JsZW0/IChJIGFzc3VtZSB3ZSBhcmUgdGFsa2luZyBhYm91dCBIVk0gZ3Vlc3Qp Cj4+Cj4+IC1ib3Jpcwo+Pgo+Cj4gVGhhdCBpcyBhIGdvb2QgcXVlc3Rpb24uICBJJ2xsIHNlZSBp ZiBJIGNhbiByZWR1Y2UgdGhlIHByb2JsZW0gZG93bgo+IGZyb20gInJ1biBMaW51eCBhbmQgcnVu IG91ciB0ZXN0cyBpbnNpZGUgaXQiLgoKVGhlIGFub21hbGllcyB3ZSBzZWUgYXBwZWFyIHRvIGJl IHJlbGF0ZWQgdG8sIG9yIGF0IGxlYXN0IHRyaWdnZXJhYmxlCmJ5LCB0aGUgcGVyZm9ybWFuY2Ug bW9uaXRvcmluZyBpbnRlcnJ1cHQuICBUaGUgZm9sbG93aW5nIHByb2dyYW0gcnVucwphIGxvb3Ag b2Ygcm91Z2hseSAyXjI1IGNvbmRpdGlvbmFsIGJyYW5jaGVzLiAgSXQgdGFrZXMgb25lIGFyZ3Vt ZW50LAp0aGUgbnVtYmVyIG9mIGNvbmRpdGlvbmFsIGJyYW5jaGVzIHRvIHByb2dyYW0gdGhlIFBN SSB0byB0cmlnZ2VyIG9uLgpUaGUgZGVmYXVsdCBpcyA1MCwwMDAsIGFuZCBpZiB5b3UgcnVuIHRo ZSBwcm9ncmFtIHdpdGggdGhhdCBpdCdsbApwcm9kdWNlIHRoZSBzYW1lIHZhbHVlIGV2ZXJ5IHRp bWUuICBJZiB5b3UgZHJvcCBpdCB0byA1MDAwIG9yIHNvCnlvdSdsbCBwcm9iYWJseSBzZWUgb2Nj YXNpb25hbCBvZmYtYnktb25lIGRpc2NyZXBhbmNpZXMuICBJZiB5b3UgZHJvcAppdCB0byA1MDAg dGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgdmFsdWVzIGZsdWN0dWF0ZSB3aWxkbHkuCgpJJ20gbm90 IHlldCBzdXJlIGlmIHRoaXMgaXMgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gdGhlIFBNSSwgb3Ig aWYgaXQKY2FuIGJlIGNhdXNlZCBieSBhbnkgaW50ZXJydXB0IGFuZCBpdCdzIG9ubHkgaG93IGZy ZXF1ZW50bHkgdGhlCmludGVycnVwdHMgb2NjdXIgdGhhdCBtYXR0ZXJzLgoKLSBLeWxlCgojZGVm aW5lIF9HTlVfU09VUkNFIDEKCiNpbmNsdWRlIDxhc3NlcnQuaD4KI2luY2x1ZGUgPGZjbnRsLmg+ CiNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CiNpbmNsdWRlIDxzaWduYWwuaD4KI2luY2x1 ZGUgPHN0ZGludC5oPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5j bHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KI2luY2x1ZGUgPHN5cy9zeXNj YWxsLmg+CiNpbmNsdWRlIDx1bmlzdGQuaD4KCnN0YXRpYyBzdHJ1Y3QgcGVyZl9ldmVudF9hdHRy IHJjYl9hdHRyOwpzdGF0aWMgdWludDY0X3QgcGVyaW9kOwpzdGF0aWMgaW50IGZkOwoKdm9pZCBj b3VudGVyX29uKHVpbnQ2NF90IHRpY2tzKQp7CiAgaW50IHJldCA9IGlvY3RsKGZkLCBQRVJGX0VW RU5UX0lPQ19SRVNFVCwgMCk7CiAgYXNzZXJ0KCFyZXQpOwogIHJldCA9IGlvY3RsKGZkLCBQRVJG X0VWRU5UX0lPQ19QRVJJT0QsICZ0aWNrcyk7CiAgYXNzZXJ0KCFyZXQpOwogIHJldCA9IGlvY3Rs KGZkLCBQRVJGX0VWRU5UX0lPQ19FTkFCTEUsIDEpOwogIGFzc2VydCghcmV0KTsKfQoKdm9pZCBj b3VudGVyX29mZigpCnsKICBpbnQgcmV0ID0gaW9jdGwoZmQsIFBFUkZfRVZFTlRfSU9DX0VOQUJM RSwgMCk7CiAgYXNzZXJ0KCFyZXQpOwp9CgppbnQ2NF90IHJlYWRfY291bnRlcigpCnsKICBpbnQ2 NF90IHZhbDsKICBzc2l6ZV90IG5yZWFkID0gcmVhZChmZCwgJnZhbCwgc2l6ZW9mKHZhbCkpOwog IGFzc2VydChucmVhZCA9PSBzaXplb2YodmFsKSk7CiAgcmV0dXJuIHZhbDsKfQoKdm9pZCBkb190 ZXN0KCkKewogIGludDY0X3QgY291bnRzOwogIGludCBpLCBkdW1teTsKCiAgY291bnRlcl9vbihw ZXJpb2QpOwogIGZvciAoaSA9IDA7IGkgPCAoMSA8PCAyNSk7IGkrKykgewogICAgZHVtbXkgKz0g aSAlICgxIDw8IDEwKTsKICAgIGR1bW15ICs9IGkgJSAoNzkgKiAoMSA8PCAxMCkpOwogIH0KCiAg Y291bnRlcl9vZmYoKTsKICBjb3VudHMgPSByZWFkX2NvdW50ZXIoKTsKICBwcmludGYoIkNvdW50 ZWQgJWxkIGNvbmRpdGlvbmFsIGJyYW5jaGVzXG4iLCBjb3VudHMpOwp9CgppbnQgbWFpbihpbnQg YXJnYywgY29uc3QgY2hhciogYXJndltdKQp7CiAgbWVtc2V0KCZyY2JfYXR0ciwgMCwgc2l6ZW9m KHJjYl9hdHRyKSk7CiAgcmNiX2F0dHIuc2l6ZSA9IHNpemVvZihyY2JfYXR0cik7CiAgcmNiX2F0 dHIudHlwZSA9IFBFUkZfVFlQRV9SQVc7CiAgLyogSW50ZWwgcmV0aXJlZCBjb25kaXRpb25hbCBi cmFuY2hlcyBjb3VudGVyLCByaW5nIDMgb25seSAqLwogIHJjYl9hdHRyLmNvbmZpZyA9IDB4NTEw MWM0OwogIHJjYl9hdHRyLmV4Y2x1ZGVfa2VybmVsID0gMTsKICByY2JfYXR0ci5leGNsdWRlX2d1 ZXN0ID0gMTsKICAvKiBXZSdsbCBjaGFuZ2UgdGhpcyBsYXRlciAqLwogIHJjYl9hdHRyLnNhbXBs ZV9wZXJpb2QgPSAweGZmZmZmZmZmOwoKICAvKiBzdGFydCB0aGUgY291bnRlciAqLwogIGZkID0g c3lzY2FsbChfX05SX3BlcmZfZXZlbnRfb3BlbiwgJnJjYl9hdHRyLCAwLCAtMSwgLTEsIDApOwog IGlmIChmZCA8IDApIHsKICAgIHByaW50ZigiRmFpbGVkIHRvIGluaXRpYWxpemUgY291bnRlclxu Iik7CiAgICByZXR1cm4gLTE7CiAgfQoKICBzaWduYWwoU0lHQUxSTSwgU0lHX0lHTik7CgogIGlm IChmY250bChmZCwgRl9TRVRGTCwgT19BU1lOQykgfHwgZmNudGwoZmQsIEZfU0VUU0lHLCBTSUdB TFJNKSkgewogICAgcHJpbnRmKCJGYWlsZWQgdG8gbWFrZSBjb3VudGVyIGFzeW5jXG4iKTsKICAg IHJldHVybiAtMTsKICB9CgogIGNvdW50ZXJfb2ZmKCk7CgogIHBlcmlvZCA9IDUwMDAwOwogIGlm IChhcmdjID4gMSkgewogICAgc3NjYW5mKGFyZ3ZbMV0sICIlbGQiLCAmcGVyaW9kKTsKICB9Cgog IHByaW50ZigiUGVyaW9kIGlzICVsZFxuIiwgcGVyaW9kKTsKCiAgZG9fdGVzdCgpOwoKICByZXR1 cm4gMDsKfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==