From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57417) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcBq2-0000KH-9u for qemu-devel@nongnu.org; Tue, 23 Aug 2016 09:33:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcBpx-0007Zm-8n for qemu-devel@nongnu.org; Tue, 23 Aug 2016 09:33:57 -0400 Received: from mx3-phx2.redhat.com ([209.132.183.24]:41118) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcBpw-0007ZW-W0 for qemu-devel@nongnu.org; Tue, 23 Aug 2016 09:33:53 -0400 Date: Tue, 23 Aug 2016 09:33:45 -0400 (EDT) From: =?utf-8?Q?Marc-Andr=C3=A9?= Lureau Message-ID: <1593550465.1799998.1471959225761.JavaMail.zimbra@redhat.com> In-Reply-To: <20160823131338.GA32515@redhat.com> References: <20160823094537.8782-1-marcandre.lureau@redhat.com> <20160823094537.8782-3-marcandre.lureau@redhat.com> <57BC28EA.8070700@cn.fujitsu.com> <20160823131338.GA32515@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_1799996_719856710.1471959225758" Subject: Re: [Qemu-devel] [PATCH for-2.7 2/2] net: make socket connect non-blocking again List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Daniel P. Berrange" Cc: Cao jin , =?utf-8?Q?Marc-Andr=C3=A9?= Lureau , qemu-devel@nongnu.org, jasowang@redhat.com, crobinso@redhat.com, ashijeetacharya@gmail.com, pbonzini@redhat.com ------=_Part_1799996_719856710.1471959225758 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi ----- Original Message ----- > On Tue, Aug 23, 2016 at 06:43:54PM +0800, Cao jin wrote: > > Hi, > > I just noticed you still using the old-style non-blocking connect(which > > will > > still block when query DNS), which will be removed (suggested by Daniel= ), > > but the patch is still on the way. So I guess maybe you should switch t= o > > QIOChannel way. > >=20 > > FYI: > > http://lists.nongnu.org/archive/html/qemu-devel/2016-07/msg06386.html > > http://lists.nongnu.org/archive/html/qemu-devel/2016-08/msg00046.html >=20 > Yes, switching to QIOChannel would be good, but that is certainly not > something that's acceptable for 2.7.0. We need Marc-Andr=C3=A9's fix in t= he > short term for this release. If someone wants to do a QIOChannel > conversion for 2.8.0/2.9.0/etc that's an option... After looking at this a bit, it would need significant effort for net/socke= t to switch fully to qiochannel, so it's certainly not for 2.7. However, we= could use it just for the connect step for now (see attached patch) (tbh, I am not sure how well that net/socket async code is being handled in= case of cancellation etc..) ------=_Part_1799996_719856710.1471959225758 Content-Type: text/x-patch; name=0001-net-make-socket-connect-non-blocking-again.patch Content-Disposition: attachment; filename=0001-net-make-socket-connect-non-blocking-again.patch Content-Transfer-Encoding: base64 RnJvbSBhZDgxZjZkOTEzYmRiMDliNmY3Yzc4MWMxZTU1YWM0MjIyOGY3YzRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWFyYy1BbmRyPUMzPUE5PTIwTHVyZWF1Pz0g PG1hcmNhbmRyZS5sdXJlYXVAcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyMyBBdWcgMjAxNiAxMzoz MzozMCArMDQwMApTdWJqZWN0OiBbUEFUQ0hdIG5ldDogbWFrZSBzb2NrZXQgY29ubmVjdCBub24t YmxvY2tpbmcgYWdhaW4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClNpbmNlIGNv bW1pdCA3ZTg0NDk1OTRjOTI5LCB0aGUgc29ja2V0IGNvbm5lY3QgY29kZSBpcyBibG9ja2luZywg YmVjYXVzZQpjYWxsaW5nIHNvY2tldF9jb25uZWN0KCkgd2l0aG91dCBjYWxsYmFjayBpcyBibG9j a2luZy4gTWFrZSBpdApub24tYmxvY2tpbmcgYnkgYWRkaW5nIGEgY2FsbGJhY2suIFVuZm9ydHVu YXRlbHksIHRoZSBjYWxsYmFjayBuZWVkcwptYW55IGxvY2FsIHZhcmlhYmxlcyB0aGF0IGFyZSBu b3QgZWFzeSB0byBnZXQgcmlkIG9mIChpdCBjYW4ndCBlYXNpbHkKY3JlYXRlIHRoZSBxZW11X25l d19uZXRfY2xpZW50KCkgZWFybGllcikuIEJ5IGFkZGluZyB0aGUgY2FsbGJhY2ssIHRoZQpzb2Nr ZXQgaXMgYWxzbyBtYWRlIG5vbi1ibG9ja2luZy4gSWYgdGhlIHNvY2tldCBhdHRlbXB0IHN1Y2Nl ZWRlZAppbW1lZGlhdGVseSwgdGhlIGNhbGxiYWNrIGlzIHN0aWxsIGJlaW5nIGNhbGxlZC4KClNp Z25lZC1vZmYtYnk6IE1hcmMtQW5kcsOpIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUByZWRoYXQu Y29tPgotLS0KIG5ldC9zb2NrZXQuYyB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYxIGluc2Vy dGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQuYyBiL25l dC9zb2NrZXQuYwppbmRleCA2NDViY2IwLi5jYTBjMGI3IDEwMDY0NAotLS0gYS9uZXQvc29ja2V0 LmMKKysrIGIvbmV0L3NvY2tldC5jCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAicWVtdS9z b2NrZXRzLmgiCiAjaW5jbHVkZSAicWVtdS9pb3YuaCIKICNpbmNsdWRlICJxZW11L21haW4tbG9v cC5oIgorI2luY2x1ZGUgImlvL2NoYW5uZWwtc29ja2V0LmgiCiAKIHR5cGVkZWYgc3RydWN0IE5l dFNvY2tldFN0YXRlIHsKICAgICBOZXRDbGllbnRTdGF0ZSBuYzsKQEAgLTUxNyw1MyArNTE4LDgz IEBAIHN0YXRpYyBpbnQgbmV0X3NvY2tldF9saXN0ZW5faW5pdChOZXRDbGllbnRTdGF0ZSAqcGVl ciwKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBuZXRfc29ja2V0X2Nvbm5lY3RfaW5p dChOZXRDbGllbnRTdGF0ZSAqcGVlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqbW9kZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKmhvc3Rfc3RyKQordHlwZWRlZiBzdHJ1Y3QgeworICAgIFFJT0NoYW5uZWxTb2Nr ZXQgKnFpb19zb2NrZXQ7CisgICAgTmV0Q2xpZW50U3RhdGUgKnBlZXI7CisgICAgU29ja2V0QWRk cmVzcyAqc2FkZHI7CisgICAgY2hhciAqbW9kZWw7CisgICAgY2hhciAqbmFtZTsKK30gc29ja2V0 X2Nvbm5lY3RfZGF0YTsKKworc3RhdGljIHZvaWQgc29ja2V0X2Nvbm5lY3RfZGF0YV9mcmVlKHZv aWQgKmRhdGEpCiB7CisgICAgc29ja2V0X2Nvbm5lY3RfZGF0YSAqYyA9IGRhdGE7CisKKyAgICBx YXBpX2ZyZWVfU29ja2V0QWRkcmVzcyhjLT5zYWRkcik7CisgICAgb2JqZWN0X3VucmVmKE9CSkVD VChjLT5xaW9fc29ja2V0KSk7CisgICAgZ19mcmVlKGMtPm1vZGVsKTsKKyAgICBnX2ZyZWUoYy0+ bmFtZSk7CisgICAgZ19mcmVlKGMpOworfQorCitzdGF0aWMgdm9pZCBuZXRfc29ja2V0X2Nvbm5l Y3RfY2IoT2JqZWN0ICpzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RXJyb3IgKmVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBv cGFxdWUpCit7CisgICAgc29ja2V0X2Nvbm5lY3RfZGF0YSAqYyA9IG9wYXF1ZTsKKyAgICBpbnQg ZmQ7CiAgICAgTmV0U29ja2V0U3RhdGUgKnM7Ci0gICAgaW50IGZkID0gLTEsIHJldCA9IC0xOwog ICAgIGNoYXIgKmFkZHJfc3RyID0gTlVMTDsKLSAgICBTb2NrZXRBZGRyZXNzICpzYWRkciA9IE5V TEw7CiAgICAgRXJyb3IgKmxvY2FsX2Vycm9yID0gTlVMTDsKIAotICAgIHNhZGRyID0gc29ja2V0 X3BhcnNlKGhvc3Rfc3RyLCAmbG9jYWxfZXJyb3IpOwotICAgIGlmIChzYWRkciA9PSBOVUxMKSB7 Ci0gICAgICAgIGVycm9yX3JlcG9ydF9lcnIobG9jYWxfZXJyb3IpOwotICAgICAgICByZXR1cm4g LTE7Ci0gICAgfQotCi0gICAgZmQgPSBzb2NrZXRfY29ubmVjdChzYWRkciwgJmxvY2FsX2Vycm9y LCBOVUxMLCBOVUxMKTsKLSAgICBpZiAoZmQgPCAwKSB7CisgICAgYWRkcl9zdHIgPSBzb2NrZXRf YWRkcmVzc190b19zdHJpbmcoYy0+c2FkZHIsICZsb2NhbF9lcnJvcik7CisgICAgaWYgKGFkZHJf c3RyID09IE5VTEwpIHsKICAgICAgICAgZXJyb3JfcmVwb3J0X2Vycihsb2NhbF9lcnJvcik7Ci0g ICAgICAgIGdvdG8gZW5kOworICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcWVtdV9zZXRf bm9uYmxvY2soZmQpOwotCi0gICAgcyA9IG5ldF9zb2NrZXRfZmRfaW5pdChwZWVyLCBtb2RlbCwg bmFtZSwgZmQsIHRydWUpOworICAgIGZkID0gYy0+cWlvX3NvY2tldC0+ZmQ7CisgICAgYy0+cWlv X3NvY2tldC0+ZmQgPSAtMTsKKyAgICBzID0gbmV0X3NvY2tldF9mZF9pbml0KGMtPnBlZXIsIGMt Pm1vZGVsLCBjLT5uYW1lLCBmZCwgdHJ1ZSk7CiAgICAgaWYgKCFzKSB7Ci0gICAgICAgIGdvdG8g ZW5kOwotICAgIH0KLQotICAgIGFkZHJfc3RyID0gc29ja2V0X2FkZHJlc3NfdG9fc3RyaW5nKHNh ZGRyLCAmbG9jYWxfZXJyb3IpOwotICAgIGlmIChhZGRyX3N0ciA9PSBOVUxMKSB7Ci0gICAgICAg IGVycm9yX3JlcG9ydF9lcnIobG9jYWxfZXJyb3IpOworICAgICAgICBjbG9zZXNvY2tldChmZCk7 CiAgICAgICAgIGdvdG8gZW5kOwogICAgIH0KIAogICAgIHNucHJpbnRmKHMtPm5jLmluZm9fc3Ry LCBzaXplb2Yocy0+bmMuaW5mb19zdHIpLAogICAgICAgICAgICAgICJzb2NrZXQ6IGNvbm5lY3Qg dG8gJXMiLCBhZGRyX3N0cik7Ci0gICAgcmV0ID0gMDsKIAogZW5kOgotICAgIGlmIChyZXQgPT0g LTEgJiYgZmQgPj0gMCkgewotICAgICAgICBjbG9zZXNvY2tldChmZCk7Ci0gICAgfQotICAgIHFh cGlfZnJlZV9Tb2NrZXRBZGRyZXNzKHNhZGRyKTsKICAgICBnX2ZyZWUoYWRkcl9zdHIpOwotICAg IHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgbmV0X3NvY2tldF9jb25uZWN0X2luaXQoTmV0 Q2xpZW50U3RhdGUgKnBlZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKm1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICpob3N0X3N0cikKK3sKKyAgICBzb2NrZXRfY29ubmVjdF9kYXRhICpjID0gZ19uZXcwKHNv Y2tldF9jb25uZWN0X2RhdGEsIDEpOworICAgIEVycm9yICpsb2NhbF9lcnJvciA9IE5VTEw7CisK KyAgICBjLT5xaW9fc29ja2V0ID0gcWlvX2NoYW5uZWxfc29ja2V0X25ldygpOworICAgIGMtPnBl ZXIgPSBwZWVyOworICAgIGMtPm1vZGVsID0gZ19zdHJkdXAobW9kZWwpOworICAgIGMtPm5hbWUg PSBnX3N0cmR1cChuYW1lKTsKKyAgICBjLT5zYWRkciA9IHNvY2tldF9wYXJzZShob3N0X3N0ciwg JmxvY2FsX2Vycm9yKTsKKyAgICBpZiAoYy0+c2FkZHIgPT0gTlVMTCkgeworICAgICAgICBnb3Rv IGVycjsKKyAgICB9CisKKyAgICBxaW9fY2hhbm5lbF9zb2NrZXRfY29ubmVjdF9hc3luYyhjLT5x aW9fc29ja2V0LCBjLT5zYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuZXRfc29ja2V0X2Nvbm5lY3RfY2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYywgc29ja2V0X2Nvbm5lY3RfZGF0YV9mcmVlKTsKKworICAgIHJldHVybiAwOworCitl cnI6CisgICAgZXJyb3JfcmVwb3J0X2Vycihsb2NhbF9lcnJvcik7CisgICAgc29ja2V0X2Nvbm5l Y3RfZGF0YV9mcmVlKGMpOworICAgIHJldHVybiAtMTsKIH0KIAogc3RhdGljIGludCBuZXRfc29j a2V0X21jYXN0X2luaXQoTmV0Q2xpZW50U3RhdGUgKnBlZXIsCi0tIAoyLjkuMAoK ------=_Part_1799996_719856710.1471959225758--