From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ImFAe-0007po-81 for qemu-devel@nongnu.org; Sun, 28 Oct 2007 16:55:44 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ImFAY-0007ho-RI for qemu-devel@nongnu.org; Sun, 28 Oct 2007 16:55:43 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ImFAY-0007he-JO for qemu-devel@nongnu.org; Sun, 28 Oct 2007 16:55:38 -0400 Received: from nf-out-0910.google.com ([64.233.182.189]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1ImFAX-0007ZK-QM for qemu-devel@nongnu.org; Sun, 28 Oct 2007 16:55:38 -0400 Received: by nf-out-0910.google.com with SMTP id 30so1267576nfu for ; Sun, 28 Oct 2007 13:55:36 -0700 (PDT) Message-ID: Date: Sun, 28 Oct 2007 22:55:36 +0200 From: "Blue Swirl" Subject: Re: [Qemu-devel] Faster, generic IO/DMA model with vectored AIO? In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_6408_7177547.1193604936477" References: <200710280129.10640.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org ------=_Part_6408_7177547.1193604936477 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline I made a new patch sketching the system. It doesn't even compile, but it should give a view how this would be put into work. On the down side, new memory needs to be allocated for generation of new vectors from previous ones, that may kill some of the performance. Also, supporting DMA to MMIO registers can't be done with pure translation only. I'm not too happy about this model anymore, maybe the model I proposed earlier is better. But it can't get to zero copy. ------=_Part_6408_7177547.1193604936477 Content-Type: text/x-diff; name=gdma_aiov.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_f8c1b78o Content-Disposition: attachment; filename=gdma_aiov.diff SW5kZXg6IHFlbXUvdmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdmwuaAkyMDA3LTEwLTI4 IDEzOjI2OjM1LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS92bC5oCTIwMDctMTAtMjggMjA6MjU6 MjcuMDAwMDAwMDAwICswMDAwCkBAIC03NDYsNiArNzQ2LDc4IEBACiAKICNpbmNsdWRlICJody9p cnEuaCIKIAorLyogR2VuZXJpYyBETUEgQVBJICovCisKK3R5cGVkZWYgdm9pZCBETUFEcml2ZXJD b21wbGV0aW9uRnVuYyh2b2lkICpvcGFxdWUsIGludCByZXQpOworCitzdHJ1Y3QgcWVtdV9pb3Zl YyB7CisgICAgdGFyZ2V0X3BoeXNfYWRkcl90IGlvdl9iYXNlOworICAgIHNpemVfdCBpb3ZfbGVu OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgRE1BRHJpdmVyQUlPQ0IgRE1BRHJpdmVyQUlPQ0I7CisK K3R5cGVkZWYgRE1BRHJpdmVyQUlPQ0IgKgorRE1BVHJhbnNsYXRpb25IYW5kbGVyKHZvaWQgKm9w YXF1ZSwgRE1BRHJpdmVyQUlPQ0IgKnJlcXVlc3QpOworCit0eXBlZGVmIHN0cnVjdCBETUFDb21w bGV0aW9uRW50cnkgeworICAgIERNQVRyYW5zbGF0aW9uSGFuZGxlciAqZnVuYzsKKyAgICB2b2lk ICpvcGFxdWU7CisgICAgc3RydWN0IERNQUNvbXBsZXRpb25FbnRyeSAqbmV4dDsKK30gRE1BQ29t cGxldGlvbkVudHJ5OworCitzdHJ1Y3QgRE1BRHJpdmVyQUlPQ0IgeworICAgIHVuc2lnbmVkIGlu dCBuZW50OworICAgIHN0cnVjdCBxZW11X2lvdmVjICp2ZWN0b3I7CisgICAgRE1BQ29tcGxldGlv bkVudHJ5ICpjYjsKKyAgICBzdHJ1Y3QgRE1BRHJpdmVyQUlPQ0IgKm5leHQ7Cit9OworCit0eXBl ZGVmIHN0cnVjdCBxZW11X2J1cyB7CisgICAgdW5zaWduZWQgaW50IGJ1c19iaXRzOworICAgIERN QVRyYW5zbGF0aW9uSGFuZGxlciAqbm9ydGhfaGFuZGxlcjsKKyAgICB2b2lkICpub3J0aF9oYW5k bGVyX29wYXF1ZTsKKyAgICBETUFUcmFuc2xhdGlvbkhhbmRsZXIgKnNvdXRoX2hhbmRsZXI7Cisg ICAgdm9pZCAqc291dGhfaGFuZGxlcl9vcGFxdWU7Cit9IHFlbXVfYnVzOworCitxZW11X2J1cyAq CitidXNfaW5pdCh1bnNpZ25lZCBpbnQgYnVzX2JpdHMsCisgICAgICAgICBETUFUcmFuc2xhdGlv bkhhbmRsZXIgbm9ydGhfaGFuZGxlciwKKyAgICAgICAgIHZvaWQgKm5vcnRoX2hhbmRsZXJfb3Bh cXVlLAorICAgICAgICAgRE1BVHJhbnNsYXRpb25IYW5kbGVyIHNvdXRoX2hhbmRsZXIsCisgICAg ICAgICB2b2lkICpzb3V0aF9oYW5kbGVyX29wYXF1ZSk7CisKKy8qIERpcmVjdGlvbiBDUFUtPmJy aWRnZS0+ZGV2aWNlL21lbW9yeSAqLworc3RhdGljIGlubGluZSBETUFEcml2ZXJBSU9DQiAqCiti dXNfdHJhbnNsYXRlX3NvdXRoKHFlbXVfYnVzICpidXMsIERNQURyaXZlckFJT0NCICpyZXF1ZXN0 KQoreworICAgIHJldHVybiBidXMtPnNvdXRoX2hhbmRsZXIoYnVzLT5zb3V0aF9oYW5kbGVyX29w YXF1ZSwgcmVxdWVzdCk7Cit9CisKKy8qIEZyb20gZGV2aWNlIHRvd2FyZHMgQ1BVL21lbW9yeSAo RE1BKSAqLworc3RhdGljIGlubGluZSBETUFEcml2ZXJBSU9DQiAqCitidXNfdHJhbnNsYXRlX25v cnRoKHFlbXVfYnVzICpidXMsIERNQURyaXZlckFJT0NCICpyZXF1ZXN0KQoreworICAgIHJldHVy biBidXMtPm5vcnRoX2hhbmRsZXIoYnVzLT5ub3J0aF9oYW5kbGVyX29wYXF1ZSwgcmVxdWVzdCk7 Cit9CisKK3N0YXRpYyBpbmxpbmUgRE1BRHJpdmVyQUlPQ0IgKgorYnVzX2J1aWxkX2Fpb2NiKGNv bnN0IHN0cnVjdCBxZW11X2lvdmVjICp2ZWN0b3IsIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKyAg ICBETUFEcml2ZXJBSU9DQiAqZDsKKworICAgIGQgPSBxZW11X21hbGxvY3ooc2l6ZW9mKERNQURy aXZlckFJT0NCKSk7CisgICAgZC0+bmVudCA9IGNvdW50OworICAgIGQtPnZlY3RvciA9IHFlbXVf bWFsbG9jeihjb3VudCAqIHNpemVvZihzdHJ1Y3QgcWVtdV9pb3ZlYykpOworICAgIG1lbWNweShk LT52ZWN0b3IsIHZlY3RvciwgY291bnQgKiBzaXplb2Yoc3RydWN0IHFlbXVfaW92ZWMpKTsKKyAg ICByZXR1cm4gZDsKK30KKworRE1BRHJpdmVyQUlPQ0IgKnBoeXNpY2FsX21lbW9yeV9idXNfdHJh bnNsYXRlX25vcnRoKHZvaWQgKm9wYXF1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBETUFEcml2ZXJBSU9DQiAqcmVxdWVzdCk7CitETUFEcml2 ZXJBSU9DQiAqcGh5c2ljYWxfbWVtb3J5X2J1c190cmFuc2xhdGVfc291dGgodm9pZCAqb3BhcXVl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERN QURyaXZlckFJT0NCICpyZXF1ZXN0KTsKIC8qIElTQSBidXMgKi8KIAogZXh0ZXJuIHRhcmdldF9w aHlzX2FkZHJfdCBpc2FfbWVtX2Jhc2U7CkluZGV4OiBxZW11L2h3L3N1bjRtLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gcWVtdS5vcmlnL2h3L3N1bjRtLmMJMjAwNy0xMC0yOCAxOToxMjo1OS4wMDAwMDAwMDAg KzAwMDAKKysrIHFlbXUvaHcvc3VuNG0uYwkyMDA3LTEwLTI4IDIwOjI0OjU5LjAwMDAwMDAwMCAr MDAwMApAQCAtMzA2LDYgKzMwNiwyNyBAQAogICAgIGVudi0+aGFsdGVkID0gMTsKIH0KIAorRE1B RHJpdmVyQUlPQ0IgKnBoeXNpY2FsX21lbW9yeV9idXNfdHJhbnNsYXRlX25vcnRoKHZvaWQgKm9w YXF1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBETUFEcml2ZXJBSU9DQiAqcmVxdWVzdCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAg IGZvciAoaSA9IDA7IGkgPCByZXF1ZXN0LT5uZW50OyBpKyspIHsKKyAgICAgICAgaWYgKHJlcXVl c3QtPnZlY3RvcltpXS5pb3ZfYmFzZSA8IHBoeXNfcmFtX3NpemUpCisgICAgICAgICAgICByZXF1 ZXN0LT52ZWN0b3JbaV0uaW92X2Jhc2UgKz0gKHVuc2lnbmVkIGxvbmcpcGh5c19yYW1fYmFzZTsK KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVxdWVzdC0+dmVjdG9yW2ldLmlvdl9sZW4gPSAw OworICAgIH0KKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworRE1BRHJpdmVyQUlPQ0IgKnBoeXNp Y2FsX21lbW9yeV9idXNfdHJhbnNsYXRlX3NvdXRoKHZvaWQgKm9wYXF1ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUFEcml2ZXJBSU9DQiAq cmVxdWVzdCkKK3sKKyAgICAvLyBEb2VzIG5vdCBleGlzdD8KKyAgICByZXR1cm4gcmVxdWVzdDsK K30KKwogc3RhdGljIHZvaWQgKnN1bjRtX2h3X2luaXQoY29uc3Qgc3RydWN0IGh3ZGVmICpod2Rl ZiwgaW50IFJBTV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRl ICpkcywgY29uc3QgY2hhciAqY3B1X21vZGVsKQogCkluZGV4OiBxZW11L2h3L2lvbW11LmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L2lvbW11LmMJMjAwNy0xMC0yOCAxOToxMjozNS4wMDAw MDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvaW9tbXUuYwkyMDA3LTEwLTI4IDIwOjI5OjIzLjAwMDAw MDAwMCArMDAwMApAQCAtMjQ0LDYgKzI0NCwyNCBAQAogICAgIHMtPnJlZ3NbSU9NTVVfQUZBUl0g PSBhZGRyOwogfQogCitETUFEcml2ZXJBSU9DQiAqaW9tbXVfYnVzX3RyYW5zbGF0ZV9ub3J0aCh2 b2lkICpvcGFxdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE TUFEcml2ZXJBSU9DQiAqcmVxdWVzdCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICAvLyBh bGxvYyBhIG5ldyB2ZWN0b3IKKyAgICBmb3IgKGkgPSAwOyBpIDwgcmVxdWVzdC0+bmVudDsgaSsr KSB7CisgICAgICAgIC8vdHJhbnNsYXRlX3ZlY3RvcihyZXF1ZXN0LT52ZWN0b3JbaV0pOworICAg IH0KKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworRE1BRHJpdmVyQUlPQ0IgKmlvbW11X2J1c190 cmFuc2xhdGVfc291dGgodm9pZCAqb3BhcXVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRE1BRHJpdmVyQUlPQ0IgKnJlcXVlc3QpCit7CisgICAgLy8gMToxIG1h cHBpbmcKKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKwogdm9pZCBzcGFyY19pb21tdV9tZW1vcnlf cncodm9pZCAqb3BhcXVlLCB0YXJnZXRfcGh5c19hZGRyX3QgYWRkciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbiwgaW50IGlzX3dyaXRlKQogewpJbmRl eDogcWVtdS9ody9zcGFyYzMyX2RtYS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9zcGFy YzMyX2RtYS5jCTIwMDctMTAtMjggMTk6MTI6NTQuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3 L3NwYXJjMzJfZG1hLmMJMjAwNy0xMC0yOCAyMDozMDo0NS4wMDAwMDAwMDAgKzAwMDAKQEAgLTEy OCw2ICsxMjgsMjUgQEAKICAgICB9CiB9CiAKK0RNQURyaXZlckFJT0NCICplc3BkbWFfYnVzX3Ry YW5zbGF0ZV9ub3J0aCh2b2lkICpvcGFxdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRE1BRHJpdmVyQUlPQ0IgKnJlcXVlc3QpCit7CisgICAgRE1BU3RhdGUg KnMgPSBvcGFxdWU7CisgICAgdW5zaWduZWQgaW50IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwg cmVxdWVzdC0+bmVudDsgaSsrKSB7CisgICAgICAgIHJlcXVlc3QtPnZlY3RvcltpXS5pb3ZfYmFz ZSB8PSBzLT5kbWFyZWdzWzFdOworICAgIH0KKyAgICByZXR1cm4gcmVxdWVzdDsKK30KKworRE1B RHJpdmVyQUlPQ0IgKmVzcGRtYV9idXNfdHJhbnNsYXRlX3NvdXRoKHZvaWQgKm9wYXF1ZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUFEcml2ZXJBSU9DQiAq cmVxdWVzdCkKK3sKKyAgICAvLyAxOjEgbWFwcGluZworICAgIHJldHVybiByZXF1ZXN0OworfQor CiB2b2lkIGVzcGRtYV9tZW1vcnlfcmVhZCh2b2lkICpvcGFxdWUsIHVpbnQ4X3QgKmJ1ZiwgaW50 IGxlbikKIHsKICAgICBETUFTdGF0ZSAqcyA9IG9wYXF1ZTsKSW5kZXg6IHFlbXUvaHcvZXNwLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L2VzcC5jCTIwMDctMTAtMjggMTg6NTc6MjcuMDAw MDAwMDAwICswMDAwCisrKyBxZW11L2h3L2VzcC5jCTIwMDctMTAtMjggMjA6Mzc6NTcuMDAwMDAw MDAwICswMDAwCkBAIC0xNDQsMTUgKzE0NCwyNSBAQAogICAgIGRhdGFsZW4gPSBzY3NpX3NlbmRf Y29tbWFuZChzLT5jdXJyZW50X2RldiwgMCwgJmJ1ZlsxXSwgbHVuKTsKICAgICBzLT50aV9zaXpl ID0gZGF0YWxlbjsKICAgICBpZiAoZGF0YWxlbiAhPSAwKSB7CisgICAgICAgIERNQURyaXZlckFJ T0NCICpkOworICAgICAgICBzdHJ1Y3QgcWVtdV9pb3ZlYyBpb3Y7CisKICAgICAgICAgcy0+cnJl Z3NbNF0gPSBTVEFUX0lOIHwgU1RBVF9UQzsKICAgICAgICAgcy0+ZG1hX2xlZnQgPSAwOwogICAg ICAgICBzLT5kbWFfY291bnRlciA9IDA7CisgICAgICAgIGlvdi5pb3ZfYmFzZSA9IDA7CiAgICAg ICAgIGlmIChkYXRhbGVuID4gMCkgeworICAgICAgICAgICAgaW92Lmlvdl9sZW4gPSBkYXRhbGVu OworICAgICAgICAgICAgZCA9IGJ1c19idWlsZF9haW9jYigmaW92LCAxKTsKKyAgICAgICAgICAg IGJ1c190cmFuc2xhdGVfbm9ydGgocy0+YnVzLCBkKTsKICAgICAgICAgICAgIHMtPnJyZWdzWzRd IHw9IFNUQVRfREk7Ci0gICAgICAgICAgICBzY3NpX3JlYWRfZGF0YShzLT5jdXJyZW50X2Rldiwg MCk7CisgICAgICAgICAgICBzY3NpX3JlYWRfZGF0YShzLT5jdXJyZW50X2RldiwgMCwgZCk7CiAg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpb3YuaW92X2xlbiA9IC1kYXRhbGVuOworICAg ICAgICAgICAgZCA9IGJ1c19idWlsZF9haW9jYigmaW92LCAxKTsKKyAgICAgICAgICAgIGJ1c190 cmFuc2xhdGVfbm9ydGgocy0+YnVzLCBkKTsKICAgICAgICAgICAgIHMtPnJyZWdzWzRdIHw9IFNU QVRfRE87Ci0gICAgICAgICAgICBzY3NpX3dyaXRlX2RhdGEocy0+Y3VycmVudF9kZXYsIDApOwor ICAgICAgICAgICAgc2NzaV93cml0ZV9kYXRhKHMtPmN1cnJlbnRfZGV2LCAwLCBkKTsKICAgICAg ICAgfQogICAgIH0KICAgICBzLT5ycmVnc1s1XSA9IElOVFJfQlMgfCBJTlRSX0ZDOwpJbmRleDog cWVtdS9ody9zY3NpLWRpc2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvc2NzaS1kaXNr LmMJMjAwNy0xMC0yOCAyMDozMDozNS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvc2NzaS1k aXNrLmMJMjAwNy0xMC0yOCAyMDozODo0OS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE2Miw3ICsxNjIs NyBAQAogfQogCiAvKiBSZWFkIG1vcmUgZGF0YSBmcm9tIHNjc2kgZGV2aWNlIGludG8gYnVmZmVy LiAgKi8KLXZvaWQgc2NzaV9yZWFkX2RhdGEoU0NTSURldmljZSAqcywgdWludDMyX3QgdGFnKQor dm9pZCBzY3NpX3JlYWRfZGF0YShTQ1NJRGV2aWNlICpzLCB1aW50MzJfdCB0YWcsIERNQURyaXZl ckFJT0NCICpyZXF1ZXN0KQogewogICAgIFNDU0lSZXF1ZXN0ICpyOwogICAgIHVpbnQzMl90IG47 CkBAIC0xOTEsNyArMTkxLDcgQEAKICAgICAgICAgbiA9IFNDU0lfRE1BX0JVRl9TSVpFIC8gNTEy OwogCiAgICAgci0+YnVmX2xlbiA9IG4gKiA1MTI7Ci0gICAgci0+YWlvY2IgPSBiZHJ2X2Fpb19y ZWFkKHMtPmJkcnYsIHItPnNlY3Rvciwgci0+ZG1hX2J1ZiwgbiwKKyAgICByLT5haW9jYiA9IGJk cnZfYWlvX3JlYWQocy0+YmRydiwgci0+c2VjdG9yLCByZXF1ZXN0LCBuLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY3NpX3JlYWRfY29tcGxldGUsIHIpOwogICAgIGlmIChyLT5haW9j YiA9PSBOVUxMKQogICAgICAgICBzY3NpX2NvbW1hbmRfY29tcGxldGUociwgU0VOU0VfSEFSRFdB UkVfRVJST1IpOwo= ------=_Part_6408_7177547.1193604936477--