Message ID | 20160906155918.GA24871@yury-N73SV |
---|---|
State | New, archived |
Headers |
Received: (qmail 117865 invoked by alias); 6 Sep 2016 15:59:46 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <libc-alpha.sourceware.org> List-Unsubscribe: <mailto:libc-alpha-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:libc-alpha-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 117752 invoked by uid 89); 6 Sep 2016 15:59:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=H*r:104.47.42, H*r:sk:NAM03-B X-HELO: NAM03-BY2-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; Date: Tue, 6 Sep 2016 18:59:18 +0300 From: Yury Norov <ynorov@caviumnetworks.com> To: Andreas Schwab <schwab@suse.de> CC: <libc-alpha@sourceware.org> Subject: Re: [RFC PATCH] __fxstat: replace if() with #if when checking version Message-ID: <20160906155918.GA24871@yury-N73SV> References: <1473166521-24827-1-git-send-email-ynorov@caviumnetworks.com> <mvmmvjlfa51.fsf@hawking.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <mvmmvjlfa51.fsf@hawking.suse.de> User-Agent: Mutt/1.5.24 (2015-08-30) X-ClientProxiedBy: AM3PR03CA044.eurprd03.prod.outlook.com (10.141.191.172) To SN1PR07MB2253.namprd07.prod.outlook.com (10.164.47.147) X-MS-Office365-Filtering-Correlation-Id: 9949c9d6-573c-4a36-02cc-08d3d66ecb22 X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2253; 2:tShz7aNEfhNOJ4zoea/8rvnUWhzcgsQPNy5zn1CHI6Y4rzi1S72kL05570nyUk0YFRmvkgMKkF9N3N+O2CRzTvkiz+QjackCLmHzKZdighq/3PzirtDbZ21aojuWAlX677k40t9Rlm1TgYvGlO0Ac8e+y5vyUagE1sy3r3FaPIijUYoC+y9j2TKYWZrydpFF; 3:lntOtoax74b2wjXCIsp/kIBpbxU5rr5PnCYE0fCrBpS/vH4cNkOsO3NYD6Ua22CCHLv3zYD2OGXcwKN0VZa9cMRMfZH5rXmE1HG2tlnlU7SIM9+0XyoCAMLpBRRMT103; 25:eS7KQxwt/JuW6Man+ZTqpxqPazhLUcfUBskO522eAKaXNxnH1ro2BzzFv13qxH8A7/q+URZib/CwQJIKTyZpY7otdUFQM8fI+AUZlGhT6xg9GUZfBIYfpf+f9d0Bcx8IfLDNfwSzkxuP3w9E/l+9XP2ArLzVLnjED7+VO5wTrGvVh56L/OnWzXM/4TS8mrI7BK4sKSsi6jvZUMVohxMXYADV44WYY7G4CWIqnAV/VExJf+yvfCxHgN+rM/LVVeciFVTJ1lvAxrxxUGh49twdCARcsT5uw5madF6nONKKBh74bETL/HwcoSCYXmKh5dFO3LEejzkqjW1ktaimPvEYEvSgf0CH5MteeUBRiZQOLn8KumC+lOxHcyd1e1n2AXn+az4oxqCkFXIejt9/mJFOlNFOlegvYm8d85l35aET3Lc= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2253; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2253; 31:tsVMTdVG2AtyAYE6W/Ut4yA/LTP7VnoIK+KNQyhzLqETfeLajcZbiCo/mzHkIzxxeggLXSa1in27A3enb4+RTOpKfisMolv1EbBHclPCnAleSvfvPa+oThL22i1hy0XF2TEVKqfHLe3H6JMCZkOAz6Jaaq1WFiSXc8UYMO288cBwBIPZVOxUVMdP3854Kvq5+O/5jDJZQxbphFXxik6MeX20NLol9QWZfWEKlpwwwvU=; 20:K61dDIIAye6JXT54ZlnZD+5IqVXqCS4GPp0eIEqmrkuhURktzfQF6k9BN5VTqH/57mQ42yCpfvUDt9pFaNkjVuwRv/2twaMmekO5Wbym2CeQFzFvhL9SXYPjZCpZ0RtliXNfjZwu7nRzfyTTSYjkKgSQdoo5+eXzDRBivN2+9lLULBhMLL0TDpe6nGJ+9dwLEJ44Ff62je9kufFOFwHGgEaKhjStejIpghTvvyLQ7jE75Yu+6PrbttnzymXHrvIk3oJBliv7iiBnjdL/QCyzlG6ywZcGJdQH0w+oEUW+MFodpjXQ7e99JoCfUsE33TCVYl0C4EIAtpv9XwF1W84oMo3FTJkCmLbdZURGsJHcfvwQwjpUgqgP+Kq5vnF72aEtVEtLampUmyq8zuV80hu3LOG1i6K/I7hMa+LBq/Dv0GvV6GLEDAIt9r/yjb2DMSxxPfeK1I5ob0W6qUbljCcjyu/3fNa3myG71itRyHk0eJxsM/L7tx+Kzslq7GplxQ7NbNxCNaN4K2dSq68OTmF1u7KAdXxvsCihvqzOwaYsMTrVPrLPoEHVciKWcqXQ7JToV7BIssGSxU5qMGwCRSvkQBCeUOHvr8FzcMIxjqwbqNE= X-Microsoft-Antispam-PRVS: <SN1PR07MB2253A8F3DADC4F441B332238EEF90@SN1PR07MB2253.namprd07.prod.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:SN1PR07MB2253; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2253; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2253; 4:Gfc5r6S02DOMx8NwuRNyNWPXPSb3z6O9CeAFAY1AD/jcbJjfxxt/xHT3S7FCRpnwgGnakfx4aokHYPvmAU5GcYfF0rjea4KTCUTN2IUEXeyLS6yKINwrOjgXtRJmewog79GKRhPkphy+sQW+0AiM1gbbRPSS8QP1dArXM2CJaGMcHttQXLLZ3ynWtRTej1B7g3fdi18mCrd3323hE4mcV5F4HsznuzQKmV6KLPRe6rQF73UHCJJjgeFGuQD1Qgz/LlzN95S6snehPYzP6CsvJQVTjPA+Nz53+0VIWmKTgiIbBEXmH0HrPM5aRJBmFqG+w+f1WM8F9g4yKb9Cx9iIaLfs2oyvP4xRHePjtyvC/TSOHyqHTL3jbKn3EISugjQ+Tqvb1DIfCe7dLBm2RUnvpEu0MKVggJIIMlPq9aULOYgKfeNHcXVLK3PdLNiZ2ttm X-Forefront-PRVS: 0057EE387C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(24454002)(199003)(189002)(68736007)(77096005)(42186005)(50986999)(2950100001)(101416001)(47776003)(66066001)(33716001)(5660300001)(105586002)(76506005)(7846002)(7736002)(305945005)(9686002)(46406003)(54356999)(189998001)(97756001)(110136002)(76176999)(19580395003)(19580405001)(83506001)(3846002)(23726003)(6116002)(92566002)(2906002)(50466002)(8676002)(33656002)(81156014)(81166006)(106356001)(4326007)(586003)(97736004)(1076002)(4001350100001)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2253; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR07MB2253; 23:R5Z6Px5II40YVW+s9mMw5pvbnFeOjkUQrEkP0WWQj?= =?us-ascii?Q?vakarmJZ4WMIhUwchORxP5JMKV7o1d9/IKswoiGdf+wVxIjrgb1PnDx3YS36?= =?us-ascii?Q?Gbw1JRLAppsrjl+upt1Oy9PdpI5/Qp9pgPyWGzs/SLCXBF+mrFae+kg2XA41?= =?us-ascii?Q?RKeDCPABFDAxzC7YtAMzvEwryH0d1EeB9bdMJGuMMm6pLrjRWaa92Lwko632?= =?us-ascii?Q?oK0IbckUYX592TB/ozdPbQpQjRKvQip2MlGspi/qYat1seY+FadEzdjZ1IuC?= =?us-ascii?Q?WYZB+VIJ+K6tcXAQelnL9YzjCiRpbK/0XeEa1Hm5WrNs0dPQamC5Td1Q1jww?= =?us-ascii?Q?l/sVoxB/Qn5KqgiQBr6DJV1p9aAHYfk0PYhS7TSwdt8Jxop+TjyOW/ZEy9ow?= =?us-ascii?Q?iOcXKiVYPEF3HdVigdfF0YFx/BJHHDQoyz94KEgaINoMgQyfLRmB5WuXZKzq?= =?us-ascii?Q?w6m8dDM3EhyoNkOjv9UScFF0KDLoLh5VIKGA/6KL8waOz5OymFx4qFLb4bMF?= =?us-ascii?Q?7n8V2wVVkoTTswonbLa/d+2Q7PK57cRTn12p93my9GVVh990E6v7fG+gNZAm?= =?us-ascii?Q?5cN1It3cVwDqom+K5DkvCkkoCCMFkK5S5MHn4JbmIxLmVikdGZ8Mhwi4L17L?= =?us-ascii?Q?VpCuCeDoCLVUd7UFEgMWqJ/7cQn3wYG6kfEdDJ8pj9O+Oo/M7HQPqdR07SmH?= =?us-ascii?Q?GDqjxeHuofv7A1hT9PjC3MX8Q5/5xwR9KEaKqPHbDTVCuIM6trKbAf6YqK39?= =?us-ascii?Q?rjlNJbrNADJf1PBX1us2LMc0WLOHGB78E8q6buDst3CVkPbhU88MFI+ajfa7?= =?us-ascii?Q?kZuJtcxrywWobuuPQi8tKGW79ITYgy8eU1MptTdouDA6rkyJjN2qwl7jjq31?= =?us-ascii?Q?IvvJXhYvjwPcjCpsx0rZkmSTc5jqeK08FDhgeiaQcjMGqM0P5WKoK+lYRrlf?= =?us-ascii?Q?bg9Y0wFx5veKFv3SHqDVzeVlknujNDGuKhQ+YlAdyI6iLRnJkcCz3fSeZPA7?= =?us-ascii?Q?AHjvKyYLNQAkkqkCV8F9Bek5nZfRyRPokxS2/wnSvtuHpdvO8ddHD3Oy9StR?= =?us-ascii?Q?rBA04FFAt/J/lDgjZR0SsmeYNf3hNkpZCeskKwGeMTlH8HafrUQJoSB58c2u?= =?us-ascii?Q?gsHnNhML31evKzvq7Rre3jwiVAGmYn8IYfT2bRdIllTR7lKb1uC5UwIgBQ8Y?= =?us-ascii?Q?/xoKj8aFCckhGIyG8iQIBUl6aalceZGobaC1ZahZsBaWEUcZuQqbgoVng=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2253; 6:QrzNyP5VY5kwXNOzbvJeDZkNVoe0Q3fc0LKraBJ/C4KdRlNxIZLcvz1P8Rg6EUuTIc+o7Fm9istWMbTllBk6Wxhaf+QUrCzPXYA6oub4AqGK0epBi31zy4MMFPlMuFjenWOOCvvvybVYtAbvuuWYQ660IZa98xVyMl9V3fWpFXXp4Vb6v/xcJFqp+z6I6Yc+q9ZWmn/0mzvHy3aOyiF0qrTpZE9a5CJ/wME/JKsMeA8BK4WQbRxbF2jSafaTI6llmGy8iuW585Gz3rJBXLhMaNMGI5CEfFDmHn/UQcWFWFA=; 5:kzl2ty4y/vbI3EwsZ8BEO2iugeSTREMk38S/A/ycdCHM3BhIxczxif9YYBfan0S/aasoUJt4gqeAqu0maD2l0VYMYmIDj502rfYBh7gBjIwAFUryNzCUiOwYwovayup9DR3BV2G/x8zxDkOCzgDYqQ==; 24:ncgZy3DxR7cqi7CE4CJJJHYb8DQcOksR5VPuHS8NZS6Jhe7JcmN1yXsa91m06IYWGmP+n5nfwKiQIFqxf5nBRA5IPxs5aYoqunm37Af/0+8=; 7:zuooFiAXaOvTRgPOIggrxhtsRaQDT/Z5d24gFw2AhKJY6tYolffsv+YS4dirNtczQk87puxCPtvDh7OqNN8LtmQtF273aHPgqVSbKL++wVGMo2IrPtvDQgbiQzpDYKq1oOfulPFDVNqz2UfKplc8FPHIUtwi+6uyp1rCGl80rvStKKU75QzEq12ktgaFfpSnXzV0w49M5Er/A04c1fBBF9IbP4nNkq/vl4kZtYJ4Gz5Yg/BMXu4tVb5SQ3Crrt2u SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Sep 2016 15:59:32.5403 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2253 |
Commit Message
Yury Norov
Sept. 6, 2016, 3:59 p.m. UTC
On Tue, Sep 06, 2016 at 03:08:58PM +0200, Andreas Schwab wrote: > On Sep 06 2016, Yury Norov <ynorov@caviumnetworks.com> wrote: > > > __fxstat() is always passed with _STAT_VER as vers parameter and it's > > in internal namespace. > > It is part of the glibc ABI. > > > If patch is found reasonable, I can check and fix other platforms and > > stat syscalls. Could someone explain me, what for we need 'vers', > > if we pass it with the only value everywhere. Maybe it's time to remove it > > completely? > > _STAT_VER has changed over time. > > Andreas. OK, now I see. It seems like STAT_IS_KERNEL_STAT hint is used not optimal way. In my understanding, it forces user pass vers == _STAT_VER_KERNEL. But if so, glibc may avoid generating the text of __xstat_conv(), and so no struct kernel_stat is needed. Take a look at the patch below. Does it make sense to you? Yury.
Comments
On Tue, Sep 06, 2016 at 06:59:18PM +0300, Yury Norov wrote: > On Tue, Sep 06, 2016 at 03:08:58PM +0200, Andreas Schwab wrote: > > On Sep 06 2016, Yury Norov <ynorov@caviumnetworks.com> wrote: > > > > > __fxstat() is always passed with _STAT_VER as vers parameter and it's > > > in internal namespace. > > > > It is part of the glibc ABI. > > > > > If patch is found reasonable, I can check and fix other platforms and > > > stat syscalls. Could someone explain me, what for we need 'vers', > > > if we pass it with the only value everywhere. Maybe it's time to remove it > > > completely? > > > > _STAT_VER has changed over time. > > > > Andreas. > > OK, now I see. It seems like STAT_IS_KERNEL_STAT hint is used not > optimal way. In my understanding, it forces user pass vers == _STAT_VER_KERNEL. > But if so, glibc may avoid generating the text of __xstat_conv(), and > so no struct kernel_stat is needed. Take a look at the patch below. > Does it make sense to you? > > Yury. Sorry, I was wrong. Everything is right.
diff --git a/sysdeps/unix/sysv/linux/fxstat.c b/sysdeps/unix/sysv/linux/fxstat.c index e33023b..e9777df 100644 --- a/sysdeps/unix/sysv/linux/fxstat.c +++ b/sysdeps/unix/sysv/linux/fxstat.c @@ -35,20 +35,25 @@ int __fxstat (int vers, int fd, struct stat *buf) { +#ifdef STAT_IS_KERNEL_STAT if (vers == _STAT_VER_KERNEL) return INLINE_SYSCALL (fstat, 2, fd, buf); - -#ifdef STAT_IS_KERNEL_STAT - return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); + else + return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); #else - struct kernel_stat kbuf; - int result; + if (vers == _STAT_VER_KERNEL) + return INLINE_SYSCALL (fstat, 2, fd, buf); + else + { + struct kernel_stat kbuf; + int result; - result = INLINE_SYSCALL (fstat, 2, fd, &kbuf); - if (result == 0) - result = __xstat_conv (vers, &kbuf, buf); + result = INLINE_SYSCALL (fstat, 2, fd, &kbuf); + if (result == 0) + result = __xstat_conv (vers, &kbuf, buf); - return result; + return result; + } #endif }