From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH 4/5] xen-blkfront: pre-allocate pages for requests Date: Mon, 18 Mar 2013 17:49:35 +0100 Message-ID: <1363625376-35612-5-git-send-email-roger.pau__32576.5240508646$1363625579$gmane$org@citrix.com> References: <1363625376-35612-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1363625376-35612-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org, linux-kernel@vger.kernel.org Cc: Konrad Rzeszutek Wilk , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VGhpcyBwcmV2ZW50cyB1cyBmcm9tIGhhdmluZyB0byBjYWxsIGFsbG9jX3BhZ2Ugd2hpbGUgd2Ug YXJlIHByZXBhcmluZwp0aGUgcmVxdWVzdC4gU2luY2UgYmxrZnJvbnQgd2FzIGNhbGxpbmcgYWxs b2NfcGFnZSB3aXRoIGEgc3BpbmxvY2sKaGVsZCB3ZSB1c2VkIEdGUF9BVE9NSUMsIHdoaWNoIGNh biBmYWlsIGlmIHdlIGFyZSByZXF1ZXN0aW5nIGEgbG90IG9mCnBhZ2VzIHNpbmNlIGl0IGlzIHVz aW5nIHRoZSBlbWVyZ2VuY3kgbWVtb3J5IHBvb2xzLgoKQWxsb2NhdGluZyBhbGwgdGhlIHBhZ2Vz IGF0IGluaXQgcHJldmVudHMgdXMgZnJvbSBoYXZpbmcgdG8gY2FsbAphbGxvY19wYWdlLCB0aHVz IHByZXZlbnRpbmcgcG9zc2libGUgZmFpbHVyZXMuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUg TW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8 a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCi0tLQpD aGFuZ2VzIHNpbmNlIFJGQzoKICogTW92ZSBwYWdlIGJ1ZmZlciBpbml0aWFsaXphdGlvbiB0byBz ZXR1cF9ibGtyaW5nCi0tLQogZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyB8ICAxMjAgKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmlsZXMgY2hhbmdlZCwg NzkgaW5zZXJ0aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9i bG9jay94ZW4tYmxrZnJvbnQuYyBiL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKaW5kZXgg OTczMjRjZDEuLmM2NDA0MzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250 LmMKKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwpAQCAtMTY1LDYgKzE2NSw2OSBA QCBzdGF0aWMgaW50IGFkZF9pZF90b19mcmVlbGlzdChzdHJ1Y3QgYmxrZnJvbnRfaW5mbyAqaW5m bywKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBmaWxsX2dyYW50X2J1ZmZlcihzdHJ1Y3Qg YmxrZnJvbnRfaW5mbyAqaW5mbywgaW50IG51bSkKK3sKKwlzdHJ1Y3QgcGFnZSAqZ3JhbnRlZF9w YWdlOworCXN0cnVjdCBncmFudCAqZ250X2xpc3RfZW50cnksICpuOworCWludCBpID0gMDsKKwor CXdoaWxlKGkgPCBudW0pIHsKKwkJZ250X2xpc3RfZW50cnkgPSBremFsbG9jKHNpemVvZihzdHJ1 Y3QgZ3JhbnQpLCBHRlBfTk9JTyk7CisJCWlmICghZ250X2xpc3RfZW50cnkpCisJCQlnb3RvIG91 dF9vZl9tZW1vcnk7CisKKwkJZ3JhbnRlZF9wYWdlID0gYWxsb2NfcGFnZShHRlBfTk9JTyk7CisJ CWlmICghZ3JhbnRlZF9wYWdlKSB7CisJCQlrZnJlZShnbnRfbGlzdF9lbnRyeSk7CisJCQlnb3Rv IG91dF9vZl9tZW1vcnk7CisJCX0KKworCQlnbnRfbGlzdF9lbnRyeS0+cGZuID0gcGFnZV90b19w Zm4oZ3JhbnRlZF9wYWdlKTsKKwkJZ250X2xpc3RfZW50cnktPmdyZWYgPSBHUkFOVF9JTlZBTElE X1JFRjsKKwkJbGlzdF9hZGQoJmdudF9saXN0X2VudHJ5LT5ub2RlLCAmaW5mby0+cGVyc2lzdGVu dF9nbnRzKTsKKwkJaSsrOworCX0KKworCXJldHVybiAwOworCitvdXRfb2ZfbWVtb3J5OgorCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShnbnRfbGlzdF9lbnRyeSwgbiwKKwkgICAgICAgICAgICAg ICAgICAgICAgICAgJmluZm8tPnBlcnNpc3RlbnRfZ250cywgbm9kZSkgeworCQlsaXN0X2RlbCgm Z250X2xpc3RfZW50cnktPm5vZGUpOworCQlfX2ZyZWVfcGFnZShwZm5fdG9fcGFnZShnbnRfbGlz dF9lbnRyeS0+cGZuKSk7CisJCWtmcmVlKGdudF9saXN0X2VudHJ5KTsKKwkJaS0tOworCX0KKwlC VUdfT04oaSAhPSAwKTsKKwlyZXR1cm4gLUVOT01FTTsKK30KKworc3RhdGljIHN0cnVjdCBncmFu dCAqZ2V0X2dyYW50KGdyYW50X3JlZl90ICpncmVmX2hlYWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8pCit7CisJc3RydWN0IGdyYW50 ICpnbnRfbGlzdF9lbnRyeTsKKwl1bnNpZ25lZCBsb25nIGJ1ZmZlcl9tZm47CisKKwlCVUdfT04o bGlzdF9lbXB0eSgmaW5mby0+cGVyc2lzdGVudF9nbnRzKSk7CisJZ250X2xpc3RfZW50cnkgPSBs aXN0X2ZpcnN0X2VudHJ5KCZpbmZvLT5wZXJzaXN0ZW50X2dudHMsIHN0cnVjdCBncmFudCwKKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSk7CisJbGlzdF9kZWwoJmdudF9s aXN0X2VudHJ5LT5ub2RlKTsKKworCWlmIChnbnRfbGlzdF9lbnRyeS0+Z3JlZiAhPSBHUkFOVF9J TlZBTElEX1JFRikgeworCQlpbmZvLT5wZXJzaXN0ZW50X2dudHNfYy0tOworCQlyZXR1cm4gZ250 X2xpc3RfZW50cnk7CisJfQorCisJLyogQXNzaWduIGEgZ3JlZiB0byB0aGlzIHBhZ2UgKi8KKwln bnRfbGlzdF9lbnRyeS0+Z3JlZiA9IGdudHRhYl9jbGFpbV9ncmFudF9yZWZlcmVuY2UoZ3JlZl9o ZWFkKTsKKwlCVUdfT04oZ250X2xpc3RfZW50cnktPmdyZWYgPT0gLUVOT1NQQyk7CisJYnVmZmVy X21mbiA9IHBmbl90b19tZm4oZ250X2xpc3RfZW50cnktPnBmbik7CisJZ250dGFiX2dyYW50X2Zv cmVpZ25fYWNjZXNzX3JlZihnbnRfbGlzdF9lbnRyeS0+Z3JlZiwKKwkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluZm8tPnhiZGV2LT5vdGhlcmVuZF9pZCwKKwkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9tZm4sIDApOworCXJldHVybiBnbnRfbGlzdF9lbnRy eTsKK30KKwogc3RhdGljIGNvbnN0IGNoYXIgKm9wX25hbWUoaW50IG9wKQogewogCXN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBuYW1lc1tdID0gewpAQCAtMzA2LDcgKzM2OSw2IEBAIHN0YXRpYyBp bnQgYmxraWZfcXVldWVfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdCAqcmVxKQogCSAqLwogCWJvb2wg bmV3X3BlcnNpc3RlbnRfZ250czsKIAlncmFudF9yZWZfdCBncmVmX2hlYWQ7Ci0Jc3RydWN0IHBh Z2UgKmdyYW50ZWRfcGFnZTsKIAlzdHJ1Y3QgZ3JhbnQgKmdudF9saXN0X2VudHJ5ID0gTlVMTDsK IAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwogCkBAIC0zNzAsNDIgKzQzMiw5IEBAIHN0YXRpYyBp bnQgYmxraWZfcXVldWVfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdCAqcmVxKQogCQkJZnNlY3QgPSBz Zy0+b2Zmc2V0ID4+IDk7CiAJCQlsc2VjdCA9IGZzZWN0ICsgKHNnLT5sZW5ndGggPj4gOSkgLSAx OwogCi0JCQlpZiAoaW5mby0+cGVyc2lzdGVudF9nbnRzX2MpIHsKLQkJCQlCVUdfT04obGlzdF9l bXB0eSgmaW5mby0+cGVyc2lzdGVudF9nbnRzKSk7Ci0JCQkJZ250X2xpc3RfZW50cnkgPSBsaXN0 X2ZpcnN0X2VudHJ5KAotCQkJCSAgICAgICAgICAgICAgICAgICAgICAmaW5mby0+cGVyc2lzdGVu dF9nbnRzLAotCQkJCSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ3JhbnQsIG5vZGUpOwot CQkJCWxpc3RfZGVsKCZnbnRfbGlzdF9lbnRyeS0+bm9kZSk7Ci0KLQkJCQlyZWYgPSBnbnRfbGlz dF9lbnRyeS0+Z3JlZjsKLQkJCQlidWZmZXJfbWZuID0gcGZuX3RvX21mbihnbnRfbGlzdF9lbnRy eS0+cGZuKTsKLQkJCQlpbmZvLT5wZXJzaXN0ZW50X2dudHNfYy0tOwotCQkJfSBlbHNlIHsKLQkJ CQlyZWYgPSBnbnR0YWJfY2xhaW1fZ3JhbnRfcmVmZXJlbmNlKCZncmVmX2hlYWQpOwotCQkJCUJV R19PTihyZWYgPT0gLUVOT1NQQyk7Ci0KLQkJCQlnbnRfbGlzdF9lbnRyeSA9Ci0JCQkJCWttYWxs b2Moc2l6ZW9mKHN0cnVjdCBncmFudCksCi0JCQkJCQkJIEdGUF9BVE9NSUMpOwotCQkJCWlmICgh Z250X2xpc3RfZW50cnkpCi0JCQkJCXJldHVybiAtRU5PTUVNOwotCi0JCQkJZ3JhbnRlZF9wYWdl ID0gYWxsb2NfcGFnZShHRlBfQVRPTUlDKTsKLQkJCQlpZiAoIWdyYW50ZWRfcGFnZSkgewotCQkJ CQlrZnJlZShnbnRfbGlzdF9lbnRyeSk7Ci0JCQkJCXJldHVybiAtRU5PTUVNOwotCQkJCX0KLQot CQkJCWdudF9saXN0X2VudHJ5LT5wZm4gPQotCQkJCQlwYWdlX3RvX3BmbihncmFudGVkX3BhZ2Up OwotCQkJCWdudF9saXN0X2VudHJ5LT5ncmVmID0gcmVmOwotCi0JCQkJYnVmZmVyX21mbiA9IHBm bl90b19tZm4ocGFnZV90b19wZm4oCi0JCQkJCQkJCWdyYW50ZWRfcGFnZSkpOwotCQkJCWdudHRh Yl9ncmFudF9mb3JlaWduX2FjY2Vzc19yZWYocmVmLAotCQkJCQlpbmZvLT54YmRldi0+b3RoZXJl bmRfaWQsCi0JCQkJCWJ1ZmZlcl9tZm4sIDApOwotCQkJfQorCQkJZ250X2xpc3RfZW50cnkgPSBn ZXRfZ3JhbnQoJmdyZWZfaGVhZCwgaW5mbyk7CisJCQlyZWYgPSBnbnRfbGlzdF9lbnRyeS0+Z3Jl ZjsKKwkJCWJ1ZmZlcl9tZm4gPSBwZm5fdG9fbWZuKGdudF9saXN0X2VudHJ5LT5wZm4pOwogCiAJ CQlpbmZvLT5zaGFkb3dbaWRdLmdyYW50c191c2VkW2ldID0gZ250X2xpc3RfZW50cnk7CiAKQEAg LTgwMywxNyArODMyLDIwIEBAIHN0YXRpYyB2b2lkIGJsa2lmX2ZyZWUoc3RydWN0IGJsa2Zyb250 X2luZm8gKmluZm8sIGludCBzdXNwZW5kKQogCQlibGtfc3RvcF9xdWV1ZShpbmZvLT5ycSk7CiAK IAkvKiBSZW1vdmUgYWxsIHBlcnNpc3RlbnQgZ3JhbnRzICovCi0JaWYgKGluZm8tPnBlcnNpc3Rl bnRfZ250c19jKSB7CisJaWYgKCFsaXN0X2VtcHR5KCZpbmZvLT5wZXJzaXN0ZW50X2dudHMpKSB7 CiAJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwZXJzaXN0ZW50X2dudCwgbiwKIAkJICAgICAg ICAgICAgICAgICAgICAgICAgICZpbmZvLT5wZXJzaXN0ZW50X2dudHMsIG5vZGUpIHsKIAkJCWxp c3RfZGVsKCZwZXJzaXN0ZW50X2dudC0+bm9kZSk7Ci0JCQlnbnR0YWJfZW5kX2ZvcmVpZ25fYWNj ZXNzKHBlcnNpc3RlbnRfZ250LT5ncmVmLCAwLCAwVUwpOworCQkJaWYgKHBlcnNpc3RlbnRfZ250 LT5ncmVmICE9IEdSQU5UX0lOVkFMSURfUkVGKSB7CisJCQkJZ250dGFiX2VuZF9mb3JlaWduX2Fj Y2VzcyhwZXJzaXN0ZW50X2dudC0+Z3JlZiwKKwkJCQkgICAgICAgICAgICAgICAgICAgICAgICAg IDAsIDBVTCk7CisJCQkJaW5mby0+cGVyc2lzdGVudF9nbnRzX2MtLTsKKwkJCX0KIAkJCV9fZnJl ZV9wYWdlKHBmbl90b19wYWdlKHBlcnNpc3RlbnRfZ250LT5wZm4pKTsKIAkJCWtmcmVlKHBlcnNp c3RlbnRfZ250KTsKLQkJCWluZm8tPnBlcnNpc3RlbnRfZ250c19jLS07CiAJCX0KLQkJQlVHX09O KGluZm8tPnBlcnNpc3RlbnRfZ250c19jICE9IDApOwogCX0KKwlCVUdfT04oaW5mby0+cGVyc2lz dGVudF9nbnRzX2MgIT0gMCk7CiAKIAkvKiBObyBtb3JlIGdudHRhYiBjYWxsYmFjayB3b3JrLiAq LwogCWdudHRhYl9jYW5jZWxfZnJlZV9jYWxsYmFjaygmaW5mby0+Y2FsbGJhY2spOwpAQCAtMTAw OCw2ICsxMDQwLDEyIEBAIHN0YXRpYyBpbnQgc2V0dXBfYmxrcmluZyhzdHJ1Y3QgeGVuYnVzX2Rl dmljZSAqZGV2LAogCiAJc2dfaW5pdF90YWJsZShpbmZvLT5zZywgQkxLSUZfTUFYX1NFR01FTlRT X1BFUl9SRVFVRVNUKTsKIAorCS8qIEFsbG9jYXRlIG1lbW9yeSBmb3IgZ3JhbnRzICovCisJZXJy ID0gZmlsbF9ncmFudF9idWZmZXIoaW5mbywgQkxLX1JJTkdfU0laRSAqCisJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQkxLSUZfTUFYX1NFR01FTlRTX1BFUl9SRVFVRVNUKTsKKwlpZiAo ZXJyKQorCQlnb3RvIGZhaWw7CisKIAllcnIgPSB4ZW5idXNfZ3JhbnRfcmluZyhkZXYsIHZpcnRf dG9fbWZuKGluZm8tPnJpbmcuc3JpbmcpKTsKIAlpZiAoZXJyIDwgMCkgewogCQlmcmVlX3BhZ2Uo KHVuc2lnbmVkIGxvbmcpc3JpbmcpOwotLSAKMS43LjcuNSAoQXBwbGUgR2l0LTI2KQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==