From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755531AbcIIWcP (ORCPT ); Fri, 9 Sep 2016 18:32:15 -0400 Received: from mail-sn1nam02on0116.outbound.protection.outlook.com ([104.47.36.116]:63794 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754406AbcIIWcM (ORCPT ); Fri, 9 Sep 2016 18:32:12 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57D33864.4060201@hpe.com> Date: Fri, 9 Sep 2016 18:32:04 -0400 From: Waiman Long User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130109 Thunderbird/10.0.12 MIME-Version: 1.0 To: Peter Zijlstra CC: Linus Torvalds , Jason Low , Ding Tianhong , Thomas Gleixner , Will Deacon , Ingo Molnar , Imre Deak , Linux Kernel Mailing List , Davidlohr Bueso , Tim Chen , Terry Rudd , "Paul E. McKenney" , Jason Low Subject: Re: [RFC][PATCH -v3 10/10] locking/mutex: Implement alternative HANDOFF References: <20160905123636.450529224@infradead.org> <20160905124027.796192899@infradead.org> In-Reply-To: <20160905124027.796192899@infradead.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.49] X-ClientProxiedBy: BLUPR0301CA0042.namprd03.prod.outlook.com (10.162.113.180) To AT5PR84MB0305.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.27) X-MS-Office365-Filtering-Correlation-Id: 3aa55f3e-7551-464f-968b-08d3d90123a9 X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0305;2:OpFipzIrbS+LQH+rQiT8IT/mHf+S9hTFJyXqxDQdD5zfjKWmV0ucfuinYMiGZAm5h9tty5w4ePjWXP1v+zCMOu5S/w/+tr1Q0dJaTUeQi2c8gf65efRgkd5WQRB4N83t3qW+lP1GavzD9k5HW55M9DGpZzFRWDO553Pg4fMdiIaJNb856/CcHJkHYF7McIB+;3:GaklwTr3HfnfqteJHFUAjRVSbG49dwO4gj2ODEZoGMmp6gTyd6cYTzMR/pYq8Rm1BfHxLwdS9oEZ+uiatohcKfTikW3kojRsq9oo+/LxF0MldZrd51/YIJ/owKr7W7y3;25:78OgGfvDyo58V+4GN1LAJf6ckAscqWBiiXHPVJRZxM2juzLS9msTaPkMG/t2vm4mUv9bqdXoMBMmaJjHQtTvhzxKl9KWj6/0aJ3kd1F/VkpsSinh00RALd4VhSs1vOKSshOhQrkp7mZwgpj1IOmE1T3cJRo9Ysh545tPy2vXVANpzTWbCcINXRIvQ7qXWnU5twLF5qGFHpto8MfHHbvz/mIhMSfX4cHjA2717dujG69yGWOnd8a0FAmjzX0HFvsFeuYRLzNxXFRWYpQNvRwhsSgGx/kKdlimBxUEvoXuWdlwktBAWGuzkOLZgL1vqcT2d0E66SgwOJenYVOpyeErEzV5FJ4ey180Tt6vhWr6pXrFd2j29f1I1Wz5JbNDJ+zibXzpa1bkP0fk/gOxmnD6RhdBP8KjiQsHvvn9vdd/+/Y= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0305; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0305;31:rJ+XAjPBPpTPRusAJPxqPQRyvKEvwBRWRalHfV5RZwcIV0HX20uhgSEUp74hLBJCPvRnuVtDUMOhGBNzC1p78IIwAGvQZyWJpRbdey5quh358qDdokcMel2SZ7sG6giPOdGHbZCvCjHGdFlriYKZaR6uR/7Cirv8AP2xKVC3hRyiVroPr97pmV/gAlOp1QllgaYUyDZOS79PXoqSsqYCoIbPuJxYcfUEWMcvNah88c0=;20:P0JLL+Atu4LyepxTQrWxuNw8NjbYFbmpLI+J5Qjm3uojwUIzBLB6M+mNwnVIoSarMlQ47/Vy8OuAqIU2iWgPw+CsDFfh8FH7bXzWFjCqmSNKrmUA+UVcMlMzFlizyHqSK/o1ekdNPZKARis7tnwEX6BpycI9ui/Ng9QBD/FXvB39X+Tny8YEjp3GeLlQl8B4CRqY2lUsc0UX0I76hycVdvD3wMiWAw5G+UsFwl3bdOtkYknvlI4nE1a1I9d8n58tk+yQ/K4ORv5ClHoeIyLc2t7nF4/rFL+KuWjTfutoiP7FnSbRzMjcas4C7fy7hn5qDWDXzM9Do8/g0lqGrffezAsQJm7th5VMxbBNUez+IChc1wPoz4+n0sctDa5q8v1ZMysB1iB0Q1g8xw2JqN5OBiuiGJttopoEphMQSN+HD6/5ndChdyew2+X8vfPAM+sZxmTtyBjH552p4g5wX0neB6cHROObuWIopCx1XoyF/GhyFtdo9xintB7qQWl+0ter X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:AT5PR84MB0305;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0305; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0305;4:iGHwXfHmGShQPz9B2/f7RMFzLkYHZTpcFtQnd88Pp9pQkAsVgorbB7HPnef7AmwcoHeRdNXtn0DFcjOsj762K3HklH50/Jzz2fD+6dFI5u8fY+s6ekZE/5RHAZ2NsokplegYm+Tqh9X3szdplKMPUZ7kyjhLHZfj+ChH25kqJjhi2BE+zDZyGuQ5su04JWhJksNgmc6dFkI2+oO6n80H0+uf+7om6NPumRbzQHg9M1z3obLTR6c1B7CuHxmG/QxjvOix2bX82st5h4DY7s0iBcjaI7m5+3SjkdrbeU71tkisJ7scZOAgpvBgwBiyjs/pKlJnUIISD/FMmx1U/bq+NLcQ7jdCLfMUbvZQD+2d6CDPb3SLU/NBS3GuytnDKZKH4F/uuqzBRkXJJ5MdZUXe5Q== X-Forefront-PRVS: 00603B7EEF X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(189002)(377454003)(199003)(24454002)(19580405001)(23676002)(83506001)(65806001)(76176999)(92566002)(66066001)(2950100001)(5660300001)(64126003)(65956001)(47776003)(80316001)(50466002)(97736004)(19580395003)(4001350100001)(77096005)(586003)(36756003)(68736007)(6116002)(101416001)(65816999)(105586002)(33656002)(3846002)(305945005)(42186005)(81166006)(81156014)(230700001)(50986999)(87266999)(54356999)(4326007)(8676002)(86362001)(117156001)(7736002)(2906002)(189998001)(59896002)(106356001)(110136002)(7846002)(8666005)(7416002)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0305;H:[192.168.142.203];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBVDVQUjg0TUIwMzA1OzIzOnFET2RVTlh6a2dBa29TTElhY08yL3poVFJG?= =?utf-8?B?Qmc1L3BJTWhVaFBwWll1SFJPYkwwMUFhckgwdGk3TFFUN09HQkRaeklKVjVB?= =?utf-8?B?V1V5aGtVa1U2RE4yVEI1cWZ3ZU9xYWtaWTRtMG9PamlpTVV6VnE5Z1RtbllN?= =?utf-8?B?dDVnRFdaZHIrblZQMmdzcVNZVXZQVVpxdy9EUkxOZE9xM3V2cUliOER3aU13?= =?utf-8?B?dU1Ea2dKV1Y3Yk5HSVFmRkR0YjMwUTRNSDhUN1A5R1cvY3pHTnpoaldiMGhB?= =?utf-8?B?L0g3UDNLVnFnSG83cWlxMUhsNWdzVEJRQkY3cVZhSlFZQ0I0bTdod3pLRFdo?= =?utf-8?B?T1phQW1qQXVGbnRHbTFCcnBuc01GU1ArdTFzKyt6cVp4c1lxT2U2M1ZJS1Zi?= =?utf-8?B?akh0OUdwdlJwazJqUzlyMmQyKzRvY0dWdnR3VzRLN0xnK3FNT3BTaDZDOXFj?= =?utf-8?B?dEZRMFB0L25JbDhSR3hkRzdaUElCVkx3YitKVk9ibHJZajBCNGYvZDRoTTlD?= =?utf-8?B?RzFnb3hrTDIrNUJaTUJ3SE9qUG02ZmNZT2RZVS80bld1eC9ueTdsSmJtTWdt?= =?utf-8?B?N2E1NVNyaTArZ1RGSGNMV3NhVWFGTWsyQkpiSHQ3a0RFS3VDbFhoMUZNUG43?= =?utf-8?B?NGpJL0FPWFJwUDlBWm1maGJRNkxVN0ZaeGZyRjdDdzVmYVNuU0dSMlRjdkVu?= =?utf-8?B?ZUIwK1hkc0QxaEhSR2xqemRieXFoT0RmZVYrY2xYUDBFMTBwMXN1a2tkaHdW?= =?utf-8?B?bElFdS8yTzQxR2RCVDFueDM4MzJjanFjeEpnc1U1TCtDVlhqanFRQXB3ZHRR?= =?utf-8?B?ZXJVNVRZTngweTQ4T2g4eHRyNzA4bDNkbVZoV2tzNVJtVWdkeURRWFlkaHFz?= =?utf-8?B?c2FkSjV2bXpRVFV4ckEwRERFUVVjVkxQVld1cmlqMkVpdjgycEl2ZEV4Nk5a?= =?utf-8?B?S1BMV0kzbmVwS2t2L09yc0RDaEo5ZlVUeWxDVWlYQmFWajV5a2hoTlN5OExK?= =?utf-8?B?TnZ5Qk1kalI1R2dRYlRJUGIzT2hSK0FxTm5kdUh6VjdWNlE5elRRWUtKSVFp?= =?utf-8?B?NWJ4RmNuWmQ3VUlZYzBNdHZpRThRSUlTSHNRUXF1eVJTem4rcWNGQW5Ob3Uw?= =?utf-8?B?b2tBeXE4am05WkV0YzlCb3EvaGVXZWRNRUVCeDF0U2RKd2lKU0tqV3NzOGJ3?= =?utf-8?B?bXlHZUt2eTZ6NkZLQWpOVGZpQ2RnZFI5dStJa3NGQlpKOEpDMDVMNHV6ZzJ5?= =?utf-8?B?VklsZk5wblZkbUw1cVljUm5JNkliU3hyMjUwSU5nSS9aL2FuODFQdnVIaHlv?= =?utf-8?B?V00vSkF3WTNWSHZ2cTFsU2RGb1AxWGhCcVhDOEtDM1U0WnIyRVBLN2lrdVow?= =?utf-8?B?a1pDaERscWw4bGw3U0dQaVBkY01WUVdBU3JwMjF6L1hnN25XcmRWcENGSzZ5?= =?utf-8?B?NXVaSGUwRXRXTnZmZGw1ZFRPM1hXcXlrTDlla0VQeUo1M21aNmhQRnE4Vmxv?= =?utf-8?B?Nko2Z085LytHMDIwenU0bWowbmhIdUttVzlvbVlTZmIxb216R2plWWRQRVkz?= =?utf-8?B?WmZrd01KZFNqRklQQXN4RXBZUFY0ZmdBdGtaSzJFZUhEa2VBRHloWGcrb1hj?= =?utf-8?B?TGxQczVvZDY1V0VOQSsxVnhGOVhtZFdnR05jQlZtVUhJTG5TSTVXWkhFYnBs?= =?utf-8?B?QUptOGZwNnN5eHlQMVdUeVdCMmRjN09PaGsveGJtZWExcEFPaUUrZHZMbXBs?= =?utf-8?B?U2tKM0xyRktaaFRhVzVycFBZSUp0SENsRXRKVWVpazUwN0dFaEc2SndHc2sw?= =?utf-8?B?b1NmcVBBT0ZQZTczTWlESjdDZUpoL2xCR2wvVUJLZWh3M0ZyVDhPdzB5c2Ry?= =?utf-8?Q?48LfyiCtgcBZLLo94aFw6NzoUaE6X2Dh?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0305;6:zPi5XE9jTB8ujNgLduHTRJWuhzUp0xU1aYiWeq7ZcCGoce5ilkpKc3PszLBTDLDb40qvNXXpc6LxS3rU+RbxWS3wsleqpmgzkDe+OnfpHv5Ea7uEaT0zFGQMED7K+T/dHtkLNdeNE/WTSWYLRzk+8RVlQUnKqvMc8hv2dc7Rm8a5vnz4+T0mzhL2iL9wbPTTmBaEjSovvSTZ3kDBnU1ZsBPJSEWeVaqDsZqzgmnoJcMpkasqusD1o62sT2Zy4mo6c327DfOrzWWcbLB0D6GuOPp84L+T3JJPGpmz+iQSOwWwVBK0KQqgv9EoD+vd9H5EUm5dScx2L2PsiaDQw0ri5A==;5:tU2s2DZtIiOiXAamDoJtMsFoLIZIpwplpjxYmQsyu1sjJRy+cDO8LALplVTrd7dKRgtLFJwkGwNizXBN6CrSU4ojHHGGFLiMXoYQ1vUuMA5wXY9ufA6n6L8ZV6xNpHtm6b9NxJkcI2ppYamfJcHW7g==;24:TL9Qx9aXjUX/9f7M5I7Tr0ZGCY/eQZ5dDD8WBg12drduO1uGNQrG2bYQ0PqFDK5JDHSDhiHUXvRXFWGDaWm7UQEWyqhOC/zNbJ6DlO1v02w=;7:6A67ZNxR2fGRb2iaqvv0hRoOlj8MsfjVOIzD3avV84/SnVh4lHyWfbFOuQz/1TyHmy0mzrZDs3hXnec2gjkxmPsMoY7s1jQUoEVoMGPhs2U/VMUp29wKtfUFfPZ6hsZjKO7bPQwS3H2q5aPvNy7hNm4AwOGbM+W9uanmcUZ5wUddpSOP6II0j08bMbeXU3IQxbP9lKcjSei+cq7W6SHer8nWLMlUDOhcAe57QIQ5Uryr9CEqbTJMbM/ikYKZNRkS SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2016 22:32:09.7785 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0305 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/05/2016 08:36 AM, Peter Zijlstra wrote: > As mentioned in a previous patch, its possible to implement the > handoff logic differently, avoiding the issue where we 'leak' a HADOFF > flag. > > This patch does so, just to show what it looks like; I'm not at all > convinced this is worth it. > > Signed-off-by: Peter Zijlstra (Intel) > I have another way of catching the uncleared handoff flag. See the following code to see if you think that will work. diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c index 9492494..362ff83 100644 --- a/kernel/locking/mutex.c +++ b/kernel/locking/mutex.c @@ -85,7 +85,13 @@ static inline bool __mutex_trylock(struct mutex *lock, const owner = atomic_long_read(&lock->owner); for (;;) { /* must loop, can race against a flag */ - unsigned long old; + unsigned long old, flags = __owner_flags(owner); + + /* + * We don't need to keep the HANDOFF flag for the waiter. + */ + if (handoff) + flags &= ~MUTEX_FLAG_HANDOFF; if (__owner_task(owner)) { if (handoff && unlikely(__owner_task(owner) == current)) @@ -107,7 +113,7 @@ static inline bool __mutex_trylock(struct mutex *lock, const } old = atomic_long_cmpxchg_acquire(&lock->owner, owner, - curr | __owner_flags(owner)); + curr | flags); if (old == owner) return true; @@ -688,7 +694,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned * state back to RUNNING and fall through the next schedule(), * or we must see its unlock and acquire. */ - if (__mutex_trylock(lock, true)) + if (__mutex_trylock(lock, first)) break; spin_lock_mutex(&lock->wait_lock, flags); @@ -700,8 +706,6 @@ remove_waiter: mutex_remove_waiter(lock, &waiter, task); if (likely(list_empty(&lock->wait_list))) __mutex_clear_flag(lock, MUTEX_FLAGS); - else if (first && (atomic_long_read(&lock->owner) & MUTEX_FLAG_HANDOFF)) - __mutex_clear_flag(lock, MUTEX_FLAG_HANDOFF); debug_mutex_free_waiter(&waiter); Cheers, Longman