From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 98500 invoked by alias); 16 May 2018 12:03:39 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 98487 invoked by uid 89); 16 May 2018 12:03:39 -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,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 spammy=H*M:4f90 X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Cc: nd@arm.com Subject: Re: [Patch] Use VDSO interface for gettimeofday on aarch64 To: Adhemerval Zanella , libc-alpha@sourceware.org References: <1525975253.28825.227.camel@cavium.com> <0b2d054c-d016-d825-780a-27e2b7c75c6a@arm.com> <1526425669.8676.49.camel@cavium.com> <3e69a4f6-55a2-35b7-1047-0ff2662eb513@arm.com> <175594f7-9787-b3e6-89a8-5716598e4b8c@linaro.org> From: Szabolcs Nagy Message-ID: <73dac592-0a5e-4f90-f130-eebf8a133d3c@arm.com> Date: Wed, 16 May 2018 12:03:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <175594f7-9787-b3e6-89a8-5716598e4b8c@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: CWXP265CA0033.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:2d::21) To AM0PR08MB3281.eurprd08.prod.outlook.com (2603:10a6:208:5e::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(48565401081)(2017052603328)(7153060)(7193020);SRVR:AM0PR08MB3281; X-Microsoft-Exchange-Diagnostics: 1;AM0PR08MB3281;3:SZHD++m6knu4ucXBbA/7vhZRld7RTiHnuHvk1r64zdCRQ91s6aBQcVerO/2M2qcb6noZOeRe5fRzGsD7744Vbqzrhkov1zGGWcxCtoLTKMzhGJ4DKLJtNssg+7ZMM9z0ZDre4EOx/Q8kYkiXHI4/701xS6QSHXWaQCEObLySWL/WcQ1I8Mgoob+3HtBXoHyU+jZCuxLFCvbfOm+4tk53g5UfckmIOD3cHimNSvPDVbdBTDWe+YedsxG/159zTJGX;25:oMRwstkO2QRvyMND07hdT7nOc/RqgFIgtE6DRV/RgxRMWAJGZR1NhGx2bVX7RPmDRRqwJYeppy7Ps83AxVHDlihSdPHW0Ouo73vKM5DiSnXH/nbcBMkzREjjoOoRXo3/2kR9TvoSNWkYa0Cmq5n2EpxSUD4XL5wAmTn4FEke+pTZ07uQ6xMF6+aTTJANdKRrNEP6yS09KIul4zVuND59+3ZTr7PAnqPUfNJuYOc7c6DZvOLrKkbwOps5AakMItQwibGIO4o+IAWXXZOdNaR91AnLSXnUybte0wtB969UEYrkZcreRctOmhpZjVIenITFNuNRGAcohX11ov8iEJ9sjA==;31:jnRcjJJGAz4FfgUsa5dm1Zg2+09IMwluaxd3MG13jma5IIgWl5VEdf5R9Cc4TAK/5sOw4LRT6NTnLqABvU3ZJFIHhB39TUD7mEN7tynHHLFx3aciojNOkodbRBRVqWAlhAIcs0ESkvYaMf2kiV2DCE6O+MyM1ckFdR3JYRGmhjsWKm69Q27bSZZZgSh3rZ0rU6mYNRgLmnhm3SNv8C7BSq0VUDOlYqWU1OFWBpg+KN8= X-MS-TrafficTypeDiagnostic: AM0PR08MB3281: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;AM0PR08MB3281;20:C+rZqQacaPWADlG7axuqT4e86iVR+2yrIRgmZtIyrO6Ola0PWrsLum/RqEMh6KrTOfY/1qu7bMYEVUFSU6O8PpfhihM8HMQsx3BjO3GNSuHoSRxB6FooPOUZUApfd62EVEwz6Ha1Qy/tXgrrVv3DIpCOqBNFJX1lTJl91Wu3lmyjPaI7JL6qCo7tzQFyaymCclQpp1T0wPNoTA4GHAXFLITRoxUhgyHa1DIqJHI3xjoSksdv4Bsd0/bY8mQKSWOo;4:ALl00jJuaUHLfNxBBcza1AjC0Pf522eSSxV6lDXLFC41SbiKK0o55NdIDHHMd1Rj/qbp0Htt7EkO+WX+6PeD9JwswsvGr2gETmp79XWRahq1WaW66I3tm1gaUgYsYTZE/1gEhckFBRh4x9FCLyxbZx5IYrBxQ23uf4LsbzV/0riWcBqHt2u7RdbIZg+8gR1Oi+yiESzwMBYrcxBw8SOzWoE1mPeedBKBjPli8/glRuHsNsdFawe8twkaw1DHRPZmE9t62Z1rt55wI2Eo3fdfKg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(6072148)(201708071742011);SRVR:AM0PR08MB3281;BCL:0;PCL:0;RULEID:;SRVR:AM0PR08MB3281; X-Forefront-PRVS: 0674DC6DD3 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(979002)(6049001)(366004)(376002)(346002)(39380400002)(39860400002)(396003)(52314003)(189003)(199004)(97736004)(7736002)(68736007)(478600001)(2906002)(72206003)(486006)(44832011)(5660300001)(6116002)(3846002)(476003)(81156014)(305945005)(81166006)(25786009)(2616005)(8676002)(229853002)(446003)(8936002)(65826007)(956004)(36756003)(11346002)(230700001)(316002)(31696002)(59450400001)(16576012)(31686004)(53546011)(86362001)(6486002)(4326008)(105586002)(58126008)(67846002)(93886005)(16526019)(47776003)(52116002)(6246003)(52146003)(53936002)(64126003)(23676004)(386003)(2486003)(50466002)(76176011)(65806001)(66066001)(77096007)(65956001)(26005)(106356001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM0PR08MB3281;H:[10.2.206.57];FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTBQUjA4TUIzMjgxOzIzOnF2S0x1NkNBaVlDK2VjMy8ySnZnY09MWmtY?= =?utf-8?B?Y2pNS3d4K0Z2SjBoZVBWWWFpek80cytzVUZ6cTVlNXhFOUJJOFdtWEpmTEFC?= =?utf-8?B?dHpnaG9GekZ2d0lqbUx0SEUvY01FZFFvUnFTNDZpSWl6SW94aXdyeUVXNlpD?= =?utf-8?B?bXlVNExocTVxSVBVbmk3WTlDdXN3YUpDNDRHMERtWDhxVkZad3grcHlaVDIw?= =?utf-8?B?OFBiajNSRkd6emVjY3crQVZqaXUzK0QxR3VQcVhhN1N0T1M4MmVucGNLMmRt?= =?utf-8?B?UGZEd2E4ZnM0bTFsZ1J5QzN3MS8vMUZ2VkZ4WHhET2FhU2Z5eENQbEVVKzFq?= =?utf-8?B?emg0THlLVG82ZTk2a0Y0azl0aXBTRGtxZ0hVZUtxUnhnb0pqZ1gra3JiYWVz?= =?utf-8?B?b24xcUR2OHNiOTFTU2tQZWlGamNiRG5DUUpkZmRUV3BVWGFCY3BTSXprS01E?= =?utf-8?B?N2RJTGdqNU1abFFnQ0J4Z3J0eG5nNmpxR2NtVWFlTDVIaDRzdUtEOCtlZm5U?= =?utf-8?B?aS8wOEZ3TzZYazVrMGZSWW5GRDFUZGE5NXJDdi9WN1NteGJhcVdPTGJVSjBM?= =?utf-8?B?MmYwWmNialoxMHdyWU5SeE5abm1NMGVweGhFbmc3UllMd3lFdGJBOUpkbEFQ?= =?utf-8?B?NXlHSzlEcnFmdThCVVdYQW5aOFFXV2t4UDZEaVA0aW9qVVdNUjF0K1FCRm5C?= =?utf-8?B?Z1JzbWlIUDlMaVhXNHp0SXdFT2lsZGZ6Z3ZjTzhrZ3ZkdkdLdkJiR2lURkpW?= =?utf-8?B?dk9SUkhTRlh3cFN1RkdnM1lJb2hRSDNBVGIrRTZQM2hWbTNpZDQzbXFsNTNo?= =?utf-8?B?RVRwV0ZicTlHZitWRTBHc0hRNGpKMWNWRG9TUFk1dVZldVNPeHVITi9UWUdr?= =?utf-8?B?UkM5TkFCQkk2N1Q3VFMwOUJNZnpyL3ptNmw3YndKMEFqRllmQTVuS0E5QXQz?= =?utf-8?B?RlRIdVBBVjRjN3FWbEJGdE1CL243YVRaVmxmbkpKTGFvOHVUQ1BnaTJvRC9W?= =?utf-8?B?UEsydm9aa283TlZFVUdGRHJZbGdHVWJDMEdlRzlVekZycjdWSnRxU2t1dHln?= =?utf-8?B?SzV3NEYvQnlpVzZhV0VWTktvYS9WS0VMcFdUZ1JhZ241S29KTnByc3RYUkNM?= =?utf-8?B?cURXMFdkSzJVdmpoWEtYUUtrSjRXa0xaZVAxRWRMczE4SFBJSVNHYXZqZnp2?= =?utf-8?B?VGxSNzFLRTVuNGxPLzBTZ3QwWGJXclE2UkdsdGF6TDVXMjhqT3JwanE5WTNk?= =?utf-8?B?RWpFZ2dzb2NCODQ5SEdHbDBVOE1ERWErdW16dW9GV2xaeDIrdDZuY28vSDV4?= =?utf-8?B?dndBVUV1cnFrZHRTbDZPM3B6Z2M3cHlwWk9IM2pkT2puRDIweXY5SDVwY2Vy?= =?utf-8?B?cnF1V1VndklqMUNjQllUSUdseDB5YTNjcVp2STNtVVV3MHpUUVJEd0RKR0lL?= =?utf-8?B?bDBLWWhqK3AvRXI4VVBhcWZmNU9CeVllaHJWS1JNNVdCaVN4WU1WdTBBeXZZ?= =?utf-8?B?NzNESGNIRUdDbHVFc3dJbTJlbklNSEIyOWFMZW5IdkR0ZmJZbXdENWttU05W?= =?utf-8?B?UHIzREtud3RmQVZmemxHTkNEUFY3WDRYVkFlWGdiODNTSXdTZlZmaHExQUFT?= =?utf-8?B?enN6UWYvZWp4OTNJVXFVSXhZRjU1MTk4SFlOeEE0RHJmQ241R2FJYWxtT2hU?= =?utf-8?B?eGFTT0ZNZ0FVeEhXRjRGSWQrNDNsajN6NVJGOElZVzlkYXpUWDBHUGZlMTMx?= =?utf-8?B?bms2RVZiMCtYN0N4dTBvSnVReElKMFdTUktlMlZOSENxcTB0d3hVTG1ueUV5?= =?utf-8?B?KzZ1RlFrb1VidzJYVzRDeHVyNyt2RFNkNE5XRllnYWtZZXhabnJJRHVjcG5s?= =?utf-8?B?OGZIVXlpTCtjcXhvTHNFb0RBQXpvYiswdlE5UXNrRWNzbnNJOHZsT2s4amEr?= =?utf-8?B?Z3NTcGE0SEgzOGlBVXV3aHFvS29Hd20zUjRvaGpSVk9FdGR0RG5pVnNrNEds?= =?utf-8?B?YmFNbkdMaFIxYlJOTjk5WVRzSTNneEhOUzJyd2hnK2RQcW83RlBlQ2ErMFVW?= =?utf-8?B?cXZMajB0SlhMcVdqSmZqRHhMQ09odDdQckg3eWwwVHBmekRVYlhjc2hwWWVj?= =?utf-8?Q?xOJeaSYzuf5GDJRFAnJUFuzhNGmHbXHNsTKWCpvI0LlV?= X-Microsoft-Antispam-Message-Info: GRbL9azbFAr/rxeZRVV01gze41p79lLKFkiyzGoME8FOfAz7FSd/UyoJE2mtJ10RfnPMtAPRL+m0YLkcAA5L/pXMeGlvg2odnzi2BfMgApjhxEkLvQnfdpV5+wmKsg3ukQWA6KwDfGz8cTPFCyjTpRbHvUrfxLi6pl6mdeSf4OLMs56KqCs3YnfpBtOAPRav X-Microsoft-Exchange-Diagnostics: 1;AM0PR08MB3281;6:71sI35OWVQMdjclMUip1PCuAhDKMTteK8yCASNK0IPDuTI4tQlCFcLJKxeSZEtAZbu4l0TqHlsyPeonI3su7LSjpXk892Q+dPSjIPzkJ5wsU+JvajOzOEKGxbkBWtv+IC5G+XzwjP1/C1nekMCJtFT4Ch4GOd4tVinHV21OdMVx8zqVngGv1ZU9UHyJJ7IxAopAxFR/npgQH0mgBgNizL/+HbbxBvwPP4B/E8plOkUHB8iHxH9aZoAkBRi19bT2+5ZG6jg8fCO3vCvAEpUXEPpR1g/II3EVea3M7mxt6X6zAeSVfCBuQ9roxabw15c9hxVeHlgwxE/QjRB5AdbAf9ZR5Yrfx6o8LDCmY8ywAYz4jzK6xhSTVsryo9j/0r9ccutfKZEEuyODlCBWmzvXmfhP58X4Qn901pHqakpT4KeT+HCDPPbI0K6tUB85gGxvWsjYAb469UZEfGVpnPdNC7g==;5:5ke7RrluxFB/aZAPnX3izwGoaYVNYztBgS+XJUWpbzJvHvuqAJFcAl9V56OkEhilZ7IbM9HF6eK7oUcau9U59cILyWJSDOcBOe7nYPbPcoAQa90jwBbIBN6maMHsjpx0XBzFw6Ueb0x9KB6jR9LhmYPR9p9i8OubQ9Noty90wcs=;24:4JHjYshf2kTZc+ZmkgjWkf3YHrPbQjWIepa0TAl7O+R5aoelD/PbYwDnk/6jBWNNTZIpPQHbP+Fiu1mrNbvf14ntGWkG0ZNnOxWIYuFot8g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM0PR08MB3281;7:xpyuEMkvtIJJFwnB84Rzx6pg+D46lrgSY7cMIb3PIscNJOfDyoxCr5x7aG6KKkuKX79mLjCTxilq5LA6dsR0FRA9cyBYURiFo6GYfVNIkB5liYEU/v4vShOiR5oifvQaoHimEThmYxXugB3wAxkwIxFrwpC7f71tVetV+5kt7GFiA4pzN/Jl8eF7ew3WW4D/FZX8+7tTAK70bsdUnl7EejZc+ewNamC4v9xpqUeqzO+0zrQlwWOs95I+zevPSBF6 X-MS-Office365-Filtering-Correlation-Id: beade836-833a-432f-a0cf-08d5bb250c4d X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 May 2018 12:03:33.5660 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: beade836-833a-432f-a0cf-08d5bb250c4d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3281 X-SW-Source: 2018-05/txt/msg00611.txt.bz2 On 16/05/18 12:51, Adhemerval Zanella wrote: > On 16/05/2018 07:44, Szabolcs Nagy wrote: >> The other thing that would be nice to document is that >> why this change is safe for gettimeofday but not clock_gettime. >> (former does not have to set errno other than EFAULT but that >> case never works with vdso anyway, so the gettimeofday vdso >> function is a complete implementation, while clock_gettime >> has to deal with errno after the vdso call) > > As I put previously keep in mind that different that x86 and powerpc > implementations, where the vDSO symbol does not fail; the arm64 vDSO > implements a syscall fallback in case of underlying hardware requires > an out-of-line counter access (arch_timer_enable_workaround). > > Using a ifunc accessors to call vDSO directly will result in a slight > different semantic since generic implementation (kernel/time/time.c) > might return EFAULT in some cases (which won't be handled by ifunc > implementation). This should not be an issue since POSIX [1] defines > no error code should reserved for the symbol, but it might trigger > some test in LTP. > sorry i missed this comment, if the vdso can fail with -EFAULT then this optimization is not valid (gettimeofday must either return 0 or -1). if userspace can test whatever the kernel is testing there, that could be added to the ifunc resolver and only use vdso if we know it does not fail (i don't know if this is possible).