From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754775AbcGVR4A (ORCPT ); Fri, 22 Jul 2016 13:56:00 -0400 Received: from mail-bl2nam02on0095.outbound.protection.outlook.com ([104.47.38.95]:18435 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751488AbcGVRz7 (ORCPT ); Fri, 22 Jul 2016 13:55:59 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=waiman.long@hpe.com; Message-ID: <57925E25.8010506@hpe.com> Date: Fri, 22 Jul 2016 13:55:49 -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 , Chris Wilson , Daniel Vetter , Davidlohr Bueso Subject: Re: [RFC] Avoid mutex starvation when optimistic spinning is disabled References: <1468858607-20481-1-git-send-email-imre.deak@intel.com> <20160718171537.GC6862@twins.programming.kicks-ass.net> <1468864069.2367.21.camel@j-VirtualBox> <1468947205.31332.40.camel@intel.com> <1468969470.10247.15.camel@j-VirtualBox> <1468989556.10247.22.camel@j-VirtualBox> <1469021399.19093.14.camel@intel.com> <1469134658.2344.12.camel@j-VirtualBox> In-Reply-To: <1469134658.2344.12.camel@j-VirtualBox> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [72.71.243.24] X-ClientProxiedBy: BLUPR01CA031.prod.exchangelabs.com (10.160.23.21) To TU4PR84MB0317.NAMPRD84.PROD.OUTLOOK.COM (10.162.186.27) X-MS-Office365-Filtering-Correlation-Id: 9b14af05-e645-4cbe-bb0a-08d3b2596dbe X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0317;2:pGLhXbIGIzb2a22qXCEd7DlGi+FemjBqXLxfrJzcy9Q81EywWhRb0OyfoV7p9KEiixtCndOsX+1cHJp2ED+5GDwkt76tR/OTt8/sh62ND6ICE6srSeNkbejFrACbKzAcYSvNmYDsjGdIMhEP5KXrTZaT7+Z71yOAsj3+stQTdoLv5OGTuhe9GGUnldWUin40;3:H6OISdAkaOgKw5ZY2juHw+1TIKk2BgmSdck3MHpICYe8xSwE4qyLP4aaP/SzGLSmW3ObvZGyGPaIjfuDMbgzc+9lFMD0G3BTAIPNOlSdrY7vH3wHiwJv/Yjd29R9ZYtR X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0317; X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0317;25:x0DGDkCXbc1+Gs9d++00AhI1FnIUPnw1yX5fPt7Jsan0t5Wc9ExWd+CDM+4nTGJeNFz/wX42A83h5Rghtb+AnFN9btjZrliFzl//9LGo8SKZKUWvl8NK+7vpv0DVwImtl6TVmTdTMz136ZkXTHf16lckG3LYt1Z6o6a0suvVPabNLZSKP4H1BWubEnAdCOjiAkNbamtikbfgWEwBTU2/L7r3QU5qteaPLMvo1ukd6MxrS50axZnOd2CoVNJG3tWlo0kCHqQxOB34g+09z/dmWqMGP6UaG2z7MLr+94SOgHS1HPIr7ZKtnYDhCmou7xMXjDTDC8Y19V8V5KZsJwVND9Ces4xT1l2c1upuKEAMn1WDEDTyv2ounIChEDhPLZ08s3t02EYNd9zp3Pm7PKTicmHvRTMf7jFpQZ0zkoU9nVnin5ZNlVqcBoeRHpg1qfAkGuQ8SoirnFWR1Lm3FrUsUdWCECGGtqO1YO9qnKfG+a7kTiWYFbACSwNt64gS9LrHj2dyCBIXG20e2u845KJ4kH7boV8c7dUCvyTi5KQ6L571yCnE0NvhsErF94aVBwZnO8Q2bK6tWngO0/lVJ845nM9IPyZkfKi57Ah22F8v1/4z6Wf7KfTP4M2TV1pZj2eZPQ24H4TQqxXPf4IFPoPMIJxRVOk0TYjHU+xI4upuhFoAHK8czkpY07DkfCpTqtuJayOD1VPNU9AeWr73/7TyMaNPagHlQ7l/aMNAmKz1U8A=;31:VwziOxUAuvgYghse1PejxxbwI3jRGh8Jg+RJ43MQKR+mAzfvvxW2zYk1DB1x8OTRjD2G4peTVWxMJD2KbBuuzK0mt2ZtbGzKsUDvdoe1nDAN5OjslmJlxNHYncKwtz9ZoO0RpbkRfJd8P38cGr6hL3bJEHOSCVJs0Ni+7VaoHYNTThYBXwDJ7C6fA+8gvYkPOg7EK8dVzd/TtRkDg0lRDA== X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0317;20:vhuOs+ggreRREb/CKHHQMRBrTuIgfgfzGJ/+M7ud4FS9Qj/JOTiWy3YKYBPiQWi3ty2o4GxYt3eoKR0j/AqRBGMY3+FljybhbZjaGzZKRv/tYsbis3yjjsOI5jmArQuwhuiPa25+fAPBn3Ppmp+FplAgeyUtFwN0g1bg+24I8XwP8m7TLSxzJ3ePUvnYVj1QhyHDuK9Yxv9i0IwLQSp/FA7sOIGRqaD0QFKt8YK58CNn3JQWrrIFq7Imzj0RYIE00ozvZxkPS8Dht/HudvKqHGb5emK17LdICKdICm2Lprmhj2qa10rn0LWx5+3aGLxSmGJK7hXRMSfyDOcE/X64zQ885NAGh9hbbQMAP8HxLOHXzUgXCIhmOakZFK857C68yKHTE/Y2naltLwPCeXcep9HX3/WAxnW/uSMrPN5CGl1m81W+/eJDdAd3WV1pYNmzRzPB/YXUbF6Q/qB7pdEydBi9DGeZ7kXwgKY8Mqj8EPhbDZLxDQZwAewCzn1d1iR2;4:S+E0bUsFSHwlwuvTX29/zycMiuIarIIbMO9CXkN4IC/whGyp0e1P4Wbk0hzKAQ6tiA/dUIrtkb4PYiRixrG2M2Cus5kszgueEHsu9gfEfEIOlnnL5MBGEVELTD4fhSAe54pTrRwM1zdG/bGtFSuomngbbynuOHjlM/rW6QjZyHP0Ynn59GVKPESM4uyRQJdktjks6ZPSnlHn1RqKIw7Xe2QFyh/rHMozgPm0mqaRLtvUxYqnrL6fMaAOqqHUUsD5tQ/nLb189tfNNEK7hA3Rcerp00ceaFP2E/Hxx3N3PbMJLanwyCO7HFI99lowkoSaS0beTkpJcgtN18n5+HP27VMGzCKNMKak7X8jt40+0aU/MHSO1joYKe75ib7Ggnf1iWWVYju6N8NEkmi9F+YNDQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:TU4PR84MB0317;BCL:0;PCL:0;RULEID:;SRVR:TU4PR84MB0317; X-Forefront-PRVS: 0011612A55 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(7916002)(377454003)(43544003)(189002)(24454002)(199003)(377424004)(33656002)(189998001)(23676002)(99136001)(4001350100001)(106356001)(110136002)(77096005)(50986999)(97736004)(64126003)(42186005)(66066001)(65956001)(65806001)(50466002)(87266999)(54356999)(101416001)(86362001)(76176999)(59896002)(47776003)(65816999)(117156001)(105586002)(92566002)(80316001)(4326007)(7846002)(68736007)(8676002)(230700001)(36756003)(305945005)(93886004)(83506001)(81156014)(81166006)(586003)(6116002)(7736002)(2950100001)(3846002)(2906002);DIR:OUT;SFP:1102;SCL:1;SRVR:TU4PR84MB0317;H:[192.168.142.176];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtUVTRQUjg0TUIwMzE3OzIzOmR5L3JtbmZKS09ZNEpwT1l4K2xoMWlod3FK?= =?utf-8?B?dWNyNy90V0xKQU5HZ1lNaTd6blZYNXNqVXd5Z3F5UEFyNUdwWEhGdE9RTURp?= =?utf-8?B?Q0NKRWdPeFFmTi9oa2NnREc2UElTR3NTYnNTNUhucVJWek9LcCthYkhHd0Fi?= =?utf-8?B?ZUJXZzdpNURWdE02WEpIM2pUU1hkUkxIOFk1enVJMGRFTko0Q2lTTGVuN3Ay?= =?utf-8?B?ZVA1OW9EWGN1TG1pQzN5bEJiSFR6Yk44S2lzbThRRHNBZFZRSUJKS3ljdXhq?= =?utf-8?B?U2l3aUt6cFhBcHdQU2J6SjVvWlJ1NGxCNStoMGw5QnlIOFlhTm55QlpnV0pi?= =?utf-8?B?NVR5YzRGS2ZEZmVPT0RoeXhsdnJvemtRdFhPMUx0VEdhdFVUQlpNb1RMNnFh?= =?utf-8?B?NHN4bDV1bjhPTXVWeldGMzFFOVFVYngvOEt5bzJCUGZsNVRTdWZpWGswLy8w?= =?utf-8?B?dmlWT1JFQUs5L0hBQ2xkQ0pBdzRqcUNSeTZFWEZJbGIrNzF2YURxYm1XYWFw?= =?utf-8?B?T3pQZVMrdnBpbVkxemtjRGVCbE9UMER3Sk1BZmFtQnkrSE5DdU5sVUlyei8w?= =?utf-8?B?a1pNRnNGWVlBRzNaTmx1S0o4K3d5WHJwVmVUM3o3by9tajNSdWZDd0NvRng2?= =?utf-8?B?SitXWExHelh4ZGlDY2NBT3BBTWRQa2dIVStueWZSamFWdFA0TVdaMDdrT1RS?= =?utf-8?B?N2RnRVpPMFNadG1MTTZwVkxVQlN1WTF5K1B0NkZ1bGp6Rkt6RjdhZlVMUUhF?= =?utf-8?B?bGROSzRNYzFTbW4wdEJsQ0dEeXV2RHNwWi9Mb045VElPVTc0eHE3ZkFabEJv?= =?utf-8?B?cE1IbXh5ZHkwWklRcnlMU3hYcnZEZW40WmRQbExhd04zYVFSODErNGhqQmE4?= =?utf-8?B?R2lkcXY5SUFnUFdKUmdsZjV4S3BEUnovek5wQ3RidjV1enlBNUxQNVE4elZF?= =?utf-8?B?NERhT1RJT2MxQ25uc1dhUnhzTUp4aU1PVWNIVlo2S2VxWDN3dGRMSFRRYk5x?= =?utf-8?B?RlpVenF0L1pZS2VrVHNQa0JEWGVNVnhCZVFXZ3QzZC9udy9aWlZ4STlnZ3JT?= =?utf-8?B?YUhLL1UvWUVXS2JvbEE4Q0R1K1loWkF6T2JXeXFsY0oyVW9YNUtiZmRQY0RY?= =?utf-8?B?NkxXWXJScGRGSUFXUytpUytLQVNYYnk2Z1R3N0F4WmlvRHh0U2VUMWF3djlC?= =?utf-8?B?R0JBT1BxQlV4SDRjU0dtaVo1WnZKNnhHRnB1RUd1d0dpNXd5c2tEVUpoYXQ0?= =?utf-8?B?VFZxTmd4QlRpR0FJY1h5d1lZTncyY2dxSE1VU0VoMVI2eU1Yc2NEYlJjSUdz?= =?utf-8?B?U05Qb2l5MEVMVXl4Q1hKc3VzTlhSVG1pUXJSa3NucXg2c0FoN2hQLzEyZ05H?= =?utf-8?B?MTR6a0pBQ1RWVm9TMGREdFJxTmxjV2sxNHIwU0RxS29naWoyN2ZQYjQyeUpu?= =?utf-8?B?dHl1K3FuMEl1WWJTNDJtYzUwZlRzMVZYMUhrV25iVmdscXl4aENaaVAzMnFs?= =?utf-8?B?cm9hekQwQldidk13d2p6NGtuVzlRVW9jZlVLSmtJOG9HM1pCS2M2RWUxUllY?= =?utf-8?B?a3pucGM0am5JNDFTR0ZLNGNLTjk3OS91YmhDRkZlQXRhcG8xeTRpSWFjSjlp?= =?utf-8?B?M1l3TVlmVzlVVkNYRGxvVmljR0FlUlp6YWFTcHA2cnhYMS9RUHBlaXlVZlpY?= =?utf-8?B?M3g4WEpqelNGZEwrYkUrYVQ4anVMbDg1QWR1RlduUFdRV0d5SXplK0k2YWxw?= =?utf-8?B?S3FQUUhRS0NCUHoxUVBneUE2RW5NdGNvVDlvTWd5Z3I4QWZNNkxGM2ZyTkFP?= =?utf-8?Q?aSeg6RsNmTKsI?= X-Microsoft-Exchange-Diagnostics: 1;TU4PR84MB0317;6:bnOp/M8QFQ3SzXRm6pxWjybA332P0KJCOyniMB9g1g89SeTgsOP0EbHVWjU8/HdxiEMi6F7Ajjr6p0+ruGoa9XrktM4vOaP9rB1ELosMnLiZTUkApBr/Kp3Nn64YnoY998z3ZDyZYysKW/Snw0Pz9eplsNLBY4Jt/qVPneE71X+GeQbLNzev90OkCtKA1nxZqbCEl6ABQqk103ZO/FHPc6TSyQNQ1cKlykO3miqD/vKb65Sbc59vKhwwPsjbuSSwfmaJRgV7aW74N9BEPHZ6nIzZtCm1LRWzbRGHJWdzoKIOl9lW+misPyxcPQoVgXDiWAEefMOkvZMexA02qtpAgA==;5:TQTF0zhaOdlyC4k9wMo7Ge9d3Cu0OFKik/h0v4fAVsYU9aT/309CBSyxTp5BgJNFsHcd+IHxCJqE7w4qWPUUWOxxFSLIqVZoS8ISJIKErFfRY3JuGQdvqrdUjziFJf/C6gUwvaxyajN4AAiRzIXYOQ==;24:MFCUCnNYpoH0KCZIO+7bD+MXea1a1DywRtkILWFQhFV2V1d0GLfUQqEnSksTG0dxgPu/QTQBSxDu67ZSqnN8paJwgfEQtHQmBHpJv578E5k=;7:KD3U9bqsygtO3tKPusn2gBFc5ZS/idEn1KRuoXZuhwHBPy5qOi8e+T63BnzY9IrHG+NSyh+Ex1BtLApn0m+WpGnZ8ehEq3Vsro533ZQpTxGMR64t+bDhrbM1Nv96Xe+UVoKXFduwh0lLRfKjUEmPqJ4RA0H2x5iXckBkIcK3NMFxHsIPXYpWyzNz6cGRjyIXiwWu+SO3OdHSeIP4Nmm3Mw1A3y8er0CbE4xUmHEdHZKIN1KMVoXJrkhQurEvNilk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jul 2016 17:55:54.5445 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: TU4PR84MB0317 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/21/2016 04:57 PM, Jason Low wrote: > On Wed, 2016-07-20 at 16:29 +0300, Imre Deak wrote: >> On ti, 2016-07-19 at 21:39 -0700, Jason Low wrote: >>> On Tue, 2016-07-19 at 16:04 -0700, Jason Low wrote: >>>> Hi Imre, >>>> >>>> Here is a patch which prevents a thread from spending too much "time" >>>> waiting for a mutex in the !CONFIG_MUTEX_SPIN_ON_OWNER case. >>>> >>>> Would you like to try this out and see if this addresses the mutex >>>> starvation issue you are seeing in your workload when optimistic >>>> spinning is disabled? >>> Although it looks like it didn't take care of the 'lock stealing' case >>> in the slowpath. Here is the updated fixed version: >> This also got rid of the problem, I only needed to change the ww >> functions accordingly. Also, imo mutex_trylock() needs the same >> handling > Good point. I supposed mutex_trylock() may not be causing starvation > issues, but I agree that it makes sense if mutex_trylock() fails too if > threads are supposed to yield to a waiter. I'll make the update. > > Thanks, > Jason > I think making mutex_trylock() fail maybe a bit too far. Do we really have any real workload that cause starvation problem because of that. Code that does mutex_trylock() in a loop can certainly cause lock starvation, but it is not how mutex_trylock() is supposed to be used. We can't build in safeguard for all the possible abuses of the mutex APIs. Cheers, Longman