From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH] implement support for splitting requests in block-vbd Date: Fri, 27 Mar 2009 17:30:48 +0000 Message-ID: <49CD0D48.3090303@eu.citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060304070404020207080805" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------060304070404020207080805 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi all, the main issue with stubdoms at the moment is that the new dma api does not support an upper limit for the number of sectors in a single dma transfer. This means that block-vbd can issue blkfront_aio transfers that exceed the blktap limit BLKIF_MAX_SEGMENTS_PER_REQUEST. The attached qemu patch makes block-vbd split any request bigger than the limit above. The small xen patch is also needed to change struct blkfront_aiocb. Signed-off-by: Stefano Stabellini --------------060304070404020207080805 Content-Type: text/plain; name="xen_block_vbd_split" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="xen_block_vbd_split" CmRpZmYgLXIgMGIxM2Q5Nzg3NjIyIGV4dHJhcy9taW5pLW9zL2luY2x1ZGUvYmxrZnJvbnQu aAotLS0gYS9leHRyYXMvbWluaS1vcy9pbmNsdWRlL2Jsa2Zyb250LmgJVHVlIE1hciAyNCAw Njo1NToyOSAyMDA5ICswMDAwCisrKyBiL2V4dHJhcy9taW5pLW9zL2luY2x1ZGUvYmxrZnJv bnQuaAlGcmkgTWFyIDI3IDE3OjA1OjA5IDIwMDkgKzAwMDAKQEAgLTgsNiArOCw4IEBACiAg ICAgdWludDhfdCAqYWlvX2J1ZjsKICAgICBzaXplX3QgYWlvX25ieXRlczsKICAgICBvZmZf dCBhaW9fb2Zmc2V0OworICAgIHNpemVfdCB0b3RhbF9ieXRlczsKKyAgICB1aW50OF90IGlz X3dyaXRlOwogICAgIHZvaWQgKmRhdGE7CiAKICAgICBncmFudF9yZWZfdCBncmVmW0JMS0lG X01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVF07Cg== --------------060304070404020207080805 Content-Type: text/plain; name="qemu_block_vbd_split" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="qemu_block_vbd_split" CmRpZmYgLS1naXQgYS9ibG9jay12YmQuYyBiL2Jsb2NrLXZiZC5jCmluZGV4IDhjMTVkNjUu LjBlNzBlZjIgMTAwNjQ0Ci0tLSBhL2Jsb2NrLXZiZC5jCisrKyBiL2Jsb2NrLXZiZC5jCkBA IC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPG1hbGxvYy5oPgogI2luY2x1ZGUgInFlbXUt Y2hhci5oIgogCisjaW5jbHVkZSA8eGVuL2lvL2Jsa2lmLmg+CisjZGVmaW5lIElERV9ETUFf QlVGX1NFQ1RPUlMgXAorCSgoKEJMS0lGX01BWF9TRUdNRU5UU19QRVJfUkVRVUVTVCAtIDEg KSAqIFRBUkdFVF9QQUdFX1NJWkUpIC8gNTEyKQorI2RlZmluZSBJREVfRE1BX0JVRl9CWVRF UyAoSURFX0RNQV9CVUZfU0VDVE9SUyAqIDUxMikKICNkZWZpbmUgU0VDVE9SX1NJWkUgNTEy CiAKICNpZm5kZWYgUUVNVV9UT09MCkBAIC0xMzEsOCArMTM1LDE4IEBAIHZvaWQgcWVtdV9h aW9fd2FpdCh2b2lkKQogICAgIHJlbW92ZV93YWl0ZXIodyk7CiB9CiAKLXN0YXRpYyB2b2lk IHZiZF9haW9fY2FsbGJhY2soc3RydWN0IGJsa2Zyb250X2Fpb2NiICphaW9jYnAsIGludCBy ZXQpIHsKK3N0YXRpYyB2b2lkIHZiZF9kb19haW8oc3RydWN0IGJsa2Zyb250X2Fpb2NiICph aW9jYnAsIGludCByZXQpIHsKICAgICBWYmRBSU9DQiAqYWNiID0gYWlvY2JwLT5kYXRhOwor ICAgIGludCBuID0gYWlvY2JwLT5haW9fbmJ5dGVzOworCisgICAgYWlvY2JwLT50b3RhbF9i eXRlcyAtPSBuOworICAgIGlmIChhaW9jYnAtPnRvdGFsX2J5dGVzID4gMCkgeworICAgICAg ICBhaW9jYnAtPmFpb19idWYgKz0gbjsgCisgICAgICAgIGFpb2NicC0+YWlvX29mZnNldCAr PSBuOworICAgICAgICBhaW9jYnAtPmFpb19uYnl0ZXMgPSBhaW9jYnAtPnRvdGFsX2J5dGVz ID4gSURFX0RNQV9CVUZfQllURVMgPyBJREVfRE1BX0JVRl9CWVRFUyA6IGFpb2NicC0+dG90 YWxfYnl0ZXM7CisgICAgICAgIGJsa2Zyb250X2FpbyhhaW9jYnAsIGFpb2NicC0+aXNfd3Jp dGUpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYWNiLT5jb21tb24uY2IoYWNi LT5jb21tb24ub3BhcXVlLCByZXQpOwogICAgIHFlbXVfYWlvX3JlbGVhc2UoYWNiKTsKQEAg LTE0MCw3ICsxNTQsNyBAQCBzdGF0aWMgdm9pZCB2YmRfYWlvX2NhbGxiYWNrKHN0cnVjdCBi bGtmcm9udF9haW9jYiAqYWlvY2JwLCBpbnQgcmV0KSB7CiAKIHN0YXRpYyBWYmRBSU9DQiAq dmJkX2Fpb19zZXR1cChCbG9ja0RyaXZlclN0YXRlICpicywKICAgICAgICAgaW50NjRfdCBz ZWN0b3JfbnVtLCB1aW50OF90ICpidWYsIGludCBuYl9zZWN0b3JzLAotICAgICAgICBCbG9j a0RyaXZlckNvbXBsZXRpb25GdW5jICpjYiwgdm9pZCAqb3BhcXVlKQorICAgICAgICBCbG9j a0RyaXZlckNvbXBsZXRpb25GdW5jICpjYiwgdWludDhfdCBpc193cml0ZSwgdm9pZCAqb3Bh cXVlKQogewogICAgIEJEUlZWYmRTdGF0ZSAqcyA9IGJzLT5vcGFxdWU7CiAgICAgVmJkQUlP Q0IgKmFjYjsKQEAgLTE1MCw5ICsxNjQsMTUgQEAgc3RhdGljIFZiZEFJT0NCICp2YmRfYWlv X3NldHVwKEJsb2NrRHJpdmVyU3RhdGUgKmJzLAogCXJldHVybiBOVUxMOwogICAgIGFjYi0+ YWlvY2IuYWlvX2RldiA9IHMtPmRldjsKICAgICBhY2ItPmFpb2NiLmFpb19idWYgPSBidWY7 Ci0gICAgYWNiLT5haW9jYi5haW9fbmJ5dGVzID0gbmJfc2VjdG9ycyAqIFNFQ1RPUl9TSVpF OwogICAgIGFjYi0+YWlvY2IuYWlvX29mZnNldCA9IHNlY3Rvcl9udW0gKiBTRUNUT1JfU0la RTsKLSAgICBhY2ItPmFpb2NiLmFpb19jYiA9IHZiZF9haW9fY2FsbGJhY2s7CisgICAgaWYg KG5iX3NlY3RvcnMgPD0gSURFX0RNQV9CVUZfU0VDVE9SUykKKyAgICAgICAgYWNiLT5haW9j Yi5haW9fbmJ5dGVzID0gbmJfc2VjdG9ycyAqIFNFQ1RPUl9TSVpFOworICAgIGVsc2UKKyAg ICAgICAgYWNiLT5haW9jYi5haW9fbmJ5dGVzID0gSURFX0RNQV9CVUZfQllURVM7CisgICAg YWNiLT5haW9jYi5haW9fY2IgPSB2YmRfZG9fYWlvOworCisgICAgYWNiLT5haW9jYi50b3Rh bF9ieXRlcyA9IG5iX3NlY3RvcnMgKiBTRUNUT1JfU0laRTsKKyAgICBhY2ItPmFpb2NiLmlz X3dyaXRlID0gaXNfd3JpdGU7CiAgICAgYWNiLT5haW9jYi5kYXRhID0gYWNiOwogCiAgICAg cmV0dXJuIGFjYjsKQEAgLTE2NCw3ICsxODQsNyBAQCBzdGF0aWMgQmxvY2tEcml2ZXJBSU9D QiAqdmJkX2Fpb19yZWFkKEJsb2NrRHJpdmVyU3RhdGUgKmJzLAogewogICAgIFZiZEFJT0NC ICphY2I7CiAKLSAgICBhY2IgPSB2YmRfYWlvX3NldHVwKGJzLCBzZWN0b3JfbnVtLCBidWYs IG5iX3NlY3RvcnMsIGNiLCBvcGFxdWUpOworICAgIGFjYiA9IHZiZF9haW9fc2V0dXAoYnMs IHNlY3Rvcl9udW0sIGJ1ZiwgbmJfc2VjdG9ycywgY2IsIDAsIG9wYXF1ZSk7CiAgICAgaWYg KCFhY2IpCiAJcmV0dXJuIE5VTEw7CiAgICAgYmxrZnJvbnRfYWlvKCZhY2ItPmFpb2NiLCAw KTsKQEAgLTE3Nyw3ICsxOTcsNyBAQCBzdGF0aWMgQmxvY2tEcml2ZXJBSU9DQiAqdmJkX2Fp b193cml0ZShCbG9ja0RyaXZlclN0YXRlICpicywKIHsKICAgICBWYmRBSU9DQiAqYWNiOwog Ci0gICAgYWNiID0gdmJkX2Fpb19zZXR1cChicywgc2VjdG9yX251bSwgKHVpbnQ4X3QqKSBi dWYsIG5iX3NlY3RvcnMsIGNiLCBvcGFxdWUpOworICAgIGFjYiA9IHZiZF9haW9fc2V0dXAo YnMsIHNlY3Rvcl9udW0sICh1aW50OF90KikgYnVmLCBuYl9zZWN0b3JzLCBjYiwgMSwgb3Bh cXVlKTsKICAgICBpZiAoIWFjYikKIAlyZXR1cm4gTlVMTDsKICAgICBibGtmcm9udF9haW8o JmFjYi0+YWlvY2IsIDEpOwpAQCAtMTk2LDcgKzIxNiw3IEBAIHN0YXRpYyBpbnQgdmJkX2Fs aWduZWRfaW8oQmxvY2tEcml2ZXJTdGF0ZSAqYnMsCiAgICAgVmJkQUlPQ0IgKmFjYjsKICAg ICBpbnQgcmVzdWx0WzJdOwogICAgIHJlc3VsdFswXSA9IDA7Ci0gICAgYWNiID0gdmJkX2Fp b19zZXR1cChicywgc2VjdG9yX251bSwgKHVpbnQ4X3QqKSBidWYsIG5iX3NlY3RvcnMsIHZi ZF9jYiwgJnJlc3VsdCk7CisgICAgYWNiID0gdmJkX2Fpb19zZXR1cChicywgc2VjdG9yX251 bSwgKHVpbnQ4X3QqKSBidWYsIG5iX3NlY3RvcnMsIHZiZF9jYiwgd3JpdGUsICZyZXN1bHQp OwogICAgIGJsa2Zyb250X2FpbygmYWNiLT5haW9jYiwgd3JpdGUpOwogICAgIHdoaWxlICgh cmVzdWx0WzBdKQogCXFlbXVfYWlvX3dhaXQoKTsKQEAgLTI2OCwxMyArMjg4LDEzIEBAIHN0 YXRpYyBCbG9ja0RyaXZlckFJT0NCICp2YmRfYWlvX2ZsdXNoKEJsb2NrRHJpdmVyU3RhdGUg KmJzLAogICAgIH0KICAgICBpZiAocy0+aW5mby5iYXJyaWVyID09IDEpIHsKICAgICAgICAg YWNiID0gdmJkX2Fpb19zZXR1cChicywgMCwgTlVMTCwgMCwKLSAgICAgICAgICAgICAgICBz LT5pbmZvLmZsdXNoID09IDEgPyB2YmRfbm9wX2NiIDogY2IsIG9wYXF1ZSk7CisgICAgICAg ICAgICAgICAgcy0+aW5mby5mbHVzaCA9PSAxID8gdmJkX25vcF9jYiA6IGNiLCAwLCBvcGFx dWUpOwogICAgICAgICBpZiAoIWFjYikKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAg ICAgICBibGtmcm9udF9haW9fcHVzaF9vcGVyYXRpb24oJmFjYi0+YWlvY2IsIEJMS0lGX09Q X1dSSVRFX0JBUlJJRVIpOwogICAgIH0KICAgICBpZiAocy0+aW5mby5mbHVzaCA9PSAxKSB7 Ci0gICAgICAgIGFjYiA9IHZiZF9haW9fc2V0dXAoYnMsIDAsIE5VTEwsIDAsIGNiLCBvcGFx dWUpOworICAgICAgICBhY2IgPSB2YmRfYWlvX3NldHVwKGJzLCAwLCBOVUxMLCAwLCBjYiwg MCwgb3BhcXVlKTsKICAgICAgICAgaWYgKCFhY2IpCiAgICAgICAgICAgICByZXR1cm4gTlVM TDsKICAgICAgICAgYmxrZnJvbnRfYWlvX3B1c2hfb3BlcmF0aW9uKCZhY2ItPmFpb2NiLCBC TEtJRl9PUF9GTFVTSF9ESVNLQ0FDSEUpOwo= --------------060304070404020207080805 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------060304070404020207080805--