From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Glauber de Oliveira Costa" Subject: [RFC] Paravirt timer for KVM Date: Fri, 12 Oct 2007 13:08:29 -0300 Message-ID: <5d6222a80710120908s6b1f5845head84e7b7a463cd1@mail.gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_5342_19882162.1192205309265" To: kvm-devel , "Avi Kivity" , anthony-rdkfGonbjUSkNkDKm+mE6A@public.gmane.org, "Jeremy Fitzhardinge" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org ------=_Part_5342_19882162.1192205309265 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, Attached is a first draft to a paravirt implementation for a timer to KVM. It is inspired in anthony's last patch about it, but not that much based on it. I'm not using hypercalls to get the current time, but rather, registering an address that will get timer updates once in a while. Also, it includes a clockevent oneshot implementation (which is the very thing of this patch), that will allow us interest things like dynticks. It's still not yet working on SMP, and I'm currently not sure why (ok, ok, if you actually read the patch, it will become obvious the why: it only delivers interrupt for vector 0x20, but I'm further with it, this patch is just a snapshot) My next TODOs with it are: * Get SMP working * Try something for stolen time, as jeremy's last suggestion for anthony's patch * Measure the time it takes for a hypercall, and subtract this time for calculating the expiry time for the timer event. * Testing and fixing bugs: I'm sure they exist! Meanwhile, all your suggestions are welcome. -- Glauber de Oliveira Costa. "Free as in Freedom" http://glommer.net "The less confident you are, the more serious you have to act." ------=_Part_5342_19882162.1192205309265 Content-Type: text/x-patch; name="clock.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="clock.patch" X-Attachment-Id: f_f7ow8s22 ZGlmZiAtLWdpdCBhL2FyY2gvaTM4Ni9LY29uZmlnIGIvYXJjaC9pMzg2L0tjb25maWcKaW5kZXgg OTdiNjRkNy4uNjIyZTRkMiAxMDA2NDQKLS0tIGEvYXJjaC9pMzg2L0tjb25maWcKKysrIGIvYXJj aC9pMzg2L0tjb25maWcKQEAgLTIzNiw2ICsyMzYsMTUgQEAgY29uZmlnIFZNSQogCSAgKGl0IGNv dWxkIGJlIHVzZWQgYnkgb3RoZXIgaHlwZXJ2aXNvcnMgaW4gdGhlb3J5IHRvbywgYnV0IGlzIG5v dAogCSAgYXQgdGhlIG1vbWVudCksIGJ5IGxpbmtpbmcgdGhlIGtlcm5lbCB0byBhIEdQTC1lZCBS T00gbW9kdWxlCiAJICBwcm92aWRlZCBieSB0aGUgaHlwZXJ2aXNvci4KK2NvbmZpZyBLVk1fQ0xP Q0sKKwlib29sICJLVk0gcGFyYXZpcnR1YWxpemVkIGNsb2NrIgorCWRlcGVuZHMgb24gUEFSQVZJ UlQgJiYgR0VORVJJQ19DTE9DS0VWRU5UUworCWhlbHAKKwkgIFR1cm5pbmcgb24gdGhpcyBvcHRp b24gd2lsbCBhbGxvdyB5b3UgdG8gcnVuIGEgcGFyYXZpcnR1YWxpemVkIGNsb2NrCisJICB3aGVu IHJ1bm5pbmcgb3ZlciB0aGUgS1ZNIGh5cGVydmlzb3IuIEluc3RlYWQgb2YgcmVseWluZyBvbiBh IFBJVAorCSAgKG9yIHByb2JhYmx5IG90aGVyKSBlbXVsYXRpb24gYnkgdGhlIHVuZGVybHlpbmcg ZGV2aWNlIG1vZGVsLCB0aGUgaG9zdAorCSAgcHJvdmlkZXMgdGhlIGd1ZXN0IHdpdGggdGltaW5n IGluZnJhc3RydWN0dXJlLCBhcyB0aW1lIG9mIGRheSwgYW5kCisJICB0aW1lciBleHBpcmF0aW9u LgogCiBjb25maWcgQUNQSV9TUkFUCiAJYm9vbApkaWZmIC0tZ2l0IGEvYXJjaC9pMzg2L2tlcm5l bC9NYWtlZmlsZSBiL2FyY2gvaTM4Ni9rZXJuZWwvTWFrZWZpbGUKaW5kZXggOWQzM2IwMC4uOTBj NWRjNCAxMDA2NDQKLS0tIGEvYXJjaC9pMzg2L2tlcm5lbC9NYWtlZmlsZQorKysgYi9hcmNoL2kz ODYva2VybmVsL01ha2VmaWxlCkBAIC00Miw2ICs0Miw3IEBAIG9iai0kKENPTkZJR19LOF9OQikJ CSs9IGs4Lm8KIG9iai0kKENPTkZJR19NR0VPREVfTFgpCQkrPSBnZW9kZS5vCiAKIG9iai0kKENP TkZJR19WTUkpCQkrPSB2bWkubyB2bWljbG9jay5vCitvYmotJChDT05GSUdfS1ZNX0NMT0NLKQkJ Kz0ga3ZtY2xvY2subwogb2JqLSQoQ09ORklHX1BBUkFWSVJUKQkJKz0gcGFyYXZpcnQubwogb2Jq LXkJCQkJKz0gcGNzcGVha2VyLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9pMzg2L2tlcm5lbC9rdm1j bG9jay5jIGIvYXJjaC9pMzg2L2tlcm5lbC9rdm1jbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjhjNGRmNWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2kzODYva2Vy bmVsL2t2bWNsb2NrLmMKQEAgLTAsMCArMSwyMjIgQEAKKyNpbmNsdWRlIDxsaW51eC9jbG9ja3Nv dXJjZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsb2NrY2hpcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9p bnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9rdm1fcGFyYS5oPgorI2luY2x1ZGUgPGFzbS9h cmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2k4MjUzLmg+CisKKyNpbmNsdWRlIDxtYWNoX2lw aS5oPgorI2luY2x1ZGUgPGlycV92ZWN0b3JzLmg+CisKKyNkZWZpbmUgS1ZNX1NDQUxFIDIyCisK K3N0YXRpYyBpbnQgbm9fa3ZtY2xvY2sgPSAwOworZXh0ZXJuIHN0cnVjdCBjbG9ja19ldmVudF9k ZXZpY2UgKmdsb2JhbF9jbG9ja19ldmVudDsKKworc3RhdGljIGludCBwYXJzZV9ub19rdm1jbG9j ayhjaGFyICphcmcpCit7CisJbm9fa3ZtY2xvY2sgPSAxOworCXJldHVybiAwOworfQorZWFybHlf cGFyYW0oIm5vLWt2bWNsb2NrIiwgcGFyc2Vfbm9fa3ZtY2xvY2spOworCisvKiBUaGUgaHlwZXJ2 aXNvciB3aWxsIHB1dCBpbmZvcm1hdGlvbiBhYm91dCB0aW1lIHBlcmlvZGljYWxseSBoZXJlICov CitzdHJ1Y3Qga3ZtX2h2X2Nsb2NrIGh2X2Nsb2NrOworCisvKgorICogVGhlIHdhbGxjbG9jayBp cyB0aGUgdGltZSBvZiBkYXkgd2hlbiB3ZSBib290ZWQuIFNpbmNlIHRoZW4sIHNvbWUgdGltZSBt YXkKKyAqIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgaHlwZXJ2aXNvciB3cm90ZSB0aGUgZGF0YS4g U28gd2UgdHJ5IHRvIGFjY291bnQgZm9yCisgKiB0aGF0LiBFdmVuIGlmIHRoZSB0c2MgaXMgbm90 IGFjY3VyYXRlLCBpdCBnaXZlcyB1cyBhIG1vcmUgYWNjdXJhdGUgdGltaW5nCisgKiB0aGFuIG5v dCBhZGp1c3RpbmcgYXQgYWxsCisgKi8KK3Vuc2lnbmVkIGxvbmcga3ZtX2dldF93YWxsY2xvY2so dm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIHdhbGxjbG9jazsKKwl1bnNpZ25lZCBsb25nIGxvbmcg bm93OworCXdhbGxjbG9jayAgPSBodl9jbG9jay53Yy50dl9zZWM7CisKKwlyZHRzY2xsKG5vdyk7 CisKKwlub3cgLT0gaHZfY2xvY2subGFzdF90c2M7CisJbm93ID0gKG5vdyAqIGh2X2Nsb2NrLnRz Y19tdWx0KSA+PiBLVk1fU0NBTEU7CisJbm93ICs9IGh2X2Nsb2NrLndjLnR2X25zZWM7CisJZG9f ZGl2KG5vdywgTlNFQ19QRVJfU0VDKTsKKwlyZXR1cm4gd2FsbGNsb2NrOworfQorCitpbnQga3Zt X3NldF93YWxsY2xvY2sodW5zaWduZWQgbG9uZyBub3cpCit7CisJcmV0dXJuIDA7Cit9CisKKy8q CisgKiBUaGlzIGlzIG91ciByZWFkX2Nsb2NrIGZ1bmN0aW9uLiBUaGUgaG9zdCBwdXRzIGFuIHRz YyB0aW1lc3RhbXAgZWFjaCB0aW1lCisgKiBpdCB1cGRhdGVzIGEgbmV3IHRpbWUsIGFuZCB0aGVu IHdlIGNhbiB1c2UgaXQgdG8gZGVyaXZlIGEgc2xpZ2h0bHkgbW9yZQorICogcHJlY2lzZSBub3Rp b24gb2YgZWxhcHNlZCB0aW1lLCBjb252ZXJ0ZWQgdG8gbmFub3NlY29uZHMuCisgKgorICogSWYg dGhlIHBsYXRmb3JtIHByb3ZpZGVzIGEgc3RhYmxlIHRzYywgd2UganVzdCB1c2UgaXQsIGFuZCB0 aGVyZSBpcyBubyBuZWVkCisgKiBmb3IgdGhlIGhvc3QgdG8gdXBkYXRlIGFueXRoaW5nLgorICov CitzdGF0aWMgY3ljbGVfdCBrdm1fY2xvY2tfcmVhZCh2b2lkKSB7CisKKwl1NjQgZGVsdGEsIGxh c3RfdHNjOworCXN0cnVjdCB0aW1lc3BlYyAqbm93OworCisJaWYgKGh2X2Nsb2NrLnN0YWJsZV90 c2MpIHsKKwkJcmR0c2NsbChsYXN0X3RzYyk7CisJCXJldHVybiBsYXN0X3RzYzsKKwl9CisKKwlk byB7CisJCWxhc3RfdHNjID0gaHZfY2xvY2subGFzdF90c2M7CisJCXJtYigpOworCQlub3cgPSAm aHZfY2xvY2subm93OworCQlybWIoKTsKKwl9IHdoaWxlIChodl9jbG9jay5sYXN0X3RzYyAhPSBs YXN0X3RzYyk7CisKKwlkZWx0YSA9IG5hdGl2ZV9yZWFkX3RzYygpIC0gbGFzdF90c2M7CisJZGVs dGEgPSAoZGVsdGEgKiBodl9jbG9jay50c2NfbXVsdCkgPj4gS1ZNX1NDQUxFOworCisJcmV0dXJu IChjeWNsZV90KW5vdy0+dHZfc2VjICogTlNFQ19QRVJfU0VDICsgbm93LT50dl9uc2VjICsgZGVs dGE7Cit9CisKK3N0YXRpYyB2b2lkIGt2bV90aW1lcl9zZXRfbW9kZShlbnVtIGNsb2NrX2V2ZW50 X21vZGUgbW9kZSwKKwkJCQlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCit7CisJV0FS Tl9PTighaXJxc19kaXNhYmxlZCgpKTsKKworCXN3aXRjaCAobW9kZSkgeworCWNhc2UgQ0xPQ0tf RVZUX01PREVfT05FU0hPVDoKKwkJLyogdGhpcyBpcyB3aGF0IHdlIHdhbnQgKi8KKwkJYnJlYWs7 CisJY2FzZSBDTE9DS19FVlRfTU9ERV9SRVNVTUU6CisJCWJyZWFrOworCWNhc2UgQ0xPQ0tfRVZU X01PREVfUEVSSU9ESUM6CisJCVdBUk5fT04oMSk7CisJCWJyZWFrOworCWNhc2UgQ0xPQ0tfRVZU X01PREVfVU5VU0VEOgorCWNhc2UgQ0xPQ0tfRVZUX01PREVfU0hVVERPV046CisJCWt2bV9oeXBl cmNhbGwwKEtWTV9IQ0FMTF9TVE9QX09ORVNIT1QpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQli cmVhazsKKwl9Cit9CisKKy8qCisgKiBQcm9ncmFtbWluZyB0aGUgbmV4dCBldmVudCBpcyBqdXN0 IGEgbWF0dGVyIG9mIGFza2luZyB0aGUgaG9zdAorICogdG8gZ2VuZXJhdGUgdXMgYW4gaW50ZXJy dXB0IHdoZW4gdGhlIHRpbWUgZXhwaXJlcy4gV2UgcGFzcyB0aGUKKyAqIGRlbHRhIG9uLCBhbmQg aHlwZXJ2aXNvciB3aWxsIGRvIGFsbCByZW1haW5pbmcgdHJpY2tzLiBGb3IgYSBtb3JlCisgKiBw cmVjaXNlIHRpbWluZywgd2UgY2FuIGp1c3Qgc3VidHJhY3QgdGhlIHRpbWUgc3BlbnQgYnkgdGhl IGh5cGVyY2FsbAorICovCitzdGF0aWMgaW50IGt2bV90aW1lcl9uZXh0X2V2ZW50KHVuc2lnbmVk IGxvbmcgZGVsdGEsCisJCQkJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0KQoreworCVdB Uk5fT04oZXZ0LT5tb2RlICE9IENMT0NLX0VWVF9NT0RFX09ORVNIT1QpOworCWt2bV9oeXBlcmNh bGwxKEtWTV9IQ0FMTF9TRVRfQUxBUk0sIGRlbHRhKTsKKwlyZXR1cm4gMDsKK30KKworLyogVGhp cyBpcyBvdXIgY2xvY2tldmVudHMgc3RydWN0dXJlLiBXZSBvbmx5IHN1cHBvcnQgb25lIHNob3Qg b3BlcmF0aW9uICovCitzdGF0aWMgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSBrdm1fY2xvY2tl dmVudCA9IHsKKwkubmFtZQkJPSAia3ZtLXRpbWVyIiwKKwkuZmVhdHVyZXMJPSBDTE9DS19FVlRf RkVBVF9PTkVTSE9ULAorCS5zaGlmdAkJPSAwLAorCS5tdWx0CQk9IDEsCisJLm1heF9kZWx0YV9u cwk9IDB4ZmZmZmZmZmYsCisJLm1pbl9kZWx0YV9ucwk9IDEwMDAwMDAsCisJLnNldF9tb2RlCT0g a3ZtX3RpbWVyX3NldF9tb2RlLAorCS5zZXRfbmV4dF9ldmVudCA9IGt2bV90aW1lcl9uZXh0X2V2 ZW50LAorCS5yYXRpbmcgICAgICAgICA9IDEwMDAsCisJLmlycQkJPSAwLAorCS5jcHVtYXNrCT0g Q1BVX01BU0tfTk9ORSwKK307CisKK3Vuc2lnbmVkIGxvbmcgbG9uZyBrdm1fc2NoZWRfY2xvY2so dm9pZCkKK3sKKwlyZXR1cm4ga3ZtX2Nsb2NrX3JlYWQoKTsKK30KKworc3RhdGljIHN0cnVjdCBj bG9ja3NvdXJjZSBrdm1fY2xvY2sgPSB7CisJLm5hbWUgPSAia3ZtLWNsb2NrIiwKKwkucmVhZCA9 IGt2bV9jbG9ja19yZWFkLAorCS5yYXRpbmcgPSA0MDAsCisJLm1hc2sgPSBDTE9DS1NPVVJDRV9N QVNLKDY0KSwKKwkubXVsdCA9IDEgPDwgS1ZNX1NDQUxFLAorCS5zaGlmdCA9IEtWTV9TQ0FMRSwK KwkuZmxhZ3MgPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUywKK307CisKK3N0YXRpYyBERUZJ TkVfUEVSX0NQVShzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlLCBrdm1fY2xvY2tfZXZ0KTsKKwor c3RhdGljIGlycXJldHVybl90IGt2bV90aW1lcl9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2 X2lkKQoreworCXN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCA9ICZfX2dldF9jcHVfdmFy KGt2bV9jbG9ja19ldnQpOworCUJVR19PTighZXZ0KTsKKwlldnQtPmV2ZW50X2hhbmRsZXIoZXZ0 KTsKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGly cTAgID0geworICAgICAgICAuaGFuZGxlciA9IGt2bV90aW1lcl9pbnRlcnJ1cHQsCisgICAgICAg IC5mbGFncyA9IElSUUZfRElTQUJMRUQgfCBJUlFGX05PQkFMQU5DSU5HIHwgSVJRRl9JUlFQT0xM LAorICAgICAgICAubWFzayA9IENQVV9NQVNLX0NQVTAsCisgICAgICAgIC5uYW1lID0gImt2bS10 aW1lciIKK307CisKK3N0YXRpYyB2b2lkIGt2bV9jbG9ja2V2ZW50c19pbml0KGludCBjcHUpCit7 CisJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqZXZ0OworCWV2dCA9ICZwZXJfY3B1KGt2bV9j bG9ja19ldnQsIGNwdSk7CisJbWVtY3B5KGV2dCwgJmt2bV9jbG9ja2V2ZW50LCBzaXplb2Yoa3Zt X2Nsb2NrZXZlbnQpKTsKKwlldnQtPmNwdW1hc2sgPSBjcHVtYXNrX29mX2NwdShjcHUpOworCWNs b2NrZXZlbnRzX3JlZ2lzdGVyX2RldmljZShldnQpOworfQorCitzdGF0aWMgdm9pZCBrdm1fdGlt ZV9pbml0KHZvaWQpCit7CisJaWYgKGh2X2Nsb2NrLnN0YWJsZV90c2MpCisJCWt2bV9jbG9jay5t dWx0ID0gaHZfY2xvY2sudHNjX211bHQ7CisKKwljbG9ja3NvdXJjZV9yZWdpc3Rlcigma3ZtX2Ns b2NrKTsKKworCWt2bV9jbG9ja2V2ZW50c19pbml0KHNtcF9wcm9jZXNzb3JfaWQoKSk7CisKKwlz ZXR1cF9pcnEoMCwgJmlycTApOworfQorCisvKgorICogUUVNVSBjb25uZWN0cyBhIHBpdCB0aW1l ciwgd2hpY2gga2VlcHMgc2VuZGluZyB1cyBpbnRlcnJ1cHRzLiBXZSBkaXNhYmxlCisgKiBpdCB3 aGVuIHRoZSB0aW1lIGNvbWVzCisgKi8KK3ZvaWQga3ZtX2Rpc2FibGVfcGl0KHZvaWQpCit7CisJ b3V0Yl9wKDB4MzAsIFBJVF9NT0RFKTsKK30KKwordm9pZCBfX2luaXQga3ZtY2xvY2tfaW5pdCh2 b2lkKQoreworCisJdW5zaWduZWQgbG9uZyBzaGFyZWRfcGFnZSA9ICh1bnNpZ25lZCBsb25nKSZo dl9jbG9jazsKKwkvKgorCSAqIElmIHdlIGNhbid0IHVzZSB0aGUgcGFyYXZpcnQgY2xvY2ssIGp1 c3QgZ28gd2l0aAorCSAqIHRoZSB1c3VhbCB0aW1la2VlcGluZworCSAqLworCWlmICgha3ZtX3Bh cmFfYXZhaWxhYmxlKCkgfHwgbm9fa3ZtY2xvY2spCisJCXJldHVybjsKKworCWlmIChrdm1faHlw ZXJjYWxsMShLVk1fSENBTExfU0VUX1NIQVJFRF9QQUdFLCBzaGFyZWRfcGFnZSkpCisJCXJldHVy bjsKKworCXBhcmF2aXJ0X29wcy5nZXRfd2FsbGNsb2NrID0ga3ZtX2dldF93YWxsY2xvY2s7CisJ cGFyYXZpcnRfb3BzLnNldF93YWxsY2xvY2sgPSBrdm1fc2V0X3dhbGxjbG9jazsKKwlwYXJhdmly dF9vcHMuc2NoZWRfY2xvY2sgPSBrdm1fc2NoZWRfY2xvY2s7CisJcGFyYXZpcnRfb3BzLnRpbWVf aW5pdCA9IGt2bV90aW1lX2luaXQ7CisJLyoKKwkgKiBJZiB3ZSBsZXQgdGhlIG5vcm1hbCBBUElD IGluaXRpYWxpemF0aW9uIGNvZGUgcnVuLCB0aGV5IHdpbGwKKwkgKiBvdmVycmlkZSBvdXIgZXZl bnQgaGFuZGxlciwgcmVseWluZyB0aGF0IHRoZSBBUElDIHdpbGwgZGVsaXZlcgorCSAqIHRoZSBp bnRlcnJ1cHRzIGluIHRoZSBMT0NBTF9USU1FUl9WRUNUT1IuIFRoZSBlYXN5IHNvbHV0aW9uIGlz CisJICoga2VlcCB0aGUgUElUIHJ1bm5pbmcgdW50aWwgdGhlbgorCSAqLworCXBhcmF2aXJ0X29w cy5zZXR1cF9ib290X2Nsb2NrID0ga3ZtX2Rpc2FibGVfcGl0OworfQpkaWZmIC0tZ2l0IGEvYXJj aC9pMzg2L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9pMzg2L2tlcm5lbC9zZXR1cC5jCmluZGV4IGQ0 NzRjZDYuLmZkNzU4ZjkgMTAwNjQ0Ci0tLSBhL2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYworKysg Yi9hcmNoL2kzODYva2VybmVsL3NldHVwLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxs aW51eC9jcmFzaF9kdW1wLmg+CiAjaW5jbHVkZSA8bGludXgvZG1pLmg+CiAjaW5jbHVkZSA8bGlu dXgvcGZuLmg+CisjaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KIAogI2luY2x1ZGUgPHZpZGVv L2VkaWQuaD4KIApAQCAtNTc5LDYgKzU4MCw5IEBAIHZvaWQgX19pbml0IHNldHVwX2FyY2goY2hh ciAqKmNtZGxpbmVfcCkKIAl2bWlfaW5pdCgpOwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfS1ZN X0NMT0NLCisJa3ZtY2xvY2tfaW5pdCgpOworI2VuZGlmCiAJLyoKIAkgKiBOT1RFOiBiZWZvcmUg dGhpcyBwb2ludCBfbm9ib2R5XyBpcyBhbGxvd2VkIHRvIGFsbG9jYXRlCiAJICogYW55IG1lbW9y eSB1c2luZyB0aGUgYm9vdG1lbSBhbGxvY2F0b3IuICBBbHRob3VnaCB0aGUKZGlmZiAtLWdpdCBh L2RyaXZlcnMva3ZtL2lycS5jIGIvZHJpdmVycy9rdm0vaXJxLmMKaW5kZXggMGY2NjNmZS4uN2Jh Zjc5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9rdm0vaXJxLmMKKysrIGIvZHJpdmVycy9rdm0vaXJx LmMKQEAgLTMyLDYgKzMyLDggQEAgaW50IGt2bV9jcHVfaGFzX2ludGVycnVwdChzdHJ1Y3Qga3Zt X3ZjcHUgKnYpCiB7CiAJc3RydWN0IGt2bV9waWMgKnM7CiAKKwlpZiAodi0+dGltZXJfdmVjdG9y ICE9IC0xKQorCQlyZXR1cm4gMTsKIAlpZiAoa3ZtX2FwaWNfaGFzX2ludGVycnVwdCh2KSA9PSAt MSkgewkvKiBMQVBJQyAqLwogCQlpZiAoa3ZtX2FwaWNfYWNjZXB0X3BpY19pbnRyKHYpKSB7CiAJ CQlzID0gcGljX2lycWNoaXAodi0+a3ZtKTsJLyogUElDICovCkBAIC00Myw2ICs0NSwxMiBAQCBp bnQga3ZtX2NwdV9oYXNfaW50ZXJydXB0KHN0cnVjdCBrdm1fdmNwdSAqdikKIH0KIEVYUE9SVF9T WU1CT0xfR1BMKGt2bV9jcHVfaGFzX2ludGVycnVwdCk7CiAKK3N0YXRpYyBpbnQga3ZtX2dldF9w dmNsb2NrX2ludGVycnVwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnYpCit7CisJaW50IHJldCA9IHYtPnRp bWVyX3ZlY3RvcjsKKwl2LT50aW1lcl92ZWN0b3IgPSAtMTsKKwlyZXR1cm4JcmV0OworfQogLyoK ICAqIFJlYWQgcGVuZGluZyBpbnRlcnJ1cHQgdmVjdG9yIGFuZCBpbnRhY2suCiAgKi8KQEAgLTUx LDcgKzU5LDkgQEAgaW50IGt2bV9jcHVfZ2V0X2ludGVycnVwdChzdHJ1Y3Qga3ZtX3ZjcHUgKnYp CiAJc3RydWN0IGt2bV9waWMgKnM7CiAJaW50IHZlY3RvcjsKIAotCXZlY3RvciA9IGt2bV9nZXRf YXBpY19pbnRlcnJ1cHQodik7CS8qIEFQSUMgKi8KKwl2ZWN0b3IgPSBrdm1fZ2V0X3B2Y2xvY2tf aW50ZXJydXB0KHYpOworCWlmICh2ZWN0b3IgPT0gLTEpCisJCXZlY3RvciA9IGt2bV9nZXRfYXBp Y19pbnRlcnJ1cHQodik7CS8qIEFQSUMgKi8KIAlpZiAodmVjdG9yID09IC0xKSB7CiAJCWlmIChr dm1fYXBpY19hY2NlcHRfcGljX2ludHIodikpIHsKIAkJCXMgPSBwaWNfaXJxY2hpcCh2LT5rdm0p OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9rdm0va3ZtLmggYi9kcml2ZXJzL2t2bS9rdm0uaAppbmRl eCA4ZTU4ZjNiLi4zNzY2OTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2t2bS9rdm0uaAorKysgYi9k cml2ZXJzL2t2bS9rdm0uaApAQCAtMzkxLDYgKzM5MSw4IEBAIHN0cnVjdCBrdm1fdmNwdSB7CiAJ LyogZW11bGF0ZSBjb250ZXh0ICovCiAKIAlzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCBlbXVsYXRl X2N0eHQ7CisJc3RydWN0IGhydGltZXIgb25lc2hvb3RlcjsKKwlpbnQgdGltZXJfdmVjdG9yOwog fTsKIAogc3RydWN0IGt2bV9tZW1fYWxpYXMgewpAQCAtNDE0LDYgKzQxNiw5IEBAIHN0cnVjdCBr dm0gewogCXN0cnVjdCBrdm1fbWVtX2FsaWFzIGFsaWFzZXNbS1ZNX0FMSUFTX1NMT1RTXTsKIAlp bnQgbm1lbXNsb3RzOwogCXN0cnVjdCBrdm1fbWVtb3J5X3Nsb3QgbWVtc2xvdHNbS1ZNX01FTU9S WV9TTE9UU107CisKKwl1bnNpZ25lZCBsb25nIGNsb2NrX2FkZHI7CisJaW50IHRpbWVfbmVlZHNf dXBkYXRlOwogCS8qCiAJICogSGFzaCB0YWJsZSBvZiBzdHJ1Y3Qga3ZtX21tdV9wYWdlLgogCSAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9rdm0va3ZtX21haW4uYyBiL2RyaXZlcnMva3ZtL2t2bV9t YWluLmMKaW5kZXggMmMzOTg2Zi4uNTdlMmUzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9rdm0va3Zt X21haW4uYworKysgYi9kcml2ZXJzL2t2bS9rdm1fbWFpbi5jCkBAIC0yMCw2ICsyMCw3IEBACiAj aW5jbHVkZSAic2VnbWVudF9kZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiaXJxLmgiCiAKKyNpbmNs dWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgogI2luY2x1ZGUgPGxpbnV4L2t2bS5oPgogI2luY2x1 ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CkBAIC00MCw2ICs0 MSw3IEBACiAjaW5jbHVkZSA8bGludXgvYW5vbl9pbm9kZXMuaD4KICNpbmNsdWRlIDxsaW51eC9w cm9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KKyNpbmNsdWRlIDxsaW51eC9r dGltZS5oPgogCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgogI2luY2x1ZGUgPGFzbS9tc3Iu aD4KQEAgLTE0MDYsNiArMTQwOCw3IEBAIGludCBrdm1fZW11bGF0ZV9oYWx0KHN0cnVjdCBrdm1f dmNwdSAqdmNwdSkKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV9lbXVsYXRlX2hhbHQpOwogCitz dGF0aWMgc3RydWN0IGt2bV9odl9jbG9jayBodl9jbG9jazsKIGludCBrdm1fZW11bGF0ZV9oeXBl cmNhbGwoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCXVuc2lnbmVkIGxvbmcgbnIsIGEwLCBh MSwgYTIsIGEzLCByZXQ7CkBAIC0xNDI2LDcgKzE0MjksMzIgQEAgaW50IGt2bV9lbXVsYXRlX2h5 cGVyY2FsbChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJCWEzICY9IDB4RkZGRkZGRkY7CiAJfQog CisJcmV0ID0gMDsKIAlzd2l0Y2ggKG5yKSB7CisJY2FzZSAgS1ZNX0hDQUxMX1NFVF9TSEFSRURf UEFHRToKKwkJaWYgKCFpcnFjaGlwX2luX2tlcm5lbCh2Y3B1LT5rdm0pKSB7CisJCQlyZXQgPSAt MTsKKwkJCWJyZWFrOworCQl9CisKKwkJdmNwdS0+a3ZtLT5jbG9ja19hZGRyID0gYTA7CisJCWdl dG5zdGltZW9mZGF5KCZodl9jbG9jay53Yyk7CisJCWh2X2Nsb2NrLnN0YWJsZV90c2MgPSBjaGVj a190c2NfdW5zdGFibGUoKTsKKwkJaHZfY2xvY2sudHNjX211bHQgPSBjbG9ja3NvdXJjZV9raHoy bXVsdCh0c2Nfa2h6LCAyMik7CisJCXJkdHNjbGwoaHZfY2xvY2subGFzdF90c2MpOworCQllbXVs YXRvcl93cml0ZV9lbXVsYXRlZCh2Y3B1LT5rdm0tPmNsb2NrX2FkZHIsICZodl9jbG9jaywKKwkJ CQkJCXNpemVvZihodl9jbG9jayksIHZjcHUpOworCisJCWJyZWFrOworCWNhc2UgS1ZNX0hDQUxM X1NFVF9BTEFSTTogeworCQlrdGltZV90IGt0OworCQlrdCA9IGt0aW1lX2FkZF9ucyhrdGltZV9n ZXRfcmVhbCgpLCBhMCk7CisJCWhydGltZXJfc3RhcnQoJnZjcHUtPm9uZXNob290ZXIsIGt0LCBI UlRJTUVSX01PREVfQUJTKTsKKwkJYnJlYWs7CisJfQorCWNhc2UgS1ZNX0hDQUxMX1NUT1BfT05F U0hPVDoKKwkJaHJ0aW1lcl9jYW5jZWwoJnZjcHUtPm9uZXNob290ZXIpOworCQlicmVhazsKIAlk ZWZhdWx0OgogCQlyZXQgPSAtS1ZNX0VOT1NZUzsKIAkJYnJlYWs7CkBAIC0xOTYxLDYgKzE5ODks MjAgQEAgc3RhdGljIHZvaWQgcG9zdF9rdm1fcnVuX3NhdmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 LAogCQkJCQkgdmNwdS0+aXJxX3N1bW1hcnkgPT0gMCk7CiB9CiAKK3ZvaWQga3ZtX3VwZGF0ZV9n dWVzdF90aW1lKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlzdHJ1Y3Qga3ZtICprdm0gPSB2 Y3B1LT5rdm07CisKKwlpZiAoKGt2bS0+Y2xvY2tfYWRkcikgJiYgIShodl9jbG9jay5zdGFibGVf dHNjKSAmJgorCQkJCSAgKGt2bS0+dGltZV9uZWVkc191cGRhdGUpKSB7CisJCWt0aW1lX2dldF90 cygmaHZfY2xvY2subm93KTsKKwkJcmR0c2NsbChodl9jbG9jay5sYXN0X3RzYyk7CisJCWVtdWxh dG9yX3dyaXRlX2VtdWxhdGVkKHZjcHUtPmt2bS0+Y2xvY2tfYWRkciwKKwkJCQkJJmh2X2Nsb2Nr LCBzaXplb2YoaHZfY2xvY2spLCB2Y3B1KTsKKwkJa3ZtLT50aW1lX25lZWRzX3VwZGF0ZSA9IDA7 CisJfQorfQorCiBzdGF0aWMgaW50IF9fdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBz dHJ1Y3Qga3ZtX3J1biAqa3ZtX3J1bikKIHsKIAlpbnQgcjsKQEAgLTIwMDksNiArMjA1MSw3IEBA IGFnYWluOgogCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEtWTV9UTEJfRkxVU0gsICZ2Y3B1LT5y ZXF1ZXN0cykpCiAJCQlrdm1feDg2X29wcy0+dGxiX2ZsdXNoKHZjcHUpOwogCisJa3ZtX3VwZGF0 ZV9ndWVzdF90aW1lKHZjcHUpOwogCWt2bV94ODZfb3BzLT5ydW4odmNwdSwga3ZtX3J1bik7CiAK IAl2Y3B1LT5ndWVzdF9tb2RlID0gMDsKQEAgLTI1NjUsNiArMjYwOCwxNSBAQCBzdGF0aWMgaW50 IGNyZWF0ZV92Y3B1X2ZkKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlyZXR1cm4gZmQ7CiB9CiAK Kworc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGt2bV9jbG9ja2Rldl9mbihzdHJ1Y3QgaHJ0 aW1lciAqdGltZXIpCit7CisJc3RydWN0IGt2bV92Y3B1ICp2Y3B1ID0gY29udGFpbmVyX29mKHRp bWVyLCBzdHJ1Y3Qga3ZtX3ZjcHUsIG9uZXNob290ZXIpOworCXZjcHUtPnRpbWVyX3ZlY3RvciA9 IDB4MjA7CisKKwlyZXR1cm4gSFJUSU1FUl9OT1JFU1RBUlQ7Cit9CisKIC8qCiAgKiBDcmVhdGVz IHNvbWUgdmlydHVhbCBjcHVzLiAgR29vZCBsdWNrIGNyZWF0aW5nIG1vcmUgdGhhbiBvbmUuCiAg Ki8KQEAgLTI1ODAsNiArMjYzMiw3IEBAIHN0YXRpYyBpbnQga3ZtX3ZtX2lvY3RsX2NyZWF0ZV92 Y3B1KHN0cnVjdCBrdm0gKmt2bSwgaW50IG4pCiAJaWYgKElTX0VSUih2Y3B1KSkKIAkJcmV0dXJu IFBUUl9FUlIodmNwdSk7CiAKKwl2Y3B1LT50aW1lcl92ZWN0b3IgPSAtMTsKIAlwcmVlbXB0X25v dGlmaWVyX2luaXQoJnZjcHUtPnByZWVtcHRfbm90aWZpZXIsICZrdm1fcHJlZW1wdF9vcHMpOwog CiAJLyogV2UgZG8gZnhzYXZlOiB0aGlzIG11c3QgYmUgYWxpZ25lZC4gKi8KQEAgLTI2MDAsNiAr MjY1Myw5IEBAIHN0YXRpYyBpbnQga3ZtX3ZtX2lvY3RsX2NyZWF0ZV92Y3B1KHN0cnVjdCBrdm0g Kmt2bSwgaW50IG4pCiAJa3ZtLT52Y3B1c1tuXSA9IHZjcHU7CiAJbXV0ZXhfdW5sb2NrKCZrdm0t PmxvY2spOwogCisJaHJ0aW1lcl9pbml0KCZ2Y3B1LT5vbmVzaG9vdGVyLCBDTE9DS19SRUFMVElN RSwgSFJUSU1FUl9NT0RFX0FCUyk7CisJdmNwdS0+b25lc2hvb3Rlci5mdW5jdGlvbiA9IGt2bV9j bG9ja2Rldl9mbjsKKwogCS8qIE5vdyBpdCdzIGFsbCBzZXQgdXAsIGxldCB1c2Vyc3BhY2UgcmVh Y2ggaXQgKi8KIAlyID0gY3JlYXRlX3ZjcHVfZmQodmNwdSk7CiAJaWYgKHIgPCAwKQpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9rdm1fcGFyYS5oIGIvaW5jbHVkZS9saW51eC9rdm1fcGFyYS5o CmluZGV4IGNjNWRmYjQuLmMwZWFjM2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva3ZtX3Bh cmEuaAorKysgYi9pbmNsdWRlL2xpbnV4L2t2bV9wYXJhLmgKQEAgLTE2LDEyICsxNiwyOCBAQAog CiAjaWZkZWYgX19LRVJORUxfXwogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KK2V4dGVybiB2 b2lkIGt2bWNsb2NrX2luaXQodm9pZCk7CiAKIC8qIFRoaXMgaW5zdHJ1Y3Rpb24gaXMgdm1jYWxs LiAgT24gbm9uLVZUIGFyY2hpdGVjdHVyZXMsIGl0IHdpbGwgZ2VuZXJhdGUgYQogICogdHJhcCB0 aGF0IHdlIHdpbGwgdGhlbiByZXdyaXRlIHRvIHRoZSBhcHByb3ByaWF0ZSBpbnN0cnVjdGlvbi4K ICAqLwogI2RlZmluZSBLVk1fSFlQRVJDQUxMICIuYnl0ZSAweDBmLDB4MDEsMHhjMSIKIAorI2Rl ZmluZSBLVk1fSENBTExfU0VUX1RJTUVSX01PREUgMAorI2RlZmluZSBLVk1fSENBTExfU0VUX1NI QVJFRF9QQUdFIDEKKyNkZWZpbmUgS1ZNX0hDQUxMX1NFVF9BTEFSTQkyCisjZGVmaW5lIEtWTV9I Q0FMTF9TVE9QX09ORVNIT1QgMworCitzdHJ1Y3Qga3ZtX2h2X2Nsb2NrIHsKKwlpbnQgc3RhYmxl X3RzYzsgLyogdXNlIHJhdyB0c2MgZm9yIGNsb2NrX3JlYWQgKi8KKwl1bnNpZ25lZCBsb25nIHRz Y19tdWx0OworCXN0cnVjdCB0aW1lc3BlYyBub3c7CisJdTY0IGxhc3RfdHNjOworCS8qIFRoYXQn cyB0aGUgd2FsbCBjbG9jaywgbm90IHRoZSB3YXRlciBjbG9zZXQgKi8KKwlzdHJ1Y3QgdGltZXNw ZWMgd2M7Cit9OworCisKIC8qIEZvciBLVk0gaHlwZXJjYWxscywgYSB0aHJlZS1ieXRlIHNlcXVl bmNlIG9mIGVpdGhlciB0aGUgdm1ydW4gb3IgdGhlIHZtbXJ1bgogICogaW5zdHJ1Y3Rpb24uICBU aGUgaHlwZXJ2aXNvciBtYXkgcmVwbGFjZSBpdCB3aXRoIHNvbWV0aGluZyBlbHNlIGJ1dCBvbmx5 IHRoZQogICogaW5zdHJ1Y3Rpb25zIGFyZSBndWFyYW50ZWVkIHRvIGJlIHN1cHBvcnRlZC4K ------=_Part_5342_19882162.1192205309265 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ ------=_Part_5342_19882162.1192205309265 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kvm-devel mailing list kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/kvm-devel ------=_Part_5342_19882162.1192205309265--