From mboxrd@z Thu Jan 1 00:00:00 1970 From: ville.syrjala@linux.intel.com Subject: [PATCH igt] tests/kms_fence_pin_leak: Exercise full ppgtt fence pin_count leak in the kernel Date: Mon, 12 May 2014 20:46:24 +0300 Message-ID: <1399916784-30841-1-git-send-email-ville.syrjala@linux.intel.com> References: <1392383167-19948-3-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 735686E935 for ; Mon, 12 May 2014 10:47:39 -0700 (PDT) In-Reply-To: <1392383167-19948-3-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBrZXJuZWwgZnVsbCBwcGd0dCBzdXBwb3J0IGhhcyBhIGJ1ZyB3aGVyZSBpdCBjYW4gZHJvcCBh IHBpbm5lZApmZW5jZSB0byB0aGUgZmxvb3IsIGhlbmNlIHdlIGxlYWsgdGhlIHBpbl9jb3VudCBh cyB0aGUgc3Vic2VxdWVudApmZW5jZSB1bnBpbiBiZWNvbWVzIGEgbm9wLiBXZSBjYW4gdHJpZ2dl ciBpdCBlYXNpbHkgYnkgdW5iaW5kaW5nIGEKYnVmZmVyIGZyb20gYSBwcGd0dCBhZGRyZXNzIHNw YWNlIHdoaWxlIHRoZSBidWZmZXIgaXMgc2ltdWx0YW5lb3NseQpiZWluZyB1c2VkIGZvciBzY2Fu b3V0LgoKTW9uaXRvciBpOTE1X2dlbV9mZW5jZV9yZWdzIHRvIGRldGVjdCB0aGUgbGVhayB3aGls ZSBwZXJmb3JtaW5nCnRoZSByZXF1aXJlZCBzZXQgb2Ygb3BlcmF0aW9ucyBpbiBhIGxvb3AuCgpT aWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgotLS0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgIHwgICAxICsKIHRlc3RzL2ttc19m ZW5jZV9waW5fbGVhay5jIHwgMjI0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyMjUgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL2ttc19mZW5jZV9waW5fbGVhay5jCgpkaWZmIC0tZ2l0IGEvdGVzdHMv TWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggNWQ1ZGM0Ni4u MzkzYzRhMiAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9N YWtlZmlsZS5zb3VyY2VzCkBAIC02MCw2ICs2MCw3IEBAIFRFU1RTX3Byb2dzX00gPSBcCiAJa21z X2FkZGZiIFwKIAlrbXNfY3Vyc29yX2NyYyBcCiAJa21zX2ZiY19jcmMgXAorCWttc19mZW5jZV9w aW5fbGVhayBcCiAJa21zX2ZsaXAgXAogCWttc19mbGlwX3RpbGluZyBcCiAJa21zX3BpcGVfY3Jj X2Jhc2ljIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mZW5jZV9waW5fbGVhay5jIGIvdGVzdHMv a21zX2ZlbmNlX3Bpbl9sZWFrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZjI5OTIxMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19mZW5jZV9waW5fbGVhay5jCkBA IC0wLDAgKzEsMjI0IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRp b24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUg aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAq IFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICov CisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5j bHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaWd0 X2ttcy5oIgorI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCisjaW5jbHVkZSAiaW50ZWxfY2hp cHNldC5oIgorCit0eXBlZGVmIHN0cnVjdCB7CisJaW50IGRybV9mZDsKKwl1aW50MzJfdCBkZXZp ZDsKKwlkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owor fSBkYXRhX3Q7CisKK3N0YXRpYyB2b2lkIGV4ZWNfbm9wKGRhdGFfdCAqZGF0YSwgdWludDMyX3Qg aGFuZGxlLCBkcm1faW50ZWxfY29udGV4dCAqY29udGV4dCkKK3sKKwlkcm1faW50ZWxfYm8gKmRz dDsKKwlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoOworCisJZHN0ID0gZ2VtX2hhbmRs ZV90b19saWJkcm1fYm8oZGF0YS0+YnVmbWdyLCBkYXRhLT5kcm1fZmQsICIiLCBoYW5kbGUpOwor CWlndF9hc3NlcnQoZHN0KTsKKworCWJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoZGF0 YS0+YnVmbWdyLCBkYXRhLT5kZXZpZCk7CisJaWd0X2Fzc2VydChiYXRjaCk7CisKKwkvKiBhZGQg dGhlIHJlbG9jIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIHdpbGwgdGhpbmsgd2Ugd3JpdGUgdG8g ZHN0ICovCisJQkVHSU5fQkFUQ0goNCk7CisJT1VUX0JBVENIKE1JX0JBVENIX0JVRkZFUl9FTkQp OworCU9VVF9CQVRDSChNSV9OT09QKTsKKwlPVVRfUkVMT0MoZHN0LCBJOTE1X0dFTV9ET01BSU5f UkVOREVSLCBJOTE1X0dFTV9ET01BSU5fUkVOREVSLCAwKTsKKwlPVVRfQkFUQ0goTUlfTk9PUCk7 CisJQURWQU5DRV9CQVRDSCgpOworCisJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250 ZXh0KGJhdGNoLCBjb250ZXh0KTsKKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVlKGJhdGNoKTsKKwor CWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShkc3QpOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50 IHRvdGFsX2ZlbmNlX3Bpbl9jb3VudCh2b2lkKQoreworCXVuc2lnbmVkIGludCBwaW5uZWQgPSAw OworCWNoYXIgYnVmWzEyOF07CisJRklMRSAqZjsKKworCWYgPSBpZ3RfZGVidWdmc19mb3Blbigi aTkxNV9nZW1fZmVuY2VfcmVncyIsICJyIik7CisJaWd0X2Fzc2VydChmKTsKKworCWZvciAoOzsp IHsKKwkJdW5zaWduZWQgaW50IHBpbl9jb3VudCA9IDA7CisJCWNoYXIgKnB0cjsKKworCQlwdHIg PSBmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmKTsKKwkJaWYgKCFwdHIpCisJCQlicmVhazsKKwor CQlpZiAoc3NjYW5mKHB0ciwgIkZlbmNlICUqdSwgcGluIGNvdW50ID0gJXUiLCAmcGluX2NvdW50 KSA9PSAxKQorCQkJcGlubmVkICs9IHBpbl9jb3VudDsKKwl9CisKKwlmY2xvc2UoZik7CisKKwly ZXR1cm4gcGlubmVkOworfQorCitzdGF0aWMgYm9vbCBydW5fc2luZ2xlX3Rlc3QoZGF0YV90ICpk YXRhLCBlbnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQpCit7CisJaWd0X2Rpc3Bs YXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5OworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsK KwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwl1bnNpZ25lZCBpbnQgcGluX2NvdW50OworCXN0cnVj dCBpZ3RfZmIgZmJbMl07CisJaW50IGk7CisKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwg cGlwZSk7CisJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOworCisJaWYgKCFvdXRwdXQtPnZh bGlkKSB7CisJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7CisJCWlndF9k aXNwbGF5X2NvbW1pdChkaXNwbGF5KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCW1vZGUgPSBp Z3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CisJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3Bs YW5lKG91dHB1dCwgSUdUX1BMQU5FX1BSSU1BUlkpOworCisJaWd0X2NyZWF0ZV9jb2xvcl9mYihk YXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCSAgICBEUk1f Rk9STUFUX1hSR0I4ODg4LAorCQkJICAgIHRydWUsIC8qIG5lZWQgYSBmZW5jZSBzbyBtdXN0IGJl IHRpbGVkICovCisJCQkgICAgMC4wLCAwLjAsIDAuMCwKKwkJCSAgICAmZmJbMF0pOworCWlndF9j cmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3Bs YXksCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCSAgICB0cnVlLCAvKiBuZWVkIGEg ZmVuY2Ugc28gbXVzdCBiZSB0aWxlZCAqLworCQkJICAgIDAuMCwgMC4wLCAwLjAsCisJCQkgICAg JmZiWzFdKTsKKworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmZiWzBdKTsKKwlpZ3RfZGlz cGxheV9jb21taXQoZGlzcGxheSk7CisKKwkvKiBzYW1wbGUgdGhlIGZlbmNlIHBpbl9jb3VudHMg bm93IHRoYXQgd2UgaGF2ZSBvbmUgc2Nhbm91dCBidWZmZXIgcGlubmVkICovCisJcGluX2NvdW50 ID0gdG90YWxfZmVuY2VfcGluX2NvdW50KCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNjQ7IGkrKykg eworCQlkcm1faW50ZWxfY29udGV4dCAqY3R4OworCisJCS8qCisJCSAqIExpbmsgZmIuZ2VtX2hh bmRsZSB0byB0aGUgcHBndHQgdm0gb2YgY3R4IHNvIHRoYXQgdGhlIGNvbnRleHQKKwkJICogZGVz dHJ1Y3Rpb24gd2lsbCB1bmJpbmQgdGhlIG9iaiBmcm9tIHRoZSBwcGd0dCB2bSBpbiBxdWVzdGlv bi4KKwkJICovCisJCWN0eCA9IGRybV9pbnRlbF9nZW1fY29udGV4dF9jcmVhdGUoZGF0YS0+YnVm bWdyKTsKKwkJaWd0X2Fzc2VydChjdHgpOworCQlleGVjX25vcChkYXRhLCBmYltpJjFdLmdlbV9o YW5kbGUsIGN0eCk7CisJCWRybV9pbnRlbF9nZW1fY29udGV4dF9kZXN0cm95KGN0eCk7CisKKwkJ LyogRm9yY2UgYSBjb250ZXh0IHN3aXRjaCB0byBtYWtlIHN1cmUgY3R4IGdldHMgZGVzdHJveWVk IGZvciByZWFsLiAqLworCQlleGVjX25vcChkYXRhLCBmYltpJjFdLmdlbV9oYW5kbGUsIE5VTEwp OworCisJCWdlbV9zeW5jKGRhdGEtPmRybV9mZCwgZmJbaSYxXS5nZW1faGFuZGxlKTsKKworCQkv KgorCQkgKiBQaW4gdGhlIG5ldyBidWZmZXIgYW5kIHVucGluIHRoZSBvbGQgYnVmZmVyIGZyb20g ZGlzcGxheS4gSWYKKwkJICogdGhlIGtlcm5lbCBpcyBidWdneSB0aGUgcHBndHQgdW5iaW5kIHdp bGwgaGF2ZSBkcm9wcGVkIHRoZQorCQkgKiBmZW5jZSBmb3IgdGhlIG9sZCBidWZmZXIsIGFuZCBu b3cgdGhlIGRpc3BsYXkgY29kZSB3aWxsIHRyeQorCQkgKiB0byB1bnBpbiBvbmx5IHRvIGZpbmQg bm8gZmVuY2UgdGhlcmUuIFNvIHRoZSBwaW5fY291bnQgd2lsbCBsZWFrLgorCQkgKi8KKwkJaWd0 X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZmJbIShpJjEpXSk7CisJCWlndF9kaXNwbGF5X2NvbW1p dChkaXNwbGF5KTsKKworCQkvKgorCQkgKiBXZSBhbHdheXMgaGF2ZSBleGFjdGx5IG9uZSBzY2Fu b3V0IGJ1ZmZlciwgc28gdGhlIGZlbmNlIHBpbl9jb3VudAorCQkgKiBzaG91bGQgcmVtYWluIHN0 YXRpYy4gRmFpbCB0aGUgdGVzdCBpZiB3ZSBkZXRlY3QgYSBsZWFrLgorCQkgKi8KKwkJaWd0X2Fz c2VydChwaW5fY291bnQgPT0gdG90YWxfZmVuY2VfcGluX2NvdW50KCkpOworCisJCXByaW50Zigi LiIpOworCQlmZmx1c2goc3Rkb3V0KTsKKwl9CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnks IE5VTEwpOworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7CisJaWd0X2Rp c3BsYXlfY29tbWl0KGRpc3BsYXkpOworCisJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZm YlsxXSk7CisJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZmYlswXSk7CisKKwlwcmludGYo IlxuIik7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgcnVuX3Rlc3QoZGF0YV90 ICpkYXRhKQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlp Z3Rfb3V0cHV0X3QgKm91dHB1dDsKKwllbnVtIHBpcGUgcDsKKworCWZvcl9lYWNoX2Nvbm5lY3Rl ZF9vdXRwdXQoZGlzcGxheSwgb3V0cHV0KSB7CisJCWZvciAocCA9IDA7IHAgPCBpZ3RfZGlzcGxh eV9nZXRfbl9waXBlcyhkaXNwbGF5KTsgcCsrKSB7CisJCQlpZiAocnVuX3NpbmdsZV90ZXN0KGRh dGEsIHAsIG91dHB1dCkpCisJCQkJcmV0dXJuOyAvKiBvbmUgdGltZSBvdWdodCB0byBiZSBlbm91 Z2ggKi8KKwkJfQorCX0KKworCWlndF9za2lwKCJubyB2YWxpZCBjcnRjL2Nvbm5lY3RvciBjb21i aW5hdGlvbnMgZm91bmRcbiIpOworfQorCitpZ3Rfc2ltcGxlX21haW4KK3sKKwlkcm1faW50ZWxf Y29udGV4dCAqY3R4OworCWRhdGFfdCBkYXRhID0ge307CisKKwlpZ3Rfc2tpcF9vbl9zaW11bGF0 aW9uKCk7CisKKwlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2FueSgpOworCisJZGF0YS5kZXZpZCA9 IGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS5kcm1fZmQpOworCisJaWd0X3NldF92dF9ncmFwaGlj c19tb2RlKCk7CisKKwlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0 YS5kcm1fZmQsIDQwOTYpOworCWlndF9hc3NlcnQoZGF0YS5idWZtZ3IpOworCWRybV9pbnRlbF9i dWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShkYXRhLmJ1Zm1ncik7CisKKwlpZ3RfZGlzcGxheV9pbml0 KCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKKworCWN0eCA9IGRybV9pbnRlbF9nZW1fY29u dGV4dF9jcmVhdGUoZGF0YS5idWZtZ3IpOworCWlndF9yZXF1aXJlKGN0eCk7CisJZHJtX2ludGVs X2dlbV9jb250ZXh0X2Rlc3Ryb3koY3R4KTsKKworCXJ1bl90ZXN0KCZkYXRhKTsKKworCWRybV9p bnRlbF9idWZtZ3JfZGVzdHJveShkYXRhLmJ1Zm1ncik7CisJaWd0X2Rpc3BsYXlfZmluaSgmZGF0 YS5kaXNwbGF5KTsKK30KLS0gCjEuOC4zLjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==