From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HTlzF-00086o-5Z for qemu-devel@nongnu.org; Tue, 20 Mar 2007 17:35:21 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HTlzC-00086Y-E4 for qemu-devel@nongnu.org; Tue, 20 Mar 2007 17:35:20 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HTlzC-00086V-BS for qemu-devel@nongnu.org; Tue, 20 Mar 2007 16:35:18 -0500 Received: from grayson.netsweng.com ([207.235.77.11]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HTlxZ-0003Jl-VP for qemu-devel@nongnu.org; Tue, 20 Mar 2007 17:33:38 -0400 Received: from amavis by grayson.netsweng.com with scanned-ok (Exim 3.36 #1 (Debian)) id 1HTlxZ-0007ZY-00 for ; Tue, 20 Mar 2007 17:33:37 -0400 Received: from grayson.netsweng.com ([127.0.0.1]) by localhost (grayson.netsweng.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JBqvddZuvCf5 for ; Tue, 20 Mar 2007 17:33:15 -0400 (EDT) Received: from h211.241.141.67.ip.alltel.net ([67.141.241.211] helo=trantor.stuart.netsweng.com) by grayson.netsweng.com with esmtp (Exim 3.36 #1 (Debian)) id 1HTlxC-0007Z1-00 for ; Tue, 20 Mar 2007 17:33:14 -0400 Date: Tue, 20 Mar 2007 17:32:49 -0400 (EDT) From: Stuart Anderson Subject: Re: [Qemu-devel] [PATCH] fcntl64 fix In-Reply-To: Message-ID: References: <20070309215335.GB5629@localhost.localdomain> <20070319171303.GE28895@networkno.de> <20070320114315.GA26019@localhost.localdomain> <20070320135910.GA18571@localhost.localdomain> <20070320171103.GA20530@localhost.localdomain> <20070320193442.GA11933@localhost.localdomain> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811327-161298785-1174426369=:12505" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463811327-161298785-1174426369=:12505 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed OK, I think I finally have it all sorted out. Sorry if I sounded dense along the way.. there were multiple variable, which increases the number of possible combinations quickly. The patch from Kirill is needed, and makes things better. One thing I notice with it is that we now handle TARGET_F_GETLK64 in two places, first in the case for TARGET_NR_fcntl64 (around line 4300), and then again in do_fcntl(), which is called in the default case of the first location. Once difference between the two locations is wether or not the case for EABI is handled. In addition to Kirill's patch, my original patch for target_eabi_flock64 is still needed as well as an expanded version of the revised patch I sent later that does target->host strcture mapping for the F_GETLK* cases. I have used the fcntl test sets out of the Linux Test Projects to measure with an without the different parts of these patches. With the entire set (Which is attached), 16 of the 18 test sets pass completely, and a significant portion of test14 (one of the two that don't pass completely) passes as well. The tests in test14 that fail may be do to a problem with a syscall other than fcntl(), but I haven't completely resulved it yet. Without my portion of the patch, the results are much worse (maybe half-ish are passing). There is something interesting about test18 (the other one that doesn't pass). It intentionally passes in a bad value (-1) as the 3rd argument to fcntl(). It is testing wether it will get EFAULT. With these fixes, qemu will SEGV as it tries to convert the struct flock (or struct flock64) from target->host, and encounters the bad address that was passed in. The initial SEGV is caught, but the handler for it then SEGVs again. Ideally, we could detect that we are inside an emulated system call, and be able to just return the EFAULT. I ran the LTP tests for both old ABI and EABI, and got the same results. Attached is the combined patch for fcntl(). Stuart Stuart R. Anderson anderson@netsweng.com Network & Software Engineering http://www.netsweng.com/ 1024D/37A79149: 0791 D3B8 9A4C 2CDC A31F BD03 0A62 E534 37A7 9149 ---1463811327-161298785-1174426369=:12505 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: fcntl() combined patch Content-Disposition: attachment; filename=patch LS0tIGxpbnV4LXVzZXIvc3lzY2FsbF9kZWZzLmgub3JpZwkyMDA3LTAyLTIz IDE1OjQ0OjQ3LjAwMDAwMDAwMCAtMDUwMA0KKysrIGxpbnV4LXVzZXIvc3lz Y2FsbF9kZWZzLmgJMjAwNy0wMi0yMyAxNTo0NDoyNi4wMDAwMDAwMDAgLTA1 MDANCkBAIC0xNDE0LDcgKzE0MTQsOSBAQA0KIHN0cnVjdCB0YXJnZXRfZWFi aV9mbG9jazY0IHsNCiAJc2hvcnQgIGxfdHlwZTsNCiAJc2hvcnQgIGxfd2hl bmNlOw0KKyNpZiBIT1NUX0xPTkdfQklUUyA9PSAzMg0KICAgICAgICAgaW50 IF9fcGFkOw0KKyNlbmRpZg0KIAl1bnNpZ25lZCBsb25nIGxvbmcgbF9zdGFy dDsNCiAJdW5zaWduZWQgbG9uZyBsb25nIGxfbGVuOw0KIAlpbnQgIGxfcGlk Ow0KSW5kZXg6IGxpbnV4LXVzZXIvc3lzY2FsbC5jDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQotLS0gbGludXgtdXNlci9zeXNjYWxsLmMub3JpZwkyMDA3 LTAzLTIwIDE2OjE5OjExLjAwMDAwMDAwMCAtMDQwMA0KKysrIGxpbnV4LXVz ZXIvc3lzY2FsbC5jCTIwMDctMDMtMjAgMTc6MDQ6NDAuMDAwMDAwMDAwIC0w NDAwDQpAQCAtMjEwNyw2ICsyMTA3LDEzIEBADQogDQogICAgIHN3aXRjaChj bWQpIHsNCiAgICAgY2FzZSBUQVJHRVRfRl9HRVRMSzoNCisgICAgICAgIGxv Y2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X2ZsLCBhcmcsIDEpOw0KKyAgICAgICAg ZmwubF90eXBlID0gdHN3YXAxNih0YXJnZXRfZmwtPmxfdHlwZSk7DQorICAg ICAgICBmbC5sX3doZW5jZSA9IHRzd2FwMTYodGFyZ2V0X2ZsLT5sX3doZW5j ZSk7DQorICAgICAgICBmbC5sX3N0YXJ0ID0gdHN3YXBsKHRhcmdldF9mbC0+ bF9zdGFydCk7DQorICAgICAgICBmbC5sX2xlbiA9IHRzd2FwbCh0YXJnZXRf ZmwtPmxfbGVuKTsNCisgICAgICAgIGZsLmxfcGlkID0gdHN3YXBsKHRhcmdl dF9mbC0+bF9waWQpOw0KKyAgICAgICAgdW5sb2NrX3VzZXJfc3RydWN0KHRh cmdldF9mbCwgYXJnLCAwKTsNCiAgICAgICAgIHJldCA9IGZjbnRsKGZkLCBj bWQsICZmbCk7DQogICAgICAgICBpZiAocmV0ID09IDApIHsNCiAgICAgICAg ICAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9mbCwgYXJnLCAwKTsNCkBA IC0yMTMyLDYgKzIxMzksMTMgQEANCiAgICAgICAgIGJyZWFrOw0KICAgICAg ICAgDQogICAgIGNhc2UgVEFSR0VUX0ZfR0VUTEs2NDoNCisgICAgICAgIGxv Y2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X2ZsNjQsIGFyZywgMSk7DQorICAgICAg ICBmbDY0LmxfdHlwZSA9IHRzd2FwMTYodGFyZ2V0X2ZsNjQtPmxfdHlwZSkg Pj4gMTsNCisgICAgICAgIGZsNjQubF93aGVuY2UgPSB0c3dhcDE2KHRhcmdl dF9mbDY0LT5sX3doZW5jZSk7DQorICAgICAgICBmbDY0Lmxfc3RhcnQgPSB0 c3dhcGwodGFyZ2V0X2ZsNjQtPmxfc3RhcnQpOw0KKyAgICAgICAgZmw2NC5s X2xlbiA9IHRzd2FwbCh0YXJnZXRfZmw2NC0+bF9sZW4pOw0KKyAgICAgICAg Zmw2NC5sX3BpZCA9IHRzd2FwMTYodGFyZ2V0X2ZsNjQtPmxfcGlkKTsNCisg ICAgICAgIHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfZmw2NCwgYXJnLCAw KTsNCiAgICAgICAgIHJldCA9IGZjbnRsKGZkLCBjbWQgPj4gMSwgJmZsNjQp Ow0KICAgICAgICAgaWYgKHJldCA9PSAwKSB7DQogICAgICAgICAgICAgbG9j a191c2VyX3N0cnVjdCh0YXJnZXRfZmw2NCwgYXJnLCAwKTsNCkBAIC00MjAx LDE1ICs0MjE1LDQ3IEBADQogI2lmIFRBUkdFVF9MT05HX0JJVFMgPT0gMzIN CiAgICAgY2FzZSBUQVJHRVRfTlJfZmNudGw2NDoNCiAgICAgew0KKwlpbnQg Y21kOw0KIAlzdHJ1Y3QgZmxvY2s2NCBmbDsNCiAJc3RydWN0IHRhcmdldF9m bG9jazY0ICp0YXJnZXRfZmw7DQogI2lmZGVmIFRBUkdFVF9BUk0NCiAJc3Ry dWN0IHRhcmdldF9lYWJpX2Zsb2NrNjQgKnRhcmdldF9lZmw7DQogI2VuZGlm DQogDQorICAgICAgIHN3aXRjaChhcmcyKXsNCisgICAgICAgY2FzZSBUQVJH RVRfRl9HRVRMSzY0Og0KKyAgICAgICAgICAgY21kID0gRl9HRVRMSzY0Ow0K KyAgICAgICBjYXNlIFRBUkdFVF9GX1NFVExLNjQ6DQorICAgICAgICAgICBj bWQgPSBGX1NFVExLNjQ7DQorICAgICAgIGNhc2UgVEFSR0VUX0ZfU0VUTEtX NjQ6DQorICAgICAgICAgICBjbWQgPSBGX1NFVExLVzY0Ow0KKyAgICAgICBk ZWZhdWx0Og0KKyAgICAgICAgICAgY21kID0gYXJnMjsNCisgICAgICAgfQ0K Kw0KICAgICAgICAgc3dpdGNoKGFyZzIpIHsNCi0gICAgICAgIGNhc2UgRl9H RVRMSzY0Og0KLSAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhmY250bChh cmcxLCBhcmcyLCAmZmwpKTsNCisgICAgICAgIGNhc2UgVEFSR0VUX0ZfR0VU TEs2NDoNCisjaWZkZWYgVEFSR0VUX0FSTQ0KKyAgICAgICAgICAgIGlmICgo KENQVUFSTVN0YXRlICopY3B1X2VudiktPmVhYmkpIHsNCisgICAgICAgICAg ICAgICAgbG9ja191c2VyX3N0cnVjdCh0YXJnZXRfZWZsLCBhcmczLCAxKTsN CisgICAgICAgICAgICAgICAgZmwubF90eXBlID0gdHN3YXAxNih0YXJnZXRf ZWZsLT5sX3R5cGUpOw0KKyAgICAgICAgICAgICAgICBmbC5sX3doZW5jZSA9 IHRzd2FwMTYodGFyZ2V0X2VmbC0+bF93aGVuY2UpOw0KKyAgICAgICAgICAg ICAgICBmbC5sX3N0YXJ0ID0gdHN3YXA2NCh0YXJnZXRfZWZsLT5sX3N0YXJ0 KTsNCisgICAgICAgICAgICAgICAgZmwubF9sZW4gPSB0c3dhcDY0KHRhcmdl dF9lZmwtPmxfbGVuKTsNCisgICAgICAgICAgICAgICAgZmwubF9waWQgPSB0 c3dhcGwodGFyZ2V0X2VmbC0+bF9waWQpOw0KKyAgICAgICAgICAgICAgICB1 bmxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X2VmbCwgYXJnMywgMCk7DQorICAg ICAgICAgICAgfSBlbHNlDQorI2VuZGlmDQorICAgICAgICAgICAgew0KKyAg ICAgICAgICAgICAgICBsb2NrX3VzZXJfc3RydWN0KHRhcmdldF9mbCwgYXJn MywgMSk7DQorICAgICAgICAgICAgICAgIGZsLmxfdHlwZSA9IHRzd2FwMTYo dGFyZ2V0X2ZsLT5sX3R5cGUpOw0KKyAgICAgICAgICAgICAgICBmbC5sX3do ZW5jZSA9IHRzd2FwMTYodGFyZ2V0X2ZsLT5sX3doZW5jZSk7DQorICAgICAg ICAgICAgICAgIGZsLmxfc3RhcnQgPSB0c3dhcDY0KHRhcmdldF9mbC0+bF9z dGFydCk7DQorICAgICAgICAgICAgICAgIGZsLmxfbGVuID0gdHN3YXA2NCh0 YXJnZXRfZmwtPmxfbGVuKTsNCisgICAgICAgICAgICAgICAgZmwubF9waWQg PSB0c3dhcGwodGFyZ2V0X2ZsLT5sX3BpZCk7DQorICAgICAgICAgICAgICAg IHVubG9ja191c2VyX3N0cnVjdCh0YXJnZXRfZmwsIGFyZzMsIDApOw0KKyAg ICAgICAgICAgIH0NCisgICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oZmNu dGwoYXJnMSwgY21kLCAmZmwpKTsNCiAJICAgIGlmIChyZXQgPT0gMCkgew0K ICNpZmRlZiBUQVJHRVRfQVJNDQogICAgICAgICAgICAgICAgIGlmICgoKENQ VUFSTVN0YXRlICopY3B1X2VudiktPmVhYmkpIHsNCkBAIC00MjM0LDggKzQy ODAsOCBAQA0KIAkgICAgfQ0KIAkgICAgYnJlYWs7DQogDQotICAgICAgICBj YXNlIEZfU0VUTEs2NDoNCi0gICAgICAgIGNhc2UgRl9TRVRMS1c2NDoNCisg ICAgICAgIGNhc2UgVEFSR0VUX0ZfU0VUTEs2NDoNCisgICAgICAgIGNhc2Ug VEFSR0VUX0ZfU0VUTEtXNjQ6DQogI2lmZGVmIFRBUkdFVF9BUk0NCiAgICAg ICAgICAgICBpZiAoKChDUFVBUk1TdGF0ZSAqKWNwdV9lbnYpLT5lYWJpKSB7 DQogICAgICAgICAgICAgICAgIGxvY2tfdXNlcl9zdHJ1Y3QodGFyZ2V0X2Vm bCwgYXJnMywgMSk7DQpAQCAtNDI1NiwxMCArNDMwMiwxMCBAQA0KICAgICAg ICAgICAgICAgICBmbC5sX3BpZCA9IHRzd2FwbCh0YXJnZXRfZmwtPmxfcGlk KTsNCiAgICAgICAgICAgICAgICAgdW5sb2NrX3VzZXJfc3RydWN0KHRhcmdl dF9mbCwgYXJnMywgMCk7DQogICAgICAgICAgICAgfQ0KLSAgICAgICAgICAg IHJldCA9IGdldF9lcnJubyhmY250bChhcmcxLCBhcmcyLCAmZmwpKTsNCisg ICAgICAgICAgICByZXQgPSBnZXRfZXJybm8oZmNudGwoYXJnMSwgY21kLCAm ZmwpKTsNCiAJICAgIGJyZWFrOw0KICAgICAgICAgZGVmYXVsdDoNCi0gICAg ICAgICAgICByZXQgPSBnZXRfZXJybm8oZG9fZmNudGwoYXJnMSwgYXJnMiwg YXJnMykpOw0KKyAgICAgICAgICAgIHJldCA9IGdldF9lcnJubyhkb19mY250 bChhcmcxLCBjbWQsIGFyZzMpKTsNCiAgICAgICAgICAgICBicmVhazsNCiAg ICAgICAgIH0NCiAJYnJlYWs7DQo= ---1463811327-161298785-1174426369=:12505--