From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 12/12] fuzz/x86_emulate: Add an option to limit the number of instructions executed Date: Tue, 10 Oct 2017 17:20:11 +0100 Message-ID: <20171010162011.9629-12-george.dunlap@citrix.com> References: <20171010162011.9629-1-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e229S-0000xA-Ov for xen-devel@lists.xenproject.org; Tue, 10 Oct 2017 21:33:22 +0000 In-Reply-To: <20171010162011.9629-1-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson , Wei Liu , George Dunlap , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org QUZMIGNvbnNpZGVycyBhIHRlc3RjYXNlIHRvIGJlIGEgdXNlZnVsIGFkZGl0aW9uIG5vdCBvbmx5 IGlmIHRoZXJlIGFyZQp0dXBsZXMgZXhlcmNpc2VkIGJ5IHRoYXQgdGVzdGNhc2Ugd2hpY2ggd2Vy ZSBub3QgZXhlcmNpc2VkIG90aGVyd2lzZSwKYnV0IGFsc28gaWYgdGhlICpudW1iZXIqIG9mIHRp bWVzIGFuIGluZGl2aWR1YWwgdHVwbGUgaXMgZXhlcmNpc2VkCmNoYW5nZXMgc2lnbmlmaWNhbnRs eTsgaW4gcGFydGljdWxhciwgaWYgdGhlIG51bWJlciBvZiB0aGUgaGlnaGVzdApub24temVybyBi aXQgY2hhbmdlcyAoaS5lLiwgaWYgaXQgaXMgcnVuIDEsIDItMywgNC03LCA4LTE1LCAmYykuCgpP bmUgc2ltcGxlIHdheSB0byBpbmNyZWFzZSB0aGVzZSBzdGF0cyBpdCB0byBleGVjdXRlIHRoZSBz YW1lIChvcgpzaW1pbGFyKSBpbnN0cnVjdGlvbnMgbXVsdGlwbGUgdGltZXM6IElmIGV4ZWN1dGlu ZyBhIGdpdmVuIGluc3RydWN0aW9uCm9uY2UgaGl0cyBhIHBhcnRpY3VsYXIgdHVwbGUgMiB0aW1l cywgZXhlY3V0aW5nIGl0IHR3aWNlIHdpbGwgaGl0IHRoZQp0dXBsZSA0IHRpbWVzLCBmb3VyIHRp bWVzIHdpbGwgaGl0IHRoZSB0dXBsZSA4IHRpbWVzLCBhbmQgc28gb24uICBBbGwKb2YgdGhlc2Ug d2lsbCBsb29rIGRpZmZlcmVudCB0byBBRkwsIGFuZCBzbyBpdCBpcyBsaWtlbHkgdGhhdCBtYW55 IG9mCnRoZSAidW5pcXVlIHRlc3QgY2FzZXMiIHdpbGwgc2ltcGx5IGJlIHRoZSBzYW1lIGluc3Ry dWN0aW9uIHJlcGVhdGVkCnBvd2VycyBvZiAyIHRpbWVzIHVudGlsIHRoZSB0dXBsZSBjb3VudHMg bWF4IG91dCAoYXQgMTI4KS4KCkl0IGlzIHVubGlrZWx5IHRoYXQgZXhlY3V0aW5nIGEgc2luZ2xl IGluc3RydWN0aW9uIG1vcmUgdGhhbiBhIGhhbmRmdWwKb2YgdGltZXMgd2lsbCBnZW5lcmF0ZSBh bnkgc3RhdGUgd2UgYWN0dWFsbHkgY2FyZSBhYm91dDsgYnV0IHN1Y2ggbG9uZwp0ZXN0Y2FzZXMg dGFrZSBleHBvbmVudGlhbGx5IGxvbmdlciB0byBmdXp6OiB0aGUgZnV6emVyIHNwZW5kcyBtb3Jl CnRpbWUgZmxpcHBpbmcgYml0cyBsb29raW5nIGZvciBtZWFuaW5nZnVsIGNoYW5nZXMsIGFuZCBl YWNoIGV4ZWN1dGlvbgp0YWtlcyBsb25nZXIgYmVjYXVzZSBpdCBpcyBkb2luZyBtb3JlIHRoaW5n cy4gIFNvIGxvbmcgcGF0aHMgd2hpY2ggYWRkCm5vdGhpbmcgdG8gdGhlIGFjdHVhbCBjb2RlIGNv dmVyYWdlIGJ1dCBlZmZlY3RpdmVseSAiZGlzdHJhY3QiIHRoZQpmdXp6ZXIsIG1ha2luZyBpdCBs ZXNzIGVmZmVjdGl2ZS4KCkV4cGVyaW1lbnRzIGhhdmUgc2hvd24gdGhhdCBub3QgYWxsb3dpbmcg aW5maW5pdGUgbnVtYmVyIG9mCmluc3RydWN0aW9uIHJldHJpZXMgZm9yIHRoZSBvbGQgKG5vbi1j b21wYWN0KSBmb3JtYXQgZG9lcyBpbmRlZWQgc3BlZWQKdXAgYW5kIGluY3JlYXNlIGNvZGUgY292 ZXJhZ2UuICBIb3dldmVyLCBpdCBoYXMgYWxzbyBzaG93biB0aGF0IG9uIHRoZQpuZXcsIG1vcmUg Y29tcGFjdCBmb3JtYXQsIGhhdmluZyBubyBpbnN0cnVjdGlvbiBsaW1pdCBjYXVzZXMgdGhlIGhp Z2hlc3QKdGhyb3VnaHB1dCBpbiBjb2RlIGNvdmVyYWdlLgoKU28gbGVhdmUgdGhlIG9wdGlvbiBp biwgYnV0IGhhdmUgaXQgZGVmYXVsdCB0byAwIChubyBsaW1pdCkuCgpTaWduZWQtb2ZmLWJ5OiBH ZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Ci0tLQp2MzoKLSBDaGFuZ2Ug b3B0X2luc3RydWN0aW9uX2xpbWl0IHRvIHVuc2lnbmVkLCBkZWZhdWx0IHRvIFVJTlRfTUFYCi0g U2ltcGxpZnkgbGltaXQgY2hlY2tpbmcgKG5vdyB0aGF0IHRoZSBhY3R1YWwgdmFyaWFibGUgaXRz ZWxmIHdpbGwgbmV2ZXIgYmUgMCkKLSBDaGFuZ2UgY291bnRlciB0byB1bnNpZ25lZAotIFVwZGF0 ZSBjaGFuZ2Vsb2cgdG8gdHJ5IHRvIGJlIGEgYml0IG1vcmUgY2xlYXIKCgpDQzogSWFuIEphY2tz b24gPGlhbi5qYWNrc29uQGNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXgu Y29tPgpDQzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KLS0tCiB0b29scy9mdXp6L3g4Nl9pbnN0cnVj dGlvbl9lbXVsYXRvci9hZmwtaGFybmVzcy5jIHwgMTEgKysrKysrKysrKy0KIHRvb2xzL2Z1enov eDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jICAgfCAgNSArKysrLQogdG9vbHMv ZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmggICB8ICAxICsKIDMgZmls ZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9hZmwtaGFybmVzcy5jIGIvdG9v bHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvYWZsLWhhcm5lc3MuYwppbmRleCA0YTU1 YWMzYzNmLi43ZDA5Y2MyOWM2IDEwMDY0NAotLS0gYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlv bl9lbXVsYXRvci9hZmwtaGFybmVzcy5jCisrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9u X2VtdWxhdG9yL2FmbC1oYXJuZXNzLmMKQEAgLTEsNCArMSw1IEBACiAjaW5jbHVkZSA8YXNzZXJ0 Lmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5jbHVkZSA8 c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KQEAgLTI0LDExICsyNSwxMyBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICBPUFRfTUlOX1NJWkUsCiAgICAg ICAgICAgICBPUFRfQ09NUEFDVCwKICAgICAgICAgICAgIE9QVF9SRVJVTiwKKyAgICAgICAgICAg IE9QVF9JTlNUUlVDVElPTl9MSU1JVCwKICAgICAgICAgfTsKICAgICAgICAgc3RhdGljIGNvbnN0 IHN0cnVjdCBvcHRpb24gbG9wdHNbXSA9IHsKICAgICAgICAgICAgIHsgIm1pbi1pbnB1dC1zaXpl Iiwgbm9fYXJndW1lbnQsIE5VTEwsIE9QVF9NSU5fU0laRSB9LAogICAgICAgICAgICAgeyAiY29t cGFjdCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRfQ09NUEFDVCB9LAogICAgICAgICAg ICAgeyAicmVydW4iLCBub19hcmd1bWVudCwgTlVMTCwgT1BUX1JFUlVOIH0sCisgICAgICAgICAg ICB7ICJpbnN0cnVjdGlvbi1saW1pdCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRfSU5T VFJVQ1RJT05fTElNSVQgfSwKICAgICAgICAgICAgIHsgMCwgMCwgMCwgMCB9CiAgICAgICAgIH07 CiAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmdfb25seShhcmdjLCBhcmd2LCAiIiwgbG9wdHMs IE5VTEwpOwpAQCAtNTEsOCArNTQsMTQgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogICAgICAgICAgICAgb3B0X3JlcnVuID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogCisg ICAgICAgIGNhc2UgT1BUX0lOU1RSVUNUSU9OX0xJTUlUOgorICAgICAgICAgICAgb3B0X2luc3Ry dWN0aW9uX2xpbWl0ID0gYXRvaShvcHRhcmcpOworICAgICAgICAgICAgaWYgKCAhb3B0X2luc3Ry dWN0aW9uX2xpbWl0ICkKKyAgICAgICAgICAgICAgICBvcHRfaW5zdHJ1Y3Rpb25fbGltaXQgPSBV SU5UX01BWDsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgJz8nOgotICAgICAg ICAgICAgcHJpbnRmKCJVc2FnZTogJXMgWy0tY29tcGFjdD0wfDFdIFstLXJlcnVuXSAkRklMRSBb JEZJTEUuLi5dIHwgWy0tbWluLWlucHV0LXNpemVdXG4iLCBhcmd2WzBdKTsKKyAgICAgICAgICAg IHByaW50ZigiVXNhZ2U6ICVzIFstLWNvbXBhY3Q9MHwxXSBbLS1yZXJ1bl0gWy0taW5zdHJ1Y3Rp b24tbGltaXQ9Tl0gJEZJTEUgWyRGSUxFLi4uXSB8IFstLW1pbi1pbnB1dC1zaXplXVxuIiwgYXJn dlswXSk7CiAgICAgICAgICAgICBleGl0KC0xKTsKICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYg LS1naXQgYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYyBi L3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCmluZGV4IDc5 ZGQzNmVjMzAuLjhhYWVjOTM5NzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0 aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCisrKyBiL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9u X2VtdWxhdG9yL2Z1enotZW11bC5jCkBAIC05NjksMTAgKzk2OSwxMyBAQCBzdGF0aWMgdm9pZCBz ZXR1cF9mdXp6X3N0YXRlKHN0cnVjdCBmdXp6X3N0YXRlICpzdGF0ZSwgY29uc3Qgdm9pZCAqZGF0 YV9wLCBzaXplXwogICAgIHN0YXRlLT5kYXRhX251bSA9IHNpemU7CiB9CiAKK3Vuc2lnbmVkIGlu dCBvcHRfaW5zdHJ1Y3Rpb25fbGltaXQgPSBVSU5UX01BWDsKKwogc3RhdGljIGludCBydW50ZXN0 KHN0cnVjdCBmdXp6X3N0YXRlICpzdGF0ZSkgewogICAgIGludCByYzsKIAogICAgIHN0cnVjdCB4 ODZfZW11bGF0ZV9jdHh0ICpjdHh0ID0gJnN0YXRlLT5jdHh0OworICAgIHVuc2lnbmVkIGludCBp Y291bnQgPSAwOwogICAgIAogICAgIHN0YXRlLT5vcHMgPSBhbGxfZnV6emVyX29wczsKIApAQCAt OTk2LDcgKzk5OSw3IEBAIHN0YXRpYyBpbnQgcnVudGVzdChzdHJ1Y3QgZnV6el9zdGF0ZSAqc3Rh dGUpIHsKIAogICAgICAgICByYyA9IHg4Nl9lbXVsYXRlKGN0eHQsICZzdGF0ZS0+b3BzKTsKICAg ICAgICAgcHJpbnRmKCJFbXVsYXRpb24gcmVzdWx0OiAlZFxuIiwgcmMpOwotICAgIH0gd2hpbGUg KCByYyA9PSBYODZFTVVMX09LQVkgKTsKKyAgICB9IHdoaWxlICggcmMgPT0gWDg2RU1VTF9PS0FZ ICYmICsraWNvdW50IDwgb3B0X2luc3RydWN0aW9uX2xpbWl0ICk7CiAKICAgICBzYXZlX2ZwdV9z dGF0ZShzdGF0ZS0+ZnhzYXZlKTsKICAgICAKZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5oIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rp b25fZW11bGF0b3IvZnV6ei1lbXVsLmgKaW5kZXggNDg2M2JmMjE2Ni4uNzQ2ZTFiNTQyZCAxMDA2 NDQKLS0tIGEvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmgK KysrIGIvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmgKQEAg LTcsNiArNyw3IEBAIGV4dGVybiB1bnNpZ25lZCBpbnQgZnV6el9taW5pbWFsX2lucHV0X3NpemUo dm9pZCk7CiAKIGV4dGVybiBib29sIG9wdF9jb21wYWN0OwogZXh0ZXJuIGJvb2wgb3B0X3JlcnVu OworZXh0ZXJuIHVuc2lnbmVkIGludCBvcHRfaW5zdHJ1Y3Rpb25fbGltaXQ7CiAKICNkZWZpbmUg SU5QVVRfU0laRSAgNDA5NgogCi0tIAoyLjE0LjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK