From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhai, Edwin" Subject: [PATCH] [RESEND] KVM:VMX: Add support for Pause-Loop Exiting Date: Wed, 23 Sep 2009 22:04:07 +0800 Message-ID: <4ABA2AD7.6080008@intel.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080809050100030000070609" Cc: "kvm@vger.kernel.org" , "Zhai, Edwin" To: Avi Kivity , Ingo Molnar Return-path: Received: from mga11.intel.com ([192.55.52.93]:7618 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751048AbZIWOEG (ORCPT ); Wed, 23 Sep 2009 10:04:06 -0400 Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------080809050100030000070609 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Avi, This is the patch to enable PLE, which depends on the a small change of Linux scheduler (see http://lkml.org/lkml/2009/5/20/447). According to our discussion last time, one missing part is that if PLE exit, pick up an unscheduled vcpu at random and schedule it. But further investigation found that: 1. KVM is hard to know the schedule state for each vcpu. 2. Linux scheduler has no existed API can be used to pull a specific task to this cpu, so we need more changes to the common scheduler. So I prefer current simple way: just give up current cpu time. If no objection, I'll try to push common scheduler change first to linux. Thanks, edwin --------------080809050100030000070609 Content-Type: application/octet-stream; name="kvm_ple_v2.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kvm_ple_v2.patch" S1ZNOlZNWDogQWRkIHN1cHBvcnQgZm9yIFBhdXNlLUxvb3AgRXhpdGluZwoKTmV3IE5ITSBw cm9jZXNzb3JzIHdpbGwgc3VwcG9ydCBQYXVzZS1Mb29wIEV4aXRpbmcgYnkgYWRkaW5nIDIg Vk0tZXhlY3V0aW9uCmNvbnRyb2wgZmllbGRzOgpQTEVfR2FwICAgIC0gdXBwZXIgYm91bmQg b24gdGhlIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdHdvIHN1Y2Nlc3NpdmUKICAgICAgICAg ICAgIGV4ZWN1dGlvbnMgb2YgUEFVU0UgaW4gYSBsb29wLgpQTEVfV2luZG93IC0gdXBwZXIg Ym91bmQgb24gdGhlIGFtb3VudCBvZiB0aW1lIGEgZ3Vlc3QgaXMgYWxsb3dlZCB0byBleGVj dXRlIGluCiAgICAgICAgICAgICBhIFBBVVNFIGxvb3AKCklmIHRoZSB0aW1lLCBiZXR3ZWVu IHRoaXMgZXhlY3V0aW9uIG9mIFBBVVNFIGFuZCBwcmV2aW91cyBvbmUsIGV4Y2VlZHMgdGhl ClBMRV9HYXAsIHByb2Nlc3NvciBjb25zaWRlciB0aGlzIFBBVVNFIGJlbG9uZ3MgdG8gYSBu ZXcgbG9vcC4KT3RoZXJ3aXNlLCBwcm9jZXNzb3IgZGV0ZXJtaW5zIHRoZSB0aGUgdG90YWwg ZXhlY3V0aW9uIHRpbWUgb2YgdGhpcyBsb29wKHNpbmNlCjFzdCBQQVVTRSBpbiB0aGlzIGxv b3ApLCBhbmQgdHJpZ2dlcnMgYSBWTSBleGl0IGlmIHRvdGFsIHRpbWUgZXhjZWVkcyB0aGUK UExFX1dpbmRvdy4KKiBSZWZlciBTRE0gdm9sdW1lIDNiIHNlY3Rpb24gMjEuNi4xMyAmIDIy LjEuMy4KClBhdXNlLUxvb3AgRXhpdGluZyBjYW4gYmUgdXNlZCB0byBkZXRlY3QgTG9jay1I b2xkZXIgUHJlZW1wdGlvbiwgd2hlcmUgb25lIFZQCmlzIHNjaGVkLW91dCBhZnRlciBob2xk IGEgc3BpbmxvY2ssIHRoZW4gb3RoZXIgVlBzIGZvciBzYW1lIGxvY2sgYXJlIHNjaGVkLWlu CnRvIHdhc3RlIHRoZSBDUFUgdGltZS4KCk91ciB0ZXN0cyBpbmRpY2F0ZSB0aGF0IG1vc3Qg c3BpbmxvY2tzIGFyZSBoZWxkIGZvciBsZXNzIHRoYW4gMjEyIGN5Y2xlcy4KUGVyZm9ybWFu Y2UgdGVzdHMgc2hvdyB0aGF0IHdpdGggMlggTFAgb3Zlci1jb21taXRtZW50IHdlIGNhbiBn ZXQgKzIlIHBlcmYKaW1wcm92ZW1lbnQgZm9yIGtlcm5lbCBidWlsZChFdmVuIG1vcmUgcGVy ZiBnYWluIHdpdGggbW9yZSBMUHMpLgoKU2lnbmVkLW9mZi1ieTogWmhhaSBFZHdpbiA8ZWR3 aW4uemhhaUBpbnRlbC5jb20+CgotLS0gbGludXgtMi42Lm9yaWcvYXJjaC94ODYvaW5jbHVk ZS9hc20vdm14LmgKKysrIGxpbnV4LTIuNi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS92bXguaApA QCAtNTYsNiArNTYsNyBAQAogI2RlZmluZSBTRUNPTkRBUllfRVhFQ19FTkFCTEVfVlBJRCAg ICAgICAgICAgICAgMHgwMDAwMDAyMAogI2RlZmluZSBTRUNPTkRBUllfRVhFQ19XQklOVkRf RVhJVElORwkJMHgwMDAwMDA0MAogI2RlZmluZSBTRUNPTkRBUllfRVhFQ19VTlJFU1RSSUNU RURfR1VFU1QJMHgwMDAwMDA4MAorI2RlZmluZSBTRUNPTkRBUllfRVhFQ19QQVVTRV9MT09Q X0VYSVRJTkcJMHgwMDAwMDQwMAogCiAKICNkZWZpbmUgUElOX0JBU0VEX0VYVF9JTlRSX01B U0sgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKQEAgLTE0NCw2ICsxNDUsOCBAQCBlbnVt IHZtY3NfZmllbGQgewogCVZNX0VOVFJZX0lOU1RSVUNUSU9OX0xFTiAgICAgICAgPSAweDAw MDA0MDFhLAogCVRQUl9USFJFU0hPTEQgICAgICAgICAgICAgICAgICAgPSAweDAwMDA0MDFj LAogCVNFQ09OREFSWV9WTV9FWEVDX0NPTlRST0wgICAgICAgPSAweDAwMDA0MDFlLAorCVBM RV9HQVAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDA0MDIwLAorCVBMRV9XSU5E T1cgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDA0MDIyLAogCVZNX0lOU1RSVUNUSU9O X0VSUk9SICAgICAgICAgICAgPSAweDAwMDA0NDAwLAogCVZNX0VYSVRfUkVBU09OICAgICAg ICAgICAgICAgICAgPSAweDAwMDA0NDAyLAogCVZNX0VYSVRfSU5UUl9JTkZPICAgICAgICAg ICAgICAgPSAweDAwMDA0NDA0LApAQCAtMjQ4LDYgKzI1MSw3IEBAIGVudW0gdm1jc19maWVs ZCB7CiAjZGVmaW5lIEVYSVRfUkVBU09OX01TUl9SRUFEICAgICAgICAgICAgMzEKICNkZWZp bmUgRVhJVF9SRUFTT05fTVNSX1dSSVRFICAgICAgICAgICAzMgogI2RlZmluZSBFWElUX1JF QVNPTl9NV0FJVF9JTlNUUlVDVElPTiAgIDM2CisjZGVmaW5lIEVYSVRfUkVBU09OX1BBVVNF X0lOU1RSVUNUSU9OICAgNDAKICNkZWZpbmUgRVhJVF9SRUFTT05fTUNFX0RVUklOR19WTUVO VFJZCSA0MQogI2RlZmluZSBFWElUX1JFQVNPTl9UUFJfQkVMT1dfVEhSRVNIT0xEIDQzCiAj ZGVmaW5lIEVYSVRfUkVBU09OX0FQSUNfQUNDRVNTICAgICAgICAgNDQKZGlmZiAtdSBsaW51 eC0yLjYvYXJjaC94ODYva3ZtL3ZteC5jIGxpbnV4LTIuNi9hcmNoL3g4Ni9rdm0vdm14LmMK LS0tIGxpbnV4LTIuNi9hcmNoL3g4Ni9rdm0vdm14LmMKKysrIGxpbnV4LTIuNi9hcmNoL3g4 Ni9rdm0vdm14LmMKQEAgLTYxLDYgKzYxLDI1IEBACiBzdGF0aWMgaW50IF9fcmVhZF9tb3N0 bHkgZW11bGF0ZV9pbnZhbGlkX2d1ZXN0X3N0YXRlID0gMDsKIG1vZHVsZV9wYXJhbShlbXVs YXRlX2ludmFsaWRfZ3Vlc3Rfc3RhdGUsIGJvb2wsIFNfSVJVR08pOwogCisvKgorICogVGhl c2UgMiBwYXJhbWV0ZXJzIGFyZSB1c2VkIHRvIGNvbmZpZyB0aGUgY29udHJvbHMgZm9yIFBh dXNlLUxvb3AgRXhpdGluZzoKKyAqIHBsZV9nYXA6ICAgIHVwcGVyIGJvdW5kIG9uIHRoZSBh bW91bnQgb2YgdGltZSBiZXR3ZWVuIHR3byBzdWNjZXNzaXZlCisgKiAgICAgICAgICAgICBl eGVjdXRpb25zIG9mIFBBVVNFIGluIGEgbG9vcC4gQWxzbyBpbmRpY2F0ZSBpZiBwbGUgZW5h YmxlZC4KKyAqICAgICAgICAgICAgIEFjY29yZGluZyB0byB0ZXN0LCB0aGlzIHRpbWUgaXMg dXN1YWxseSBzbWFsbCB0aGFuIDQxIGN5Y2xlcy4KKyAqIHBsZV93aW5kb3c6IHVwcGVyIGJv dW5kIG9uIHRoZSBhbW91bnQgb2YgdGltZSBhIGd1ZXN0IGlzIGFsbG93ZWQgdG8gZXhlY3V0 ZQorICogICAgICAgICAgICAgaW4gYSBQQVVTRSBsb29wLiBUZXN0cyBpbmRpY2F0ZSB0aGF0 IG1vc3Qgc3BpbmxvY2tzIGFyZSBoZWxkIGZvcgorICogICAgICAgICAgICAgbGVzcyB0aGFu IDJeMTIgY3ljbGVzCisgKiBUaW1lIGlzIG1lYXN1cmVkIGJhc2VkIG9uIGEgY291bnRlciB0 aGF0IHJ1bnMgYXQgdGhlIHNhbWUgcmF0ZSBhcyB0aGUgVFNDLAorICogcmVmZXIgU0RNIHZv bHVtZSAzYiBzZWN0aW9uIDIxLjYuMTMgJiAyMi4xLjMuCisgKi8KKyNkZWZpbmUgS1ZNX1ZN WF9ERUZBVUxUX1BMRV9HQVAgICAgNDEKKyNkZWZpbmUgS1ZNX1ZNWF9ERUZBVUxUX1BMRV9X SU5ET1cgNDA5Ngorc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IHBsZV9nYXAgPSBLVk1fVk1Y X0RFRkFVTFRfUExFX0dBUDsKK21vZHVsZV9wYXJhbShwbGVfZ2FwLCBpbnQsIFNfSVJVR08p OworCitzdGF0aWMgaW50IF9fcmVhZF9tb3N0bHkgcGxlX3dpbmRvdyA9IEtWTV9WTVhfREVG QVVMVF9QTEVfV0lORE9XOworbW9kdWxlX3BhcmFtKHBsZV93aW5kb3csIGludCwgU19JUlVH Tyk7CisKIHN0cnVjdCB2bWNzIHsKIAl1MzIgcmV2aXNpb25faWQ7CiAJdTMyIGFib3J0OwpA QCAtMzIwLDYgKzMzOSwxMiBAQAogCQlTRUNPTkRBUllfRVhFQ19VTlJFU1RSSUNURURfR1VF U1Q7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGNwdV9oYXNfdm14X3BsZSh2b2lkKQorewor CXJldHVybiB2bWNzX2NvbmZpZy5jcHVfYmFzZWRfMm5kX2V4ZWNfY3RybCAmCisJCVNFQ09O REFSWV9FWEVDX1BBVVNFX0xPT1BfRVhJVElORzsKK30KKwogc3RhdGljIGlubGluZSBpbnQg dm1fbmVlZF92aXJ0dWFsaXplX2FwaWNfYWNjZXNzZXMoc3RydWN0IGt2bSAqa3ZtKQogewog CXJldHVybiBmbGV4cHJpb3JpdHlfZW5hYmxlZCAmJgpAQCAtMTI0MCw3ICsxMjY1LDggQEAK IAkJCVNFQ09OREFSWV9FWEVDX1dCSU5WRF9FWElUSU5HIHwKIAkJCVNFQ09OREFSWV9FWEVD X0VOQUJMRV9WUElEIHwKIAkJCVNFQ09OREFSWV9FWEVDX0VOQUJMRV9FUFQgfAotCQkJU0VD T05EQVJZX0VYRUNfVU5SRVNUUklDVEVEX0dVRVNUOworCQkJU0VDT05EQVJZX0VYRUNfVU5S RVNUUklDVEVEX0dVRVNUIHwKKwkJCVNFQ09OREFSWV9FWEVDX1BBVVNFX0xPT1BfRVhJVElO RzsKIAkJaWYgKGFkanVzdF92bXhfY29udHJvbHMobWluMiwgb3B0MiwKIAkJCQkJTVNSX0lB MzJfVk1YX1BST0NCQVNFRF9DVExTMiwKIAkJCQkJJl9jcHVfYmFzZWRfMm5kX2V4ZWNfY29u dHJvbCkgPCAwKQpAQCAtMTM4Nyw2ICsxNDEzLDkgQEAKIAlpZiAoZW5hYmxlX2VwdCAmJiAh Y3B1X2hhc192bXhfZXB0XzJtX3BhZ2UoKSkKIAkJa3ZtX2Rpc2FibGVfbGFyZ2VwYWdlcygp OwogCisJaWYgKCFjcHVfaGFzX3ZteF9wbGUoKSkKKwkJcGxlX2dhcCA9IDA7CisKIAlyZXR1 cm4gYWxsb2Nfa3ZtX2FyZWEoKTsKIH0KIApAQCAtMjMwMSw5ICsyMzMwLDE2IEBACiAJCQll eGVjX2NvbnRyb2wgJj0gflNFQ09OREFSWV9FWEVDX0VOQUJMRV9FUFQ7CiAJCWlmICghZW5h YmxlX3VucmVzdHJpY3RlZF9ndWVzdCkKIAkJCWV4ZWNfY29udHJvbCAmPSB+U0VDT05EQVJZ X0VYRUNfVU5SRVNUUklDVEVEX0dVRVNUOworCQlpZiAoIXBsZV9nYXApCisJCQlleGVjX2Nv bnRyb2wgJj0gflNFQ09OREFSWV9FWEVDX1BBVVNFX0xPT1BfRVhJVElORzsKIAkJdm1jc193 cml0ZTMyKFNFQ09OREFSWV9WTV9FWEVDX0NPTlRST0wsIGV4ZWNfY29udHJvbCk7CiAJfQog CisJaWYgKHBsZV9nYXApIHsKKwkJdm1jc193cml0ZTMyKFBMRV9HQVAsIHBsZV9nYXApOwor CQl2bWNzX3dyaXRlMzIoUExFX1dJTkRPVywgcGxlX3dpbmRvdyk7CisJfQorCiAJdm1jc193 cml0ZTMyKFBBR0VfRkFVTFRfRVJST1JfQ09ERV9NQVNLLCAhIWJ5cGFzc19ndWVzdF9wZik7 CiAJdm1jc193cml0ZTMyKFBBR0VfRkFVTFRfRVJST1JfQ09ERV9NQVRDSCwgISFieXBhc3Nf Z3Vlc3RfcGYpOwogCXZtY3Nfd3JpdGUzMihDUjNfVEFSR0VUX0NPVU5ULCAwKTsgICAgICAg ICAgIC8qIDIyLjIuMSAqLwpAQCAtMzM1MSw2ICszMzg3LDE4IEBACiB9CiAKIC8qCisgKiBJ bmRpY2F0ZSBhIGJ1c3ktd2FpdGluZyB2Y3B1IGluIHNwaW5sb2NrLiBXZSBkbyBub3QgZW5h YmxlIHRoZSBQQVVTRQorICogZXhpdGluZywgc28gb25seSBnZXQgaGVyZSBvbiBjcHUgd2l0 aCBQQVVTRS1Mb29wLUV4aXRpbmcuCisgKi8KK3N0YXRpYyBpbnQgaGFuZGxlX3BhdXNlKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSwKKwkJCQlzdHJ1Y3Qga3ZtX3J1biAqa3ZtX3J1bikKK3sK Kwlza2lwX2VtdWxhdGVkX2luc3RydWN0aW9uKHZjcHUpOworCXNjaGVkX2RlbGF5X3lpZWxk KDEwMDAwMDApOworCXJldHVybiAxOworfQorCisvKgogICogVGhlIGV4aXQgaGFuZGxlcnMg cmV0dXJuIDEgaWYgdGhlIGV4aXQgd2FzIGhhbmRsZWQgZnVsbHkgYW5kIGd1ZXN0IGV4ZWN1 dGlvbgogICogbWF5IHJlc3VtZS4gIE90aGVyd2lzZSB0aGV5IHNldCB0aGUga3ZtX3J1biBw YXJhbWV0ZXIgdG8gaW5kaWNhdGUgd2hhdCBuZWVkcwogICogdG8gYmUgZG9uZSB0byB1c2Vy c3BhY2UgYW5kIHJldHVybiAwLgpAQCAtMzM4Nyw2ICszNDM1LDcgQEAKIAlbRVhJVF9SRUFT T05fTUNFX0RVUklOR19WTUVOVFJZXSAgICAgID0gaGFuZGxlX21hY2hpbmVfY2hlY2ssCiAJ W0VYSVRfUkVBU09OX0VQVF9WSU9MQVRJT05dCSAgICAgID0gaGFuZGxlX2VwdF92aW9sYXRp b24sCiAJW0VYSVRfUkVBU09OX0VQVF9NSVNDT05GSUddICAgICAgICAgICA9IGhhbmRsZV9l cHRfbWlzY29uZmlnLAorCVtFWElUX1JFQVNPTl9QQVVTRV9JTlNUUlVDVElPTl0gICAgICAg PSBoYW5kbGVfcGF1c2UsCiB9OwogCiBzdGF0aWMgY29uc3QgaW50IGt2bV92bXhfbWF4X2V4 aXRfaGFuZGxlcnMgPQo= --------------080809050100030000070609--