From patchwork Thu Nov 10 18:22:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Metcalf X-Patchwork-Id: 17379 Received: (qmail 56575 invoked by alias); 10 Nov 2016 18:22:50 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 56560 invoked by uid 89); 10 Nov 2016 18:22:49 -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, SPF_PASS autolearn=ham version=3.3.2 spammy=applicable, our X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=cmetcalf@mellanox.com; Subject: Re: Remove sparcv8 support To: Torvald Riegel References: <502720f6-3057-41f5-7832-4b219f5f729f@redhat.com> <20161107.113825.631166023186879199.davem@davemloft.net> <1478711295.7146.969.camel@localhost.localdomain> <20161109.121552.63825213147087515.davem@davemloft.net> <06d4798f-cf0b-fb29-04e5-daf9faadf46c@mellanox.com> <1478797727.7146.1013.camel@localhost.localdomain> CC: David Miller , , , , , From: Chris Metcalf Message-ID: <17b6735b-7376-bb70-5b70-c53fa6fb2c87@mellanox.com> Date: Thu, 10 Nov 2016 13:22:23 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <1478797727.7146.1013.camel@localhost.localdomain> X-ClientProxiedBy: CY1PR1201CA0019.namprd12.prod.outlook.com (10.169.17.157) To DB6PR0501MB2760.eurprd05.prod.outlook.com (10.172.226.12) X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2760; 2:3LBaU4QyrL4JPLISE1P7h4pYMOPUiq2GXmx3XpJzEWZOyQ4HRf8QnCAU4T4L2LAz81I9SXp1GmPmv3umap87vNKG6BVrKvaTo7TwuiL3loKQzO0+lYwbAobyHVDhzvDq5Zbz3Gtua+Ib4+6YtPeYOwo7qQBXYguJHn5exnB1o2A=; 3:Qv1rCW6TpqT2C54RmvU4lW6AsBGeckr9r/G8a7hkgXQIRAwpKBX/cl7Q0LM0sUx1fCGC/TCcww+gsJmz/03znubZeDhLPrhV3ruINlFcU5eTIE+WJcnymZTbguYvu79ht4TXJXlQQ+HM4mqgzWPyrTg0X9wdCm2BvQpARR5If6E= X-MS-Office365-Filtering-Correlation-Id: 9a087145-6029-4290-dbe0-08d409968bb4 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB6PR0501MB2760; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2760; 25:ydOhYfcImFJEPONRj6BoXlQ75sKe6QeJ/ALdnLXr14aLrjQEyfkOXw3DYfSqkS7DCgvD8uwftqcPpHf0ZGdpziDwviXFCnsl2MpvRv960d3yaQGLWIEkUbEPJVLTyuyebZq17b+tIw5OWQEtOAFGeJHmyAiF4nM1BkYXQNf5XV37h8NovLWcbT1/oPq5vGKLM9JIAC6pNl8F3U97bj1G0VmFJbGbiRiUf+B+kCQEjD/ii258BFO8IogjJqxKbTf2G7g/NUeejrJNXAItTPNr7S1RZec4akc7NSDIMEGvSJ9cex+y0m24geXEAZJLqrUfv0Y7iBBhuit51fehNBBvM5bFT7+RFcZeUIPZB/0xH9zkThTLsXFy+heyH+UUMkxYLUpCSSpA2NJYi1/m5RbAbzzVUfOyaADvIeR6WjQOK4k6UOCr5WM7nWHCBwNFmp8olC825DQEJljI3aMYET3fPXQOPkcKXh6ZvT5zI4qB8By7c4+tRGatgwbjYcUeYOiD2hr5CWTwY3y1bSz/fYVg9DxJEozNKrP4yAR+OH91b63THhN5eb5oU7Kp4FrT7+JpJO8F3b9i9oAVkS1iGqD3mxyMSSiOjX1KNmwHJcmqXPYSuMWKRqxJJZjbzPslMJkRSEHY+kUa9tVbRGZ/W/1dp3b7jQnkD6RXubHA7gUtSblcKM04aWZsFmx5YoTH+PNchdgpMrBCLLhf8iF/Lio8vM7Hd61UUgJErOd6k+eUclXmsbyh9Q1ZSLCMiX2e4TOHaAN+HCzv1SDWNW6vnhvwKmbpJnvuYdq/4i+WYO6KNjlbyMkOid+MIUfffpNbTw68 X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2760; 31:Q32y8JFQeE2UWgcuPhahGhXW8xB+gmRK1veXEPebDRhyMgMwF+mj+8ro0nJuPbxw0qN6/nebhNkZK9Im4GC+zisvdxGeC488xGKQ+hDmGGFOLpLBqHlbYvCo3OQuAbmzh1ybesUpGO4qai99rzvPY1u/m3kD5CULKCMUeOF+Il+5YKj3OSVdd2UepPpFyR+8hMDbP+kbjqcTCfLD0Lt9hhdmVhv5Aa97UfbrPppGFn7PGDXwJnz5XRO8AIbfh0LxoqV1ac45GU0uo4xdt7XNhQ==; 20:IgLk6I+Rglw/Uk+Jm1WE6FtA5d/xRFzC/8gGu9LhsN6FZoQKeKLLjwUFKy8TQIHP6rYZcnkRb04gneSCO842ckUdB51CNG5As/NiPnPqOZQAzM17l2y3uR+2nBdeSDsyaPQIeHuxQe9RUIVjVv73PdV/DtX1XI9wxqi0Qz/KEpQ/6yLePJGI3WajxodcIkPJTJahICKH/7v4eBaYZ7EAmy3OM3Lkdaf3nHn1U5FJTGf54sQbqwY46NbqiBFY8RUnXas2SvA+wLq8VCdIBETcDr9RoTdGOAApgJjYwKE4o0klmTqQ9Y7A1WxIyTM+86U9QU5uZGPNMYFLbYaGt4M6CZdX7j31ckUyg5eng003aEc3b6AhdS5BYDRoggj1UqSC5rdJrcsqQyh0ZI9adi+VUu4TJgtUnlEHibJHjE6nEz2A0J8VE6g1QGlaCRfWMwF87DQoGc93np2udokQE5kLRBzFls0rzw8qMykbqKbqeiYYQ+9v8LbR+k0UhjGAAY91 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(171992500451332); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:DB6PR0501MB2760; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2760; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2760; 4:ricwf+82fbh2qSbSa8/6p9gwp9ymTxEav5sLwDWSIMIHeDETf2/Zp7aYg7DCIN7mXX9U8pQDUeCqwggfXbXHkZdMZPaXkMwjZUlc1tO6i0Dz0s2Q8AmNwqNMxx6tSVfmGb7SjlMfK5E116isozWkWNwxqKlQAie/m2rLQ8UA7wlR6lx9gZAE66tbtctdB0N2ufJ0SXKs4d9uUi2ZQCPHZ6VSw87g7NNoAgVgK7eDEtqF5pV8epoQYnk6vRYBbs1tMYr8NTftuhZ/SVdExjeG6nT6/BrKn8cgcrUxIX/QZf/AmUIYzLQsHsj45w+p2dxN5DUeP5OgxHBdEoFUMqFH7lmdcq+uBIx8dTQJZZ4+khvHNPShO/v/PIW1/m1DHS+DlXTw1LhgtkgKrePurD+gYudxva37F3E6dFNj/PQTzGfYVEEmxtAKtqOIcWtxNNYgU1Qz1Y9q3xMrpqV0pFQRrA== X-Forefront-PRVS: 01221E3973 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(199003)(377454003)(24454002)(189002)(377424004)(106356001)(81166006)(81156014)(92566002)(7846002)(50986999)(54356999)(76176999)(189998001)(31686004)(77096005)(42186005)(86362001)(8676002)(65806001)(65956001)(6666003)(47776003)(36756003)(2950100002)(66066001)(6916009)(31696002)(305945005)(93886004)(7736002)(33646002)(68736007)(105586002)(4326007)(6116002)(586003)(64126003)(3846002)(23676002)(50466002)(65826007)(7116003)(229853002)(5660300001)(2906002)(110136003)(4001350100001)(97736004)(230700001)(101416001)(4001150100001)(83506001)(18886065003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2760; H:[10.15.7.187]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA1MDFNQjI3NjA7MjM6NE1ZNDIvNll5VTZPV1VzZGM1Z0hMZ0VS?= =?utf-8?B?OC8xSHlwWklLcnlZNEhLWUxhdHFEcXQ5Qy85RTBqYUYzTFluL1o5aS9oWC90?= =?utf-8?B?NEJBNXYrS2pPUGowa1pkYmxhZkxnczc2WUVPaXg3TE9tSVM5RFNJSGN0a3lM?= =?utf-8?B?dXJlVnJTV0RyNXJVb2tUTmF3N2J4TTFSVm1EU2JWSnhEaG95d3JhdVdHaGNE?= =?utf-8?B?eXd2YUcyWWtOSXFidlFGTncxdUZnWXRZR2d1U3VBMmdtcUdVUEZtUmIzb3Bo?= =?utf-8?B?RHdCbVM5b25kaGdQUkdCaWtaWFdJSjdySWRDSXBQR2VoelI3NWplejFwaUdF?= =?utf-8?B?aWVuVUsveC9EeVJwZkhqZDRPaFpabk5hckg0TmxjY0EwMFpXZEVOR0pCOTkx?= =?utf-8?B?aUNvTTE2QVZxWXBvWUtRdTJaZ2JzQUVKVHgwU2NCd1I5bmxoSFFDY1J0WFNB?= =?utf-8?B?U09JNmtoSFJmcGVKRmhjV1dMc01vcW1sa081WG1YVXpiSE1adnVUNEo0dFh4?= =?utf-8?B?cTVidW5CSU9pczFlTW8wamo5cVZRTHFaTkd4M2lMOFE5dW1Va0o4bVJPSGNN?= =?utf-8?B?VlRvdnQ2T3V1dGxZZ1ErazBLblRDVUtnK1Zjbkdmb2VEeU5ocWhDVkpDeElp?= =?utf-8?B?RFA4VHA0d2Era3BuRlFFTld6aGpzT0MrUko0VjdVWEFCdU5MK2VrYU4zcGdv?= =?utf-8?B?Nnk0ZUx2VE43bncyNmQ5dWtMTXhqM05UKzYrSENkcUZCNFlkdURFSTMrOVd1?= =?utf-8?B?VFJlMGREYVJUSURLZWo5U2FTNm03c1M5QzViZi8rMytMUFVjdmhKU1h2TUVG?= =?utf-8?B?SEhHQkhQOVJmMmx5enZkaGdjTGVXanRSY2wwc0k5RXVXeFowMGh3VDdUNWFq?= =?utf-8?B?TTE1aEp5ZzJNRGVJamF4cEVQUFFPWjJDSjdTSVB1eTZldUh2MXBsc3ZEMWVl?= =?utf-8?B?WERjQ0xmcjhZZXh2SXh5dElsdjNNQjAzVWRvZ0lKWXpiRTRzS3ZKZkI0VUNa?= =?utf-8?B?Z1FKZ2NJV3EzV2hiS3RrNWgvRjNkMUNtNWprTFBvN2hOVTBHWHJ0Yi9jelB4?= =?utf-8?B?djkrUmxPcnZaVWpBSkU1ZUxSdlZhMlgwNmYxYXA0VDA0Tm81MUZLQ2FNTit3?= =?utf-8?B?R1lVRjFKTlNESHdSdkNQWTNZaVU1MjkvcHEvdUI2K0RnWW9UZmxBNzh5ZnZo?= =?utf-8?B?dEtwMW1IMDEvaWMybTRJQ3hJRFBUWS91alcwYUd1bCs5dGhML1dueFhiMXRt?= =?utf-8?B?Y2VLQWJIeW5Vd3ZUemkveUF3UTM0QVZiZzZMNGNTZVk4bS9qMkUyNUdhN1k0?= =?utf-8?B?YlRCcWRpSnZrUHE1KzE5Nktrc2sxcXlnZlQ4MUZuVG1SWkRLVjhEdVJtekxO?= =?utf-8?B?cGNpTXRKenFGblp5TTU2RFZwZXZ5ME9MSEVPVHRTT0tBZzRGODFWc2M1aFJI?= =?utf-8?B?Z2pPK1hpRlp4UVNtemo5Y1NxV3BDZ2hSRGp0ejVuUCttMkVYUytlL2I0cnd4?= =?utf-8?B?SFlLN0U4Q2tVbFF2Q09wakFpWFpDYW9yOVpxY0Jjb2ExcmdtZlFhcVJNWXFX?= =?utf-8?B?M1V4YzlwTUhRL2xJamxFczN2Z29yZWkzK2FLZ3BaVGY1b0hVRzQ1aEFDRnh2?= =?utf-8?B?RitlUzVPSmRaREJGS1NpbzY5VU5SV2hUOUdCZ2pBelEwSnMzL1FtbUMyU1BG?= =?utf-8?B?dW90THU0bnEzL0tsbXNRZkYyNEE0UXJGY2l1ZnpmaGU1R3BlMm4xVnJFMFBk?= =?utf-8?B?bUVGc1prMVQyWjVENTZ3YXJhYUh4UTZnTVpFNEZTWjh1b3RiaEV6aUJyV2NT?= =?utf-8?B?OFJqRGE4enc2c01OaEJ3aWZhOVNWSUtLS3IrSWQwK0h0WW1nclVBUU54L0xY?= =?utf-8?B?RDFsOUMybTRIZHkwd1doUUdiVUZ0S0UzQndQM0JXTlVTM1pHN1Y3RlNwUmlT?= =?utf-8?B?RGpGQk1ZQTlTaGc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2760; 6:aAj0nRkXqkfMLShFNPIeoLCxWB4pehXB/ktPsV5dwwNIQ4Nbbi1XXPYxni4el0TOr+4nIIi92NFAx/dtHiKi/jQk8/iliR93CtuCG7+Kl4ujGaz6atm48pq5rvePfX4NfHQd1fwDr2K1VfNFfC1vPrRrIOAx2l4U/7ccOZCe75YaftplBXeB/haIPM5dwjV5/6IJYzSgz6rqveCNddBCT9ZKdYSZVsSBTJBC9VSQX0pTuJUMQzjzEkdLT+sRoipu/ZFe/sYR9kCN+hMi0YXIbNH0kPoQQ1DMYAwMR9K9NlFw3P+JtyhcvzXvAEEM0sBAHC2pcFZrTJau13AKYSVK+c6Q6EDAt1v/1Nj4yUlbJOI=; 5:ENNSn9AlhxZY7NS/t5OMl6ROVTo8G0UoEgKGyGf27K0IEaCQld/gBkf68oxtYoqbs2xPjiKAJTLsRTjWWSKVEI2hTRSMk4j5xLpPBvJjVkCSjsEXfbPYE+aFFfGy2oYOOo8nbO03LlsQZjwClfiRFGFOKLcsG1usos3PiZleWIU=; 24:gN4bUwtOCGF86tC5MdpEoqoqamPPJA4M6rYIkJt2E1VscPTgZzb700p8hgrECyTkRDW69hnTt5N2PSsQdpRiSBUlD4m4b/m2E0iyvBFuHps= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB6PR0501MB2760; 7:MNeQiIjGSqZ/tsG53uMMAVdNLoo+zH/HG7DL1xQbAdxXmN4mCoL3SJxVkHM6HmQ/yL664gDzSkgtticDNc48Ymw8R94L6+swEXC0EgVoJJLouy430rs6gVVB72+x5B1f9mqluW58uuOMAuXTQKAlzM3JocwMiK9rWd1jl04LxhVQPugRxtFw1eYRmJ+6u+rcdGxwbalVDI7XNb/EmyYUeIWy+LhJvs+DxkeTLRASXDL/RrGCm5afgeaVrvLNAPVSA1As6HoGnFu+AzXWKjybllgo9hnuyaWd5rOEPuKxEB6xngA+/v2KiCIZBH1ghjr49Mg2WsqWSjbIlgm8hQyrAkrmyjjx1sy24ICs82nxqMA= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2016 18:22:34.2618 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2760 On 11/10/2016 12:08 PM, Torvald Riegel wrote: > Looking at tile's atomic-machine.h files again, it seems we're not > actually enforcing that atomic stores are atomic wrt. the CAS > implementation in the kernel. > The default implementation for atomic_store_relaxed in include/atomic.h > does a plain memory store instead of falling back to exchange. This is > the right approach by default, I think, because that's what > pre-C11-concurrency code in glibc does (ie, there's no abstraction for > an atomic store at all, and plain memory accesses are used). > > However, if we emulate CAS with locks or such in the kernel, atomic > stores need to synchronize with the CAS. This would mean that all archs > such as tile or sparc that do that have to define atomic_store_relaxed > to fix this (at least for code converted to using C11 atomics, all > nonconverted code might still do the wrong thing). Note that our mainstream tilegx architecture has full atomic support, so this is only applicable to the older tilepro architecture. 2016-11-10 Chris Metcalf * sysdeps/tile/tilepro/atomic-machine.h (atomic_store_relaxed) (atomic_store_acquire): Provide tilepro-specific implementations. diff --git a/sysdeps/tile/tilepro/atomic-machine.h b/sysdeps/tile/tilepro/atomic-machine.h index 702e17d77db7..5365929c940a 100644 --- a/sysdeps/tile/tilepro/atomic-machine.h +++ b/sysdeps/tile/tilepro/atomic-machine.h @@ -83,6 +83,16 @@ int __atomic_update_32 (volatile int *mem, int mask, int addend) ({ __typeof (mask) __att1_v = (mask); \ __atomic_update ((mem), ~__att1_v, __att1_v); }) +/* + * We must use the kernel atomics for atomic_store, since otherwise an + * unsynchronized store could become visible after another core's + * kernel-atomic implementation had read the memory word in question, + * but before it had written the updated value to it, which would + * cause the unsynchronized store to be lost. + */ +#define atomic_store_relaxed(mem, val) atomic_exchange_acq (mem, val) +#define atomic_store_release(mem, val) atomic_exchange_rel (mem, val) + #include #endif /* atomic-machine.h */