From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v4] drm/i915/gtt: Avoid calling kcalloc in a loop when allocating temp bitmaps Date: Wed, 2 Sep 2015 17:46:38 +0200 Message-ID: <1441208798-12446-1-git-send-email-michal.winiarski@intel.com> References: <20150902152650.GO1367@phenom.ffwll.local> 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 21BF96E93B for ; Wed, 2 Sep 2015 08:46:46 -0700 (PDT) In-Reply-To: <20150902152650.GO1367@phenom.ffwll.local> 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, Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gZWFjaCBjYWxsIHRvIGdlbjhfYWxsb2NfdmFfcmFuZ2VfM2x2bCB3ZSdyZSBhbGxvY2F0aW5n IHRlbXBvcmFyeQpiaXRtYXBzIG5lZWRlZCBmb3IgZXJyb3IgaGFuZGxpbmcuIFVuZm9ydHVuYXRl bHksIHdoZW4gd2UgaW5jcmVhc2UKYWRkcmVzcyBzcGFjZSBzaXplICg0OGIgcHBndHQpIHdlIGRv IGFkZGl0aW9uYWwgKDUxMiAtIDQpIGNhbGxzIHRvCmtjYWxsb2MsIGluY3JlYXNpbmcgbGF0ZW5j eSBiZXR3ZWVuIGV4ZWMgYW5kIGFjdHVhbCBzdGFydCBvZiBleGVjdXRpb24Kb24gdGhlIEdQVS4g TGV0J3MganVzdCBkbyBhIHNpbmdsZSBrY2FsbG9jLCB3ZSBjYW4gYWxzbyBkcm9wIHRoZSBzaXpl CmZyb20gZnJlZV9nZW44X3RlbXBfYml0bWFwcyBzaW5jZSBpdCdzIG5vIGxvbmdlciB1c2VkLgoK djI6IFVzZSBHRlBfVEVNUE9SQVJZIHRvIG1ha2UgdGhlIGFsbG9jYXRpb25zIHJlY2xhaW1hYmxl Lgp2MzogRHJvcCB0aGUgMkQgYXJyYXksIGp1c3QgYWxsb2NhdGUgYSBzaW5nbGUgYmxvY2suCnY0 OiBSZWJhc2UgdG8gaGFuZGxlIGdlbjhfcHJlYWxsb2NhdGVfdG9wX2xldmVsX3BkcHMuCgpDYzog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBNaWthIEt1b3BwYWxh IDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IE1pY2hlbCBUaGllcnJ5IDxtaWNo ZWwudGhpZXJyeUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1pY2hhxYIgV2luaWFyc2tpIDxt aWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyB8IDQ5ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGJkYjdhZGMuLjg4ODVjZWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xMTY0LDEzICsxMTY0LDggQEAgdW53aW5kX291dDoK IH0KIAogc3RhdGljIHZvaWQKLWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHModW5zaWduZWQgbG9uZyAq bmV3X3BkcywgdW5zaWduZWQgbG9uZyAqKm5ld19wdHMsCi0JCSAgICAgICB1aW50MzJfdCBwZHBl cykKK2ZyZWVfZ2VuOF90ZW1wX2JpdG1hcHModW5zaWduZWQgbG9uZyAqbmV3X3BkcywgdW5zaWdu ZWQgbG9uZyAqbmV3X3B0cykKIHsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBwZHBlczsg aSsrKQotCQlrZnJlZShuZXdfcHRzW2ldKTsKIAlrZnJlZShuZXdfcHRzKTsKIAlrZnJlZShuZXdf cGRzKTsKIH0KQEAgLTExODAsMjkgKzExNzUsMjAgQEAgZnJlZV9nZW44X3RlbXBfYml0bWFwcyh1 bnNpZ25lZCBsb25nICpuZXdfcGRzLCB1bnNpZ25lZCBsb25nICoqbmV3X3B0cywKICAqLwogc3Rh dGljCiBpbnQgX19tdXN0X2NoZWNrIGFsbG9jX2dlbjhfdGVtcF9iaXRtYXBzKHVuc2lnbmVkIGxv bmcgKipuZXdfcGRzLAotCQkJCQkgdW5zaWduZWQgbG9uZyAqKipuZXdfcHRzLAorCQkJCQkgdW5z aWduZWQgbG9uZyAqKm5ld19wdHMsCiAJCQkJCSB1aW50MzJfdCBwZHBlcykKIHsKLQlpbnQgaTsK IAl1bnNpZ25lZCBsb25nICpwZHM7Ci0JdW5zaWduZWQgbG9uZyAqKnB0czsKKwl1bnNpZ25lZCBs b25nICpwdHM7CiAKLQlwZHMgPSBrY2FsbG9jKEJJVFNfVE9fTE9OR1MocGRwZXMpLCBzaXplb2Yo dW5zaWduZWQgbG9uZyksIEdGUF9LRVJORUwpOworCXBkcyA9IGtjYWxsb2MoQklUU19UT19MT05H UyhwZHBlcyksIHNpemVvZih1bnNpZ25lZCBsb25nKSwgR0ZQX1RFTVBPUkFSWSk7CiAJaWYgKCFw ZHMpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JcHRzID0ga2NhbGxvYyhwZHBlcywgc2l6ZW9mKHVu c2lnbmVkIGxvbmcgKiksIEdGUF9LRVJORUwpOwotCWlmICghcHRzKSB7Ci0JCWtmcmVlKHBkcyk7 Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBwZHBlczsgaSsrKSB7 Ci0JCXB0c1tpXSA9IGtjYWxsb2MoQklUU19UT19MT05HUyhJOTE1X1BERVMpLAotCQkJCSBzaXpl b2YodW5zaWduZWQgbG9uZyksIEdGUF9LRVJORUwpOwotCQlpZiAoIXB0c1tpXSkKLQkJCWdvdG8g ZXJyX291dDsKLQl9CisJcHRzID0ga2NhbGxvYyhwZHBlcyAqIEJJVFNfVE9fTE9OR1MoSTkxNV9Q REVTKSwKKwkJCXNpemVvZih1bnNpZ25lZCBsb25nKSwgR0ZQX1RFTVBPUkFSWSk7CisJaWYgKCFw dHMpCisJCWdvdG8gZXJyX291dDsKIAogCSpuZXdfcGRzID0gcGRzOwogCSpuZXdfcHRzID0gcHRz OwpAQCAtMTIxMCw3ICsxMTk2LDcgQEAgaW50IF9fbXVzdF9jaGVjayBhbGxvY19nZW44X3RlbXBf Yml0bWFwcyh1bnNpZ25lZCBsb25nICoqbmV3X3BkcywKIAlyZXR1cm4gMDsKIAogZXJyX291dDoK LQlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKHBkcywgcHRzLCBwZHBlcyk7CisJZnJlZV9nZW44X3Rl bXBfYml0bWFwcyhwZHMsIHB0cyk7CiAJcmV0dXJuIC1FTk9NRU07CiB9CiAKQEAgLTEyMzEsNyAr MTIxNyw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZV8zbHZsKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAogewogCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9CiAJ CWNvbnRhaW5lcl9vZih2bSwgc3RydWN0IGk5MTVfaHdfcHBndHQsIGJhc2UpOwotCXVuc2lnbmVk IGxvbmcgKm5ld19wYWdlX2RpcnMsICoqbmV3X3BhZ2VfdGFibGVzOworCXVuc2lnbmVkIGxvbmcg Km5ld19wYWdlX2RpcnMsICpuZXdfcGFnZV90YWJsZXM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHZtLT5kZXY7CiAJc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkOwogCWNvbnN0IHVp bnQ2NF90IG9yaWdfc3RhcnQgPSBzdGFydDsKQEAgLTEyNTgsMTQgKzEyNDQsMTQgQEAgc3RhdGlj IGludCBnZW44X2FsbG9jX3ZhX3JhbmdlXzNsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCiAJcmV0ID0gZ2VuOF9wcGd0dF9hbGxvY19wYWdlX2RpcmVjdG9yaWVzKHZtLCBwZHAsIHN0 YXJ0LCBsZW5ndGgsCiAJCQkJCQluZXdfcGFnZV9kaXJzKTsKIAlpZiAocmV0KSB7Ci0JCWZyZWVf Z2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7 CisJCWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVz KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKIAkvKiBGb3IgZXZlcnkgcGFnZSBkaXJlY3RvcnkgcmVm ZXJlbmNlZCwgYWxsb2NhdGUgcGFnZSB0YWJsZXMgKi8KIAlnZW44X2Zvcl9lYWNoX3BkcGUocGQs IHBkcCwgc3RhcnQsIGxlbmd0aCwgdGVtcCwgcGRwZSkgewogCQlyZXQgPSBnZW44X3BwZ3R0X2Fs bG9jX3BhZ2V0YWJzKHZtLCBwZCwgc3RhcnQsIGxlbmd0aCwKLQkJCQkJCW5ld19wYWdlX3RhYmxl c1twZHBlXSk7CisJCQkJCQluZXdfcGFnZV90YWJsZXMgKyBwZHBlICogQklUU19UT19MT05HUyhJ OTE1X1BERVMpKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gZXJyX291dDsKIAl9CkBAIC0xMzE2LDIw ICsxMzAyLDIxIEBAIHN0YXRpYyBpbnQgZ2VuOF9hbGxvY192YV9yYW5nZV8zbHZsKHN0cnVjdCBp OTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQlnZW44X3NldHVwX3BhZ2VfZGlyZWN0b3J5KHBwZ3R0 LCBwZHAsIHBkLCBwZHBlKTsKIAl9CiAKLQlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKG5ld19wYWdl X2RpcnMsIG5ld19wYWdlX3RhYmxlcywgcGRwZXMpOworCWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMo bmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzKTsKIAltYXJrX3RsYnNfZGlydHkocHBndHQp OwogCXJldHVybiAwOwogCiBlcnJfb3V0OgogCXdoaWxlIChwZHBlLS0pIHsKLQkJZm9yX2VhY2hf c2V0X2JpdCh0ZW1wLCBuZXdfcGFnZV90YWJsZXNbcGRwZV0sIEk5MTVfUERFUykKKwkJZm9yX2Vh Y2hfc2V0X2JpdCh0ZW1wLCBuZXdfcGFnZV90YWJsZXMgKyBwZHBlICoKKwkJCQlCSVRTX1RPX0xP TkdTKEk5MTVfUERFUyksIEk5MTVfUERFUykKIAkJCWZyZWVfcHQoZGV2LCBwZHAtPnBhZ2VfZGly ZWN0b3J5W3BkcGVdLT5wYWdlX3RhYmxlW3RlbXBdKTsKIAl9CiAKIAlmb3JfZWFjaF9zZXRfYml0 KHBkcGUsIG5ld19wYWdlX2RpcnMsIHBkcGVzKQogCQlmcmVlX3BkKGRldiwgcGRwLT5wYWdlX2Rp cmVjdG9yeVtwZHBlXSk7CiAKLQlmcmVlX2dlbjhfdGVtcF9iaXRtYXBzKG5ld19wYWdlX2RpcnMs IG5ld19wYWdlX3RhYmxlcywgcGRwZXMpOworCWZyZWVfZ2VuOF90ZW1wX2JpdG1hcHMobmV3X3Bh Z2VfZGlycywgbmV3X3BhZ2VfdGFibGVzKTsKIAltYXJrX3RsYnNfZGlydHkocHBndHQpOwogCXJl dHVybiByZXQ7CiB9CkBAIC0xNDgxLDcgKzE0NjgsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2R1bXBf cHBndHQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiAK IHN0YXRpYyBpbnQgZ2VuOF9wcmVhbGxvY2F0ZV90b3BfbGV2ZWxfcGRwcyhzdHJ1Y3QgaTkxNV9o d19wcGd0dCAqcHBndHQpCiB7Ci0JdW5zaWduZWQgbG9uZyAqbmV3X3BhZ2VfZGlycywgKipuZXdf cGFnZV90YWJsZXM7CisJdW5zaWduZWQgbG9uZyAqbmV3X3BhZ2VfZGlycywgKm5ld19wYWdlX3Rh YmxlczsKIAl1aW50MzJfdCBwZHBlcyA9IEk5MTVfUERQRVNfUEVSX1BEUChkZXYpOwogCWludCBy ZXQ7CiAKQEAgLTE1MDEsNyArMTQ4OCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcmVhbGxvY2F0ZV90 b3BfbGV2ZWxfcGRwcyhzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQpCiAJaWYgKCFyZXQpCiAJ CSpwcGd0dC0+cGRwLnVzZWRfcGRwZXMgPSAqbmV3X3BhZ2VfZGlyczsKIAotCWZyZWVfZ2VuOF90 ZW1wX2JpdG1hcHMobmV3X3BhZ2VfZGlycywgbmV3X3BhZ2VfdGFibGVzLCBwZHBlcyk7CisJZnJl ZV9nZW44X3RlbXBfYml0bWFwcyhuZXdfcGFnZV9kaXJzLCBuZXdfcGFnZV90YWJsZXMpOwogCiAJ cmV0dXJuIHJldDsKIH0KLS0gCjIuNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=