From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755302AbcHSPZi (ORCPT ); Fri, 19 Aug 2016 11:25:38 -0400 Received: from mail-by2nam03on0110.outbound.protection.outlook.com ([104.47.42.110]:50201 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754740AbcHSPZg (ORCPT ); Fri, 19 Aug 2016 11:25:36 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57B724D0.8000707@hpe.com> Date: Fri, 19 Aug 2016 11:25: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: Jason Low CC: Peter Zijlstra , Ingo Molnar , , Linus Torvalds , Ding Tianhong , Davidlohr Bueso , "Paul E. McKenney" , Thomas Gleixner , Will Deacon , Tim Chen , Imre Deak , Subject: Re: [PATCH-queue/locking/core] locking/mutex: Unify yield_to_waiter & waiter_spinning References: <1471569328-41611-1-git-send-email-Waiman.Long@hpe.com> <1471570129.4991.48.camel@j-VirtualBox> In-Reply-To: <1471570129.4991.48.camel@j-VirtualBox> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.49] X-ClientProxiedBy: DM5PR09CA0034.namprd09.prod.outlook.com (10.172.184.148) To AT5PR84MB0307.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.29) X-MS-Office365-Filtering-Correlation-Id: f31c9edd-80f4-48ba-40a7-08d3c8450192 X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;2:7+dHcUjc/rKBuyoEFMD/JgzP0LaNKyQP1YFnLylkC9+R4xJ1V0bszfo/adfZ95sFTEI8sRaOIpaY0Dpkn22f4A5QgqiHtH1gWxdKGg9Iv0qCIAiTK4C1AeXxDYtF6W1R7HQkWZKmUJPVdd4E6dPTDJs5c5tdn6FSAAib8jlkadSENC5O1389uW+n8PNWTxKr;3:Z5Od4VSdHL7Y1DJAHPbjZW/OW9vp8VOQ3hSOdnUdGtmw2RkM/K2nakxSDJ7bQlGESSCI4RebQobYQaRNM7qwzFg6B+6SLgPETvAjkI5c7iA7nWQq1aQ4VumPrSfCJ1uX X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;25:tBD+M2IwAd5bNMHGJJC8/nlL3oH2WCoRVskYuXYjf5ebYhZePPxw/qJ2M5Wv6eboaNv9ytjci7J+YX54DZXo7j3Fl/0TZWTaoN6N60/B0OzOoFJkVntEBh1q4PFhcnJVnmC/8cUsNdu6TaMXYWFvF9i6q4sLBURIIlPCCelMbgaKpONXFm+TIPQ4LD6Y0vDE3mIz5mxmnIDTKieaas+3EqMyZCfNx2R051GykqZllMxteeRC93SM8vjnS14JdqEausN+RRzIwcg+LsjMRjHbkSk1fFeAXA/cPEhKHD32bg+9ClbDfaMfJ8ave5R+unHNCvdItGes+hUjIuTHsLTkbd+nNG3cS4lG7QV+vIiEkcZiR9zSWlQD82T3zgTdp0uzReW3pHUPQPqXZXQp3w6u/fgHnWpxpf9klx/Iv1Ramo8NHO+xmMmfUoglq72BcEuwdzQ2EHIMYSwe3xvwZqZ6psqkzNuxGJTNxGdc7gxjrqYPvOegpYUogJGZJNvxbKBd7lhEYBVCjt155PqW/zTkcdrSqPN9Cq6V2BwmMAmsDL9EJBAMiwhVVCbnh/UTdy07/GJGx+vxWXzGwNQJ78m7UKa6vrVB15/y0wc9fXDYrmdc76/5g4Bx8FP4/pZbndaCcClP0q13rNLgR3JlpheG9/UFlxQm+UK9zGrEK4Ov3sVcdUEPBdh321+A6dDD+udg8Hmu6Ur4FT93clHucJ2xYlWXESomGzohzVwI0yIli/s= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;31:seMUi+OI6vpSeM2aya7I/nkaD/TBg8IXrcXPDYHRE80hWvKRSrd61lXbspEkDj40eGEqyAdN4tRfRXra0VAm5IbaXqCsAhmIe9CoUYad5PENNW0Jlb7+8tKc6gFDOaxTUDsADQ2+yESIk9y9qgkXrwLrqJRVVip5BvhL7EcuYZtKc/VWuIvZdo8l0jDQavz5RR9SvKyx0XHE2M/W94rxanrcJulDxr5XkJOijCSD4a8=;20:Mf8OOcEJvO9avmtQ70NpHccJPK9hJSUYP34mr91RVgo1/nrblreNkjJ3zgljlVwbY4tZGsaMoeKWtiCl6X+NA5tMZY4w+JGakBXxjhtOFLmotYazPGMjyawq5JQIiuidFT/PhuT9iqJzqB+Cphpl/Ohw1K07vDeuRgnNoqOzUfcgOSM8HMvcyLQU32DE8umX00shsaQUb140zpMmEotzt+L72AzEzNiutUGIQsr9pnx8CiwnGPVVXVA4sJS7MBg08+/KXKmxOoSbmwFJMayrUaQ6HXs93AsaD6olNWyEVhtQN7oNezJT/oZtquwFk+qRJ6AmtikeaguIb7Oi35kuyYVkERP7JvOPjcixL4+RHS8sKnnUPw5a/pNdItrV+im/K3y0wOo8FfmxAWXbEm+zmnE+RajrqoSaJ9n5xrx1OCxd1quKhrcW+1XiRNb2/SJiZSfFWMnGIWvUBOoZuD03XheqmLNtExPciNai6YtuQdlAzZVmdQWh/qMel4fdacza X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(227479698468861); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:AT5PR84MB0307;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0307; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;4:VxozNCmOipHAucauWnUGYiBZ2Je2ZcYi8RfdBjY4iiJtwq+mFwa+/ncox4SN+71d7XM5NHwDM4avb3HfrQq2pSLpCKupuxESaUJdIX2UDRTM/EUF4zaCj72VQawxs3KAn/3qAPH0QuCR/zKTbTU0J5qeNxT/TPP4vnqnxzmO+eupDmXP3KVnBHx/f3JJr93LWTghjFDd1oNWRnJlwUBpA9X70tfHDZImJpO4i7xbAMhC1/qB7ZW/eCPyGD3/NLy/CLl5XDPeBg9CKs9FXybX2w40tYECMVnJFeev/vZPm7ntK4omceil2AXY7CP1aYWw/tWZUKo4VeytWcrZAqYAA8Y7M/JkPUMKGLQ/pFD2DGkvyVigCN6r80Gb3v79vq5geCLA0VTDWUejiB0I8wsG8waK4iQCktRgqhDsWvoQ1cmUHmLUqXhuxr5laWK7gub1OJmjq+aZUAag78OuLfUWcQ== X-Forefront-PRVS: 0039C6E5C5 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(24454002)(377454003)(199003)(377424004)(189002)(106356001)(81166006)(65806001)(230700001)(47776003)(66066001)(3846002)(6116002)(105586002)(65956001)(7416002)(8676002)(8666005)(68736007)(586003)(81156014)(305945005)(7846002)(7736002)(110136002)(117156001)(189998001)(4001350100001)(97736004)(64126003)(50986999)(77096005)(23676002)(50466002)(87266999)(65816999)(101416001)(19580405001)(2950100001)(80316001)(76176999)(86362001)(33656002)(59896002)(4326007)(42186005)(54356999)(92566002)(36756003)(19580395003)(2906002)(83506001)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0307;H:[192.168.142.189];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBVDVQUjg0TUIwMzA3OzIzOkRqYWZiY1RHMFIyOG5sdElPM1hHTVNGeXpU?= =?utf-8?B?RzdYYUlQOE80QmIxdVRuWlhxNGV4U2E2aVVxd3ViNDdIVkpVNXV1WGt3cmJy?= =?utf-8?B?VjZmcUQxaGk0YmVqQ0JkTmJLdW9mZUFzeXRzN0pzUVMza1FOcGVhZ3ZuWVZX?= =?utf-8?B?bWM4YXJTQkdKYmhTRUtiY0F3ZjVqK2R6TzU0bHd1QnE5NU42QWJjRCtwRDA0?= =?utf-8?B?OHZaWk5rTHNDTFVmZkRYMzV2OUJOQzJ0ZUQ4eStjY1VNYU9xdlpiUkdPK0pI?= =?utf-8?B?UlUyR1g3U281M05ubHlGaFRpcjhNMkNhRDFUWFB0UkFQUmVJY2lreXcxdEMy?= =?utf-8?B?cE5rdGsyWE9lRXMraXlBK2ppQ3dROXczd25mQ2V1QU4wTWE1c0kwUFJ1d0dn?= =?utf-8?B?K3dpa3k0dWVrQ2tFZ01LVTdTN3RUQVRXalZNOUNyVVBDbzJOUWdPbHpuZUpJ?= =?utf-8?B?N3ZtSTA0SjNGQ09GeFAvWmcrdlR1NjlXbXRWWklDVm9lcHVpdUZUQU9tRDdW?= =?utf-8?B?blFQL3pEaFVyMUhYS1c3ZE1FVGEyckFFQXRMQWFmeWZ3QUp2ZGtMbUMzTzBJ?= =?utf-8?B?Vlk0T3BTUlAySDQvWTE0TXE5V0ZwYlBnZjdRY21rcU5VODUyVzdYVDk2ZEph?= =?utf-8?B?SExvakRwUHVaYi9wcjF2Wmg0NngvclFxMCs5ZCtTNVczY3dBVEhLeXhuaTdz?= =?utf-8?B?N0h6RU05TzBPV1d1MXRQUENoMmw2REpaK1N5VFRIaUdHdFVOWFF1T2diaC9i?= =?utf-8?B?b2NIdmVNS2lQWHpsM04yUXdvSWhXSFdLSTJjRU96SmNkZ1NKNDBxeThidndR?= =?utf-8?B?bFZhVDI0WGMrcVpZUTdUNS9EVTZXYkpkeXZSdngvSkx6SUFHS1EvWUFjdVp0?= =?utf-8?B?c2doTmIySzJiR0xqOXBpSlFIRnFPaW5lTmtMMXdwSVR1WGJXWVVGcTB1bEx0?= =?utf-8?B?WnU5RXVDM1g5VjM1NFlNTHQvV1JYdlFqNUVHMEFEZDB6Vkx6OW1UelNYd2Zz?= =?utf-8?B?RTRWbUQ5OVBEUEhYUFRkUERoelpFUUNqQXhQVU5QclhQWlE4dUQzdHp3QkNh?= =?utf-8?B?NXZOQnpXOThMTytibnJYZUNBVk1DT1FiVWNQYWppZDM4SDZRNmpUd200cmhm?= =?utf-8?B?RWg0MWFPMFNwTUZEcnpjRENNN2plQTZJVWVwRUhsTFl6bFRTdjVoRWFzWnFw?= =?utf-8?B?WWhYWEcvVHIzWWVjU2QzcXlGTVZaT2dBZlNyRU53a3o3dElqcUhiYllGOHpQ?= =?utf-8?B?d05WVEc3REt1SDM2aDNHUUo3VHdhSkd0N0ZYNXJQMkNvT2ZzV0pCTW01NDl4?= =?utf-8?B?cFNzc2NSQ3RFczVnK05kYVFKWEFBeHlzMjd5VThSZlErL1JJRHNrQ0Z6cGtH?= =?utf-8?B?QzllaGMwMW5Oejdhc0FwQUZDVVdpeXZIaHF5QTJzaDUrWHl5Y0NJUFJwL0lW?= =?utf-8?B?TURsUE4wSUNyZlV4bDhsWnc5bmRHNVJOaXNJdXVTNDB3bzFVK001OVBOdng3?= =?utf-8?B?YytLU0YzR2VBWVdRaFdqeEY4RjA3ZXYvLzJsa2xPWlhKYTlDQWZoV0VRYkZR?= =?utf-8?B?ZU1mdUw4NSs0aC9kc1Z1eW5xTTVGU1dmeFRyRWphRGorUW5OSHVuaVJicklr?= =?utf-8?B?Z1I0YlY2TUowT2dIeTBYdDFnM1lTWm1uN3p5cjc0Zld6ekhGUVR4UFp5K0x0?= =?utf-8?B?ZXNQY1R2VmNmZ0ZNeTZJUmtML1p6NEdmWDRTWko2Z05Ccnh5Uis0TUY5dUY5?= =?utf-8?B?TFdqOXRTcnRsV1lTUm55d0N2ZUptczgweEhKK0RJZ1B4aXU3dVBzQUFrSkY1?= =?utf-8?B?Y0hIMTh3d0tVWHFVaWRFU1FkMWtweVBOVlpnZkRGV0pmeVJrZG81ai9UK1ht?= =?utf-8?Q?4LYQOcfxRBCrrbjhr88axpqdvamTW20X?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0307;6:aWlZkL4mDrefzfkfVkD4LTJatsalTCRA18+O2xvSjrIGckrgN+EWvP81EXBebOH7NKsUcLC/wn5rnJFNPc50ZRQJBSGkTg6BkohRs4FsuC8d+X7yKTxo7+vBcO9iA3CNxb2zqOC5LD+GWfMYVgLMY6bK3ckDnHcZVrB+PSuQPG2dfNU9bzoibncOcu73RwHPuiL98eJ/f5v4T0xce2uN/h+et1misMlWGLgx2yRhvqvabY0qXJ8nH9zQJ3HrJ9Nuu7da8knsSmOm2bflCItsYd3zr5O0Zbq6AXrUkoQ3KT/6NihmiDGSp6/oHddBk8PhMErh0Q+uhicoMin42fnJIw==;5:GE6lsA736rv2YMMlrwVoMjiSgKIIa1ExpgorbwFsl5BXPyxvJH9VsyMsGooeYlMb5d6mMk1kAcNGb9Q2H3gkQIbAswPleOIR0EwR/7Ep59EvKApNiU5HZUn+FWitbbIREotGf4HVpHcFb+lfZXcPzw==;24:PBoh7dA8QvsgVt6zzYzZZTEAAZAOqYOlEKxWltpTmwebSj2uCj3iQtZg2VLQkAKgN88LW9rOeBagZbzHWWTxTLvgPa37ZOOuHbjEzNKRckA=;7:tsLkl4KepbhwnP7807wJL3Pzw7XoMjY0lGjfRVWIiVBqa8l5dC51/Ecvwm6zW2Dw1BZu9Qm/gbkjXbPMwvPc0xMNc3RNqwq2IFoxcjc3XwObb7Yp2dLSYG22RP41VK/eyL1uap24I5wadaE+T9Dkl0JBs5TSrOJQmh9YuDA0s1Gd5SetoN/2Ny5/EWzA59vtomvXvLlqwYEqNk4mlsr8kWSp1cy+jvadqFvtHQkKN713dEYKrqf5Tgmgar6pfa9R SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2016 15:25:07.9319 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0307 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/18/2016 09:28 PM, Jason Low wrote: > On Thu, 2016-08-18 at 21:15 -0400, Waiman Long wrote: >> Both waiter_spinning and yield_to_waiter are used for somewhat similar >> purpose. The waiter_spinning flag is used in CONFIG_MUTEX_SPIN_ON_OWNER >> to make optimistic spinner yield to spinning waiter; whereas the >> yield_to_waiter is used in !CONFIG_MUTEX_SPIN_ON_OWNER to make new >> incoming mutex locker to yield to the sleeping waiter. >> >> This patch unifies these 2 flags into a single yield_to_waiter >> flag that is used in both CONFIG_MUTEX_SPIN_ON_OWNER and >> !CONFIG_MUTEX_SPIN_ON_OWNER codes. >> >> Signed-off-by: Waiman Long >> --- >> include/linux/mutex.h | 8 ++++++-- >> kernel/locking/mutex.c | 12 ++++++------ >> 2 files changed, 12 insertions(+), 8 deletions(-) >> >> diff --git a/include/linux/mutex.h b/include/linux/mutex.h >> index 988c020..2b3dcdb 100644 >> --- a/include/linux/mutex.h >> +++ b/include/linux/mutex.h >> @@ -57,8 +57,12 @@ struct mutex { >> #endif >> #ifdef CONFIG_MUTEX_SPIN_ON_OWNER >> struct optimistic_spin_queue osq; /* Spinner MCS lock */ >> - int waiter_spinning; >> -#elif defined(CONFIG_SMP) >> +#endif >> +#ifdef CONFIG_SMP >> + /* >> + * Used by both CONFIG_MUTEX_SPIN_ON_OWNER (depends on CONFIG_SMP)& >> + * !CONFIG_MUTEX_SPIN_ON_OWNER codes. >> + */ >> int yield_to_waiter; >> #endif >> #ifdef CONFIG_DEBUG_MUTEXES >> diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c >> index c4261fa..7218835 100644 >> --- a/kernel/locking/mutex.c >> +++ b/kernel/locking/mutex.c >> @@ -55,8 +55,8 @@ __mutex_init(struct mutex *lock, const char *name, struct lock_class_key *key) >> mutex_clear_owner(lock); >> #ifdef CONFIG_MUTEX_SPIN_ON_OWNER >> osq_lock_init(&lock->osq); >> - lock->waiter_spinning = false; >> -#elif defined(CONFIG_SMP) >> +#endif >> +#ifdef CONFIG_SMP >> lock->yield_to_waiter = false; >> #endif >> >> @@ -351,7 +351,7 @@ static bool mutex_optimistic_spin(struct mutex *lock, >> * Turn on the waiter spinning flag to discourage the spinner >> * from getting the lock. > Might want to update this comment to "Turn on the yield to waiter flag > to discourage optimistic spinners from stealing the lock." > > Besides that: > > Acked-by: Jason Low > You are right. I should have made that comment change. As you have a new patch outstanding, I will wait a bit until it stabilizes before I update my patch. Cheers, Longman