From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754504AbcHSA65 (ORCPT ); Thu, 18 Aug 2016 20:58:57 -0400 Received: from mail-sn1nam02on0121.outbound.protection.outlook.com ([104.47.36.121]:22816 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754418AbcHSA6U (ORCPT ); Thu, 18 Aug 2016 20:58:20 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57B5D2A2.3060403@hpe.com> Date: Thu, 18 Aug 2016 11:22:10 -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: Jason Low , Ingo Molnar , , , Jason Low , Davidlohr Bueso , Tim Chen , , "Paul E. McKenney" Subject: Re: [PATCH v2] locking/mutex: Prevent lock starvation when spinning is enabled References: <1470854648.17361.9.camel@j-VirtualBox> <20160818141404.GA10121@twins.programming.kicks-ass.net> In-Reply-To: <20160818141404.GA10121@twins.programming.kicks-ass.net> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [71.168.64.14] X-ClientProxiedBy: BLUPR08CA0057.namprd08.prod.outlook.com (10.141.200.37) To AT5PR84MB0306.NAMPRD84.PROD.OUTLOOK.COM (10.162.138.28) X-MS-Office365-Filtering-Correlation-Id: ff30da55-df26-4d4e-5a52-08d3c77b7054 X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0306;2:EPmPOJ0cp7S5+7ECdJlprvsHu9R34pd4NSqnYWAzUUtKhyV8kssJZPcxTYlStmY9U4ZlZ2XdxXMRTZJBFC9PksnEbM8d1EesOHoD6mDBWdiuCIZZlAo1C2bEuvmst3XnXz0Q+lTY0t4H9sBYi50i+8VYBxpPN2ZqOFz0cAkbBBLNHvDk90sQkgs/h8M1arnU;3:gg/LKQwLQLJPaZB3n2jES6gVzzlyg3ZrG3wvjeRKlVhnvvCXptkdh8DODJfmc3OnbTDMxGjlIsOdfR1jFL2luuipfo2OJV/Yxowszi4I4hbjG9rtmA/tePAE9wXx1+Eq X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0306; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0306;25:HsofJpZhdpY5+I1neEV+UE6mTUH3vTZx2Y7qMqSLtRudrYNDBuASqCVTvhWguYia6rO5PeUovuqZi7Y10iOoLQ96Z6mp4fZjLLhPdzK7+6nyIq6BVrEntzP0qbXcch5NmwO3bbMZ+FevmilZAwxTW1558ezMQO+YJWXIalAUP88ELZFqLSXy79vd851z2S1Cuv4ER1jkd2/joDwQYx0KuKydGXvDWHU9+/JuyAUJyjdMKqfUUWb4IK94EYeU/VTUQkBPKCXNMP7k2gD+ewc0Lysr8008pfLdAPEgZskx+q6R7EgeQexlSG1GAyKZuAXv09qgB4H1XnJppkY6vNUFqHRJSEK5FnlOMUedZVSwbu1+qu4tGpH1phXA8v54aJjiLs/pu8njzYOQNsJRl8XW5hDHRSeDNT/aD0pCEnwXnLpAxjZqTWU43PP5Zc4g1O/hysiib5CtHMi+yDLAMwMY2FHhtXNVUjjTtrZRSbIULAu3kUUeijnnBZTGzbZIFQj5zr7xp81kIlF7nbIfXlyL1pUzqYQ9Z/YVVFi8wiVS6QbBUpJBhtfL5dwzJBGq0GmJmNqZURENnpfHGlVvMcm9ZBgLZ0Vd1qH1VzJ2FghCWfv4gLAtEZXLV4oUiX3/8jehOOhrljsPwzAiwEY+6YKo5FsEDJyAErZd1n8FMAmSzQ+N3V8cTpcUdbNt5QAx60OtIc521hnfwrLCHZsuHvls1bHfajmbuMDiqbg8x/aBBp0= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0306;31:gp+CpoUOwKGSAxMjLR1NqHr+tzxZIJG/0OrYrpCMjc/3wPM+NtaM/nf80hkW6eVLX2t0yQcMCYxrgsP+3EyxzXRoKnOpv4JmPQKXrt67WF9L3aVYbzNpS5KOOPcCwSEAQKkcs7P5x4pzyiscooHmYljuI/DgZQfeg5f1g2XkqLo2zp27m4nYlf+0WMtIHlmjPXTPTtTSmlr/1W5w9P+7balJTC8PcHyCnSIAS7VuOSk=;20:ohmUdiYLZJfQkrnE0AlxhFwUlsa7cW9gzLnfJM0XFpoAeX+DJk8WyQqf+2Am08RaVPnCS4QQqiXzVHzReWA3hLjsTT/LhOlMPxwUOjn86NEwwS4X9yvEtq1VOndyjOhNANBZGtgDhWZLuGjafjFcxKnQWn+kM4IgdcSnux5hLhmaYTZdZaOSOH74wGPEx+KThyYKH0lPiS5x/57mZVTPCKB502TKJbumZsBOr6l9s1pSs1Zkas8a83BuTRmNABgRusmtldOy0y3GWunmFpmubw1bEX+1tuedwT5Qg0/rijBWqc6ArUikl0aUNWucswxpVcSDTSdLe9ZHez604sycv5RCe5OBXVHqEDx3nzgSeRoEYaaasI85xiSwR49sKdXKUJIYapnzAn7g6GKt007HkKjfp4+taOi6W2yG0zwHZRhfL6gDRp7lAb8vJzQzlulpoNGL+UED0dlS9cugtC/xhRqI4PR5JuBFtQsTVWyJ9ea8RTufGwgqBKoFXOajhK+r 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:AT5PR84MB0306;BCL:0;PCL:0;RULEID:;SRVR:AT5PR84MB0306; X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0306;4:TcKBk+4wnqMtUNy8g9gWwXTJjXVgzCmIv80aMmRKEElB4PCUIlRwvmX2HHYeaDIbkd1nqZ2PNsW9T1ehi0Spumw9Cv7vt1QAq22mjGw/QqhnayHF0mixyLE78dJgRxsYv/X0aOjvxgINd9tgXu+McK5WB8FelPWGJ5PZLLtqU5RVhiKY2I39K1KMex/XqzRJDLBJqz6B1puxOYhaG8/GGkJnA86w3JzZDIBA+jpsSqunc+M6Q4sVWNOcT1Jc7RSOvUhOM2ElxQLj008ZpbM6+P8EWwBZoueMQo+q0bKIhgZ9quIfP2+b7jWpqlpkRoR/sWM3T4f5Q7qqyelLGvVwnTWYTnl1eP+9yvdm8j0ovNjd8312qBJq+RT3oPZ7A4wDANXwsFyEQiA0HytNJ3kqPQ== X-Forefront-PRVS: 0038DE95A2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(24454002)(377454003)(189002)(199003)(59896002)(189998001)(47776003)(101416001)(87266999)(65806001)(76176999)(81166006)(42186005)(110136002)(8666005)(83506001)(50986999)(68736007)(7736002)(7846002)(230700001)(64126003)(50466002)(6116002)(4001350100001)(33656002)(54356999)(2906002)(117156001)(86362001)(81156014)(65816999)(97736004)(586003)(65956001)(305945005)(77096005)(106356001)(36756003)(8676002)(3846002)(92566002)(105586002)(80316001)(23756003)(4326007)(66066001)(2950100001)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:AT5PR84MB0306;H:[192.168.142.188];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;AT5PR84MB0306;23:VcRsQgOxiyzd0DTAW7BSLg/rEMYPvJv7D0lRQcw?= =?iso-8859-1?Q?oaqv7Q/ujeWh2XK2GMckh9ZjaX97Qn4RxoB8p5MaBmgXhDPN6p/RWzJSpY?= =?iso-8859-1?Q?5PSbn0ImBVaSz4v6A2ykd8uPcyEnLDhDxoEjVMwdHWl2CM96n6OIKMNsv5?= =?iso-8859-1?Q?wvfjR37QYo/CuDtyGmerfOjoC+cRNaN88hTUxr6ujxxTZvS5Xz4LhtddmA?= =?iso-8859-1?Q?1hY9p/G8PaAHBQMoToNiZ0KqoDclG7ADQYNoNvorNMhI1Tj6KpB/Cek4LM?= =?iso-8859-1?Q?KaEvOYuJ7eKccajQbZUX+6eA98vjtyeP6oOQXMlsRF8qW7Xw1aE8NrBQzG?= =?iso-8859-1?Q?XC5/Vayu0XIwHOHJXThPue0CTtKL0lZqLMd2BXN8YLa1Ba/9JBmVwgu1TS?= =?iso-8859-1?Q?mwYjA0zthmTNWTmwQZAHR0dc9r9RNtucYy7/Cex2GckI1dGt63j0PQ68nS?= =?iso-8859-1?Q?rv4Ji6e5A5F2Afdv6WC2Vaf7CBxnriKlLf3z71WpAbyXr9RcSBKSgySJCE?= =?iso-8859-1?Q?4C+7fSMQVGVFB5NE06rIJ+vx34QJkDqD4WqtKRFmwfEiIik2NsxsVI1nRo?= =?iso-8859-1?Q?qkZGl+FH+KCHUYeC86RdAT7E9N8MZakld368nEE2zpbK0QFhACnQt5/doN?= =?iso-8859-1?Q?LBc4r3sXYQ36LP86KVhdFli9F2oAiQZd/Qa42mVhueBlynFnup62G+v2Se?= =?iso-8859-1?Q?kbOWYBdi6dEpgCkUxMl6BJbRsUzdKMhfq1hO390qQrj1ujG+iM18T7Lacr?= =?iso-8859-1?Q?M0ndFq2Jy95mLWLpb8D9KPPrUQn+7i2P1DEkPSW97QWUOofuM7IvdySvK9?= =?iso-8859-1?Q?8OI9Wq67gh8w+sfzFzRBHZ/kh2Bi2MftqpIbpdq5geYMLq5yO6+KqfpSGR?= =?iso-8859-1?Q?8kQiuh6LOFI+oBv6UiW7DGhMJpaiYNIoFe0PosCrpm/+U3IdTbIxLq6FxO?= =?iso-8859-1?Q?YppO716YklMX9SmJVtKctuaYq4cUQW4gr/MfisS559TVuuQiM+RKj/qwSS?= =?iso-8859-1?Q?yseShG7yZknK8dLYXFOAIR+1Pv4ShxRkRtovWDqCXXi8wEeuNslzMbUdZh?= =?iso-8859-1?Q?QZry6LdQR/VYdCM4fQGLrTCQgy5bpZN+sa1VLIb/Iz8VD3d3LDZzGcVVC+?= =?iso-8859-1?Q?QFhA8l3ybjxnoN9dMAQpqamC5+en/egxxgrIDpvnCKoYna4MXdT23Y7Xsp?= =?iso-8859-1?Q?qhSpEVgSbXZ2/xJdro+bbiX/afn5HAeCINbDb7gJYVsY42JOjwo5VL5lZK?= =?iso-8859-1?Q?xkVBt3zuot3jaeN4AvCXtTQtbXRAeYEVN8MCX9HOVHT3K92hi9CHcJpKV9?= =?iso-8859-1?Q?HFo7ucDHgH2NBr1zWQBEm9cFsY3DBshNZR6URk9J8TDYQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;AT5PR84MB0306;6:lDXaQSTAmJSxKgnU/nuyH1nuAj0CyowuxqVRqO93JQv8FNpUaw4rmzlJZHTGndWq2sdIfOXoTzWtKJp+moNEpMAzfar2ZIE7t/PsJud2IdUFBOklHT0BxnJEFGY5FpXR+jcSJM5i2KpaHQ3nYmlJzj6qe0ZJUjKgAP4jHZji+97tDkdSmEKx9V1fSpAu6HTLoE7my/zpEyS5DmK1CdLUZBqjl1YwGdpA0EHVgPaYtnESKo+9iAweCEK9Tm1sz9/ZzkBpLMt4XEmVextCQGl89YjxY3fsL+nnAPIDilirEp9m+kzhL6uhXsRY948ThFWvmHvdjzNm4rIQMhDnaZ/3MQ==;5:L22249kWMYPkA1NgPJYzPdJELvvogB+B3m2f/cveuHwcOGSI6HzMeqk9qwBs6ABSgL5kY950qHNjg1m0FS7pQm/EC4+/dj9jrgRD4OilAp060IMb97e1VJf9WyZUWXzO0MLxn//fCRTBwJWV+wr3EA==;24:3c0KsutntnRWG96dfTl6ycCFs14s7KGPeziueTN3awC0i4FYbZVMRjWjxThOtse+PljLCivX0iQuDDJ3jE84097cTgvmtbXtVL7H7N6uMe8=;7:NYuf7er9mARbzhWLt2HRhfx3QU3vL8akaSSOBzNx4Yb0eSLMIteR/P/EeSBFl1KVesrLS78LdQDIKuRIewBRmALE5hvT3AyDllNSOq05yzGjDDMsBfFv2bl18k6Ye7hK14SuYX1bimGUQtFLbYMXDWiFZjQPRJf5P8qr1/IJVGZ9Sqbcqe4lif1JwrJiPk+NebYglO0y2H1bAeEZg3MZGxX7vC2R39sNNDnz9MEkxQH5+weAvalBOPhBg0AaX9Sq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2016 15:22:14.8726 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR84MB0306 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/18/2016 10:14 AM, Peter Zijlstra wrote: > On Wed, Aug 10, 2016 at 11:44:08AM -0700, Jason Low wrote: >> diff --git a/include/linux/mutex.h b/include/linux/mutex.h >> index 2cb7531..5643a233 100644 >> --- a/include/linux/mutex.h >> +++ b/include/linux/mutex.h >> @@ -57,6 +57,8 @@ struct mutex { >> #endif >> #ifdef CONFIG_MUTEX_SPIN_ON_OWNER >> struct optimistic_spin_queue osq; /* Spinner MCS lock */ >> +#elif defined(CONFIG_SMP) >> + bool yield_to_waiter; /* Prevent starvation when spinning disabled */ >> #endif >> #ifdef CONFIG_DEBUG_MUTEXES >> void *magic; > Isn't this also possible on !SMP&& PREEMPT ? I don't think there is any realistic chance that starvation will happen on a uniprocessor system with preemptible kernel. So I don't think that is necessary. Cheers, Longman