From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 22/28] x86/vmsi: Hook delivering remapping format msi to guest and handling eoi Date: Fri, 17 Nov 2017 14:22:29 +0800 Message-ID: <1510899755-40237-23-git-send-email-chao.gao@intel.com> References: <1510899755-40237-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1510899755-40237-1-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , Kevin Tian , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Ian Jackson , Tim Deegan , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org V2hlbiBkZWxpdmVyaW5nIGd1ZXN0IG1zaSwgZmlyc3RseSwgdGhlIGZvcm1hdCBvZiB0aGUgbXNp IGlzIGRldGVybWluZWQKYnkgdGhlICdjaGVja19pcnFfcmVtbWFwcGluZycgbWV0aG9kIG9mIHZp b21tdS4gVGhlbiwgbXNpIG9mCm5vbi1yZW1hcHBpbmcgZm9ybWF0IGlzIGRlbGl2ZXJlZCBhcyBu b3JtYWwgYW5kIHJlbWFwcGluZyBmb3JtYXQgbXNpIGlzCmhhbmRsZWQgYnkgdmlvbW11LiBXaGVu IGhhbmRsaW5nIGVvaSwgdGhlIGludGVycnVwdCBhdHRyaWJ1dGVzICh2ZWN0b3IsCmFmZmluaXR5 KSBhcmUgdXNlZCB0byBzZWFyY2ggdGhlIHBoeXNpY2FsIGlycS4gSXQgaXMgY2xlYXIgdGhhdCBm b3IKcmVtYXBwaW5nIGZvcm1hdCBtc2ksIHRoZSBpbnRlcnJ1cHQgYXR0cmlidXRzIHNob3VsZCBi ZSBkZWNvZGVzIGZyb20KSVJURS4KClNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFvLmdhb0Bp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IExhbiBUaWFueXUgPHRpYW55dS5sYW5AaW50ZWwuY29t PgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vaXJxLmMgICAgICAgfCAgNiArKysrKysKIHhlbi9hcmNo L3g4Ni9odm0vdm1zaS5jICAgICAgfCAzMyArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMgfCAzNSArKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAyMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jIGIveGVuL2Fy Y2gveDg2L2h2bS9pcnEuYwppbmRleCBlNDI1ZGY5Li5iNTYxNDgwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMKQEAgLTIzLDYg KzIzLDcgQEAKICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KICNpbmNsdWRlIDx4ZW4vaXJxLmg+CiAj aW5jbHVkZSA8eGVuL2tleWhhbmRsZXIuaD4KKyNpbmNsdWRlIDx4ZW4vdmlvbW11Lmg+CiAjaW5j bHVkZSA8YXNtL2h2bS9kb21haW4uaD4KICNpbmNsdWRlIDxhc20vaHZtL3N1cHBvcnQuaD4KICNp bmNsdWRlIDxhc20vbXNpLmg+CkBAIC0zMzksNiArMzQwLDExIEBAIGludCBodm1faW5qZWN0X21z aShzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBkYXRhKQogICAgIHVp bnQ4X3QgdHJpZ19tb2RlID0gKGRhdGEgJiBNU0lfREFUQV9UUklHR0VSX01BU0spCiAgICAgICAg ID4+IE1TSV9EQVRBX1RSSUdHRVJfU0hJRlQ7CiAgICAgdWludDhfdCB2ZWN0b3IgPSBkYXRhICYg TVNJX0RBVEFfVkVDVE9SX01BU0s7CisgICAgc3RydWN0IGFyY2hfaXJxX3JlbWFwcGluZ19yZXF1 ZXN0IHJlcXVlc3Q7CisKKyAgICBpcnFfcmVxdWVzdF9tc2lfZmlsbCgmcmVxdWVzdCwgYWRkciwg ZGF0YSk7CisgICAgaWYgKCB2aW9tbXVfY2hlY2tfaXJxX3JlbWFwcGluZyhkLCAmcmVxdWVzdCkg KQorICAgICAgICByZXR1cm4gdmlvbW11X2hhbmRsZV9pcnFfcmVxdWVzdChkLCAmcmVxdWVzdCk7 CiAKICAgICBpZiAoICF2ZWN0b3IgKQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o dm0vdm1zaS5jIGIveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKaW5kZXggNWVkYjBlNy4uOWRjNTYz MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS92bXNpLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNp bmNsdWRlIDx4ZW4vc2NoZWQuaD4KICNpbmNsdWRlIDx4ZW4vaXJxLmg+CisjaW5jbHVkZSA8eGVu L3Zpb21tdS5oPgogI2luY2x1ZGUgPHB1YmxpYy9odm0vaW9yZXEuaD4KICNpbmNsdWRlIDxhc20v aHZtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS92cGljLmg+CkBAIC0xMDEsMjEgKzEwMiwyOSBA QCBpbnQgdm1zaV9kZWxpdmVyKAogCiB2b2lkIHZtc2lfZGVsaXZlcl9waXJxKHN0cnVjdCBkb21h aW4gKmQsIGNvbnN0IHN0cnVjdCBodm1fcGlycV9kcGNpICpwaXJxX2RwY2kpCiB7Ci0gICAgdWlu dDhfdCB2ZWN0b3IgPSBwaXJxX2RwY2ktPmdtc2kuZGF0YSAmIE1TSV9EQVRBX1ZFQ1RPUl9NQVNL OwotICAgIHVpbnQ4X3QgZGVzdCA9IE1BU0tfRVhUUihwaXJxX2RwY2ktPmdtc2kuYWRkciwgTVNJ X0FERFJfREVTVF9JRF9NQVNLKTsKLSAgICBib29sIGRlc3RfbW9kZSA9IHBpcnFfZHBjaS0+Z21z aS5hZGRyICYgTVNJX0FERFJfREVTVE1PREVfTUFTSzsKLSAgICB1aW50OF90IGRlbGl2ZXJ5X21v ZGUgPSBNQVNLX0VYVFIocGlycV9kcGNpLT5nbXNpLmRhdGEsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1TSV9EQVRBX0RFTElWRVJZX01PREVfTUFTSyk7Ci0gICAgYm9v bCB0cmlnX21vZGUgPSBwaXJxX2RwY2ktPmdtc2kuZGF0YSAmIE1TSV9EQVRBX1RSSUdHRVJfTUFT SzsKLQotICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9JT0FQSUMsCi0gICAgICAgICAgICAgICAg Im1zaTogZGVzdD0leCBkZXN0X21vZGU9JXggZGVsaXZlcnlfbW9kZT0leCAiCi0gICAgICAgICAg ICAgICAgInZlY3Rvcj0leCB0cmlnX21vZGU9JXhcbiIsCi0gICAgICAgICAgICAgICAgZGVzdCwg ZGVzdF9tb2RlLCBkZWxpdmVyeV9tb2RlLCB2ZWN0b3IsIHRyaWdfbW9kZSk7CisgICAgc3RydWN0 IGFyY2hfaXJxX3JlbWFwcGluZ19yZXF1ZXN0IHJlcXVlc3Q7CiAKICAgICBBU1NFUlQocGlycV9k cGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9HVUVTVF9NU0kpOwogCi0gICAgdm1zaV9kZWxpdmVy KGQsIHZlY3RvciwgZGVzdCwgZGVzdF9tb2RlLCBkZWxpdmVyeV9tb2RlLCB0cmlnX21vZGUpOwor ICAgIGlycV9yZXF1ZXN0X21zaV9maWxsKCZyZXF1ZXN0LCBwaXJxX2RwY2ktPmdtc2kuYWRkciwg cGlycV9kcGNpLT5nbXNpLmRhdGEpOworICAgIGlmICggdmlvbW11X2NoZWNrX2lycV9yZW1hcHBp bmcoZCwgJnJlcXVlc3QpICkKKyAgICAgICAgdmlvbW11X2hhbmRsZV9pcnFfcmVxdWVzdChkLCAm cmVxdWVzdCk7CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgdWludDhfdCB2ZWN0b3IgPSBwaXJx X2RwY2ktPmdtc2kuZGF0YSAmIE1TSV9EQVRBX1ZFQ1RPUl9NQVNLOworICAgICAgICB1aW50OF90 IGRlc3QgPSBNQVNLX0VYVFIocGlycV9kcGNpLT5nbXNpLmFkZHIsIE1TSV9BRERSX0RFU1RfSURf TUFTSyk7CisgICAgICAgIGJvb2wgZGVzdF9tb2RlID0gcGlycV9kcGNpLT5nbXNpLmFkZHIgJiBN U0lfQUREUl9ERVNUTU9ERV9NQVNLOworICAgICAgICB1aW50OF90IGRlbGl2ZXJ5X21vZGUgPSBN QVNLX0VYVFIocGlycV9kcGNpLT5nbXNpLmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNU0lfREFUQV9ERUxJVkVSWV9NT0RFX01BU0spOworICAgICAgICBi b29sIHRyaWdfbW9kZSA9IHBpcnFfZHBjaS0+Z21zaS5kYXRhICYgTVNJX0RBVEFfVFJJR0dFUl9N QVNLOworCisgICAgICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9JT0FQSUMsCisgICAgICAgICAg ICAgICAgICAgICJtc2k6IGRlc3Q9JXggZGVzdF9tb2RlPSV4IGRlbGl2ZXJ5X21vZGU9JXggIgor ICAgICAgICAgICAgICAgICAgICAidmVjdG9yPSV4IHRyaWdfbW9kZT0leFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgZGVzdCwgZGVzdF9tb2RlLCBkZWxpdmVyeV9tb2RlLCB2ZWN0b3IsIHRyaWdf bW9kZSk7CisKKyAgICAgICAgdm1zaV9kZWxpdmVyKGQsIHZlY3RvciwgZGVzdCwgZGVzdF9tb2Rl LCBkZWxpdmVyeV9tb2RlLCB0cmlnX21vZGUpOworICAgIH0KIH0KIAogLyogUmV0dXJuIHZhbHVl LCAtMSA6IG11bHRpLWRlc3RzLCBub24tbmVnYXRpdmUgdmFsdWU6IGRlc3RfdmNwdV9pZCAqLwpk aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvLmMKaW5kZXggOTE5OGVmNS4uMzRhM2NmMSAxMDA2NDQKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW8uYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5j CkBAIC04NzIsMTYgKzg3MiwzNSBAQCBzdGF0aWMgdm9pZCBfX21zaV9waXJxX2VvaShzdHJ1Y3Qg aHZtX3BpcnFfZHBjaSAqcGlycV9kcGNpKQogc3RhdGljIGludCBfaHZtX2RwY2lfbXNpX2VvaShz dHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZt X3BpcnFfZHBjaSAqcGlycV9kcGNpLCB2b2lkICphcmcpCiB7Ci0gICAgaW50IHZlY3RvciA9IChs b25nKWFyZzsKLQotICAgIGlmICggKHBpcnFfZHBjaS0+ZmxhZ3MgJiBIVk1fSVJRX0RQQ0lfTUFD SF9NU0kpICYmCi0gICAgICAgICAocGlycV9kcGNpLT5nbXNpLmd2ZWMgPT0gdmVjdG9yKSApCisg ICAgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX01BQ0hfTVNJICkKICAgICB7 Ci0gICAgICAgIHVpbnQzMl90IGRlc3QgPSBNQVNLX0VYVFIocGlycV9kcGNpLT5nbXNpLmFkZHIs IE1TSV9BRERSX0RFU1RfSURfTUFTSyk7Ci0gICAgICAgIGJvb2wgZGVzdF9tb2RlID0gcGlycV9k cGNpLT5nbXNpLmFkZHIgJiBNU0lfQUREUl9ERVNUTU9ERV9NQVNLOworICAgICAgICB1aW50OF90 IHZlY3RvciwgdmVjdG9yX3RhcmdldCA9IChsb25nKWFyZzsKKyAgICAgICAgdWludDMyX3QgZGVz dDsKKyAgICAgICAgYm9vbCBkbTsKKyAgICAgICAgc3RydWN0IGFyY2hfaXJxX3JlbWFwcGluZ19y ZXF1ZXN0IHJlcXVlc3Q7CisKKyAgICAgICAgaXJxX3JlcXVlc3RfbXNpX2ZpbGwoJnJlcXVlc3Qs IHBpcnFfZHBjaS0+Z21zaS5hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXJx X2RwY2ktPmdtc2kuZGF0YSk7CisgICAgICAgIGlmICggdmlvbW11X2NoZWNrX2lycV9yZW1hcHBp bmcoZCwgJnJlcXVlc3QpICkKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IGFyY2hfaXJx X3JlbWFwcGluZ19pbmZvIGluZm87CisKKyAgICAgICAgICAgIGlmICggdmlvbW11X2dldF9pcnFf aW5mbyhkLCAmcmVxdWVzdCwgJmluZm8pICkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKwor ICAgICAgICAgICAgdmVjdG9yID0gaW5mby52ZWN0b3I7CisgICAgICAgICAgICBkZXN0ID0gaW5m by5kZXN0OworICAgICAgICAgICAgZG0gPSBpbmZvLmRlc3RfbW9kZTsKKyAgICAgICAgfQorICAg ICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHZlY3RvciA9IHBpcnFfZHBjaS0+Z21z aS5kYXRhICYgTVNJX0RBVEFfVkVDVE9SX01BU0s7CisgICAgICAgICAgICBkZXN0ID0gTUFTS19F WFRSKHBpcnFfZHBjaS0+Z21zaS5hZGRyLCBNU0lfQUREUl9ERVNUX0lEX01BU0spOworICAgICAg ICAgICAgZG0gPSBwaXJxX2RwY2ktPmdtc2kuYWRkciAmIE1TSV9BRERSX0RFU1RNT0RFX01BU0s7 CisgICAgICAgIH0KIAotICAgICAgICBpZiAoIHZsYXBpY19tYXRjaF9kZXN0KHZjcHVfdmxhcGlj KGN1cnJlbnQpLCBOVUxMLCAwLCBkZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRlc3RfbW9kZSkgKQorICAgICAgICBpZiAoIHZlY3RvciA9PSB2ZWN0b3JfdGFyZ2V0ICYmCisg ICAgICAgICAgICAgdmxhcGljX21hdGNoX2Rlc3QodmNwdV92bGFwaWMoY3VycmVudCksIE5VTEws IDAsIGRlc3QsIGRtKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIF9fbXNpX3BpcnFfZW9pKHBp cnFfZHBjaSk7CiAgICAgICAgICAgICByZXR1cm4gMTsKLS0gCjEuOC4zLjEKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK