From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755137AbcESSFw (ORCPT ); Thu, 19 May 2016 14:05:52 -0400 Received: from mail-am1on0072.outbound.protection.outlook.com ([157.56.112.72]:59712 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754628AbcESSFt (ORCPT ); Thu, 19 May 2016 14:05:49 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=mellanox.com; Subject: Re: [PATCH v12 07/13] task_isolation: add debug boot flag To: Peter Zijlstra References: <1459877922-15512-1-git-send-email-cmetcalf@mellanox.com> <1459877922-15512-8-git-send-email-cmetcalf@mellanox.com> <20160518135645.GJ3193@twins.programming.kicks-ass.net> <684587d7-3653-7570-215f-37d3e9e786bc@mellanox.com> <20160518170647.GL3193@twins.programming.kicks-ass.net> <20160519175431.GY3193@twins.programming.kicks-ass.net> CC: Gilad Ben Yossef , Steven Rostedt , Ingo Molnar , Andrew Morton , Rik van Riel , Tejun Heo , Frederic Weisbecker , Thomas Gleixner , "Paul E. McKenney" , Christoph Lameter , Viresh Kumar , Catalin Marinas , Will Deacon , Andy Lutomirski , , From: Chris Metcalf Message-ID: Date: Thu, 19 May 2016 14:05:27 -0400 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <20160519175431.GY3193@twins.programming.kicks-ass.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [12.216.194.146] X-ClientProxiedBy: SN1PR0701CA0081.namprd07.prod.outlook.com (10.163.126.49) To HE1PR05MB1689.eurprd05.prod.outlook.com (10.169.119.155) X-MS-Office365-Filtering-Correlation-Id: 343a84ac-e2ab-46d7-7425-08d38010330d X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1689;2:NKzkZwn9K8sKYJLjSBRCZB+1osP3qE7OL33wlKIwbBrlZTpmI08SLbkXAI3qgjJsJSjvMIoRMa1H/QC6Px7C6T3/B3qUiK3qF8IMfaTMa1U4LwngAG+yiwP2v40LCcvD8jG2iC4pY8Gwfwrx7JnZ/+1oFUZ4NEYCffWHlw7y7GUQxmMv9lszvBPFrBMfsYgC;3:KfgA0EKteSK8o90QabB1hN2wYJcqPh2WvZGTk11ooh6+5VnFsS5K1/3tkv8pzBZeE9SUMh2gwyCNRFJJRCEdurPFaSZUCosmObMqe8CdauXREg9SDVHnmKLRe6eZtjDL X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1689; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1689;25:yJnXxA3YRpEU7uCkSDwtVzsEU/ksTNaKcR1NuYts7G7pN+hT7EvtHd+52YU4m55RqicsMfrs5cnnexfdUSdPn2MYfad2pW6BwX/hOyU9HCgKYBgFCGQBsXS7sQcv+k/UkLcSEHdJ2/0HuvFrkVXg+wsGbr0ZpcC+m7aupfupXRTLDQuZMwbHodwc1x/GxxlPMt3E/SqP1tqmjE7ku1HUJkW+o2lWXan7js7XGAyAF6FWDB2yH4okqsidblJ3ayAdWELoIrhrhPkkmUiJzayRoESj1hEziZCj2omWVD+iUngTLEuvfuBfXB5gyMLMn5FxaJE8PzGVFJSpDI/6rtquxdSGlkHYMOTHEkR4dtzsJNgyKZXzsxnZVFY2DErLGxOeCHzFJ5iDvRfy9osWFMXxeRpnDoObQnUuwFkOFMt3fbypU+ZZfYcIP6eDYrReBpwBJgu0ENipJ4T9ywb8NnlzifQHI6MSiaWogj3pAShq+o9PPBVMKJCYO6P4QV7oWomzs/JQttCshnBC3nzyN93QiH3tvYvC7tHZv9OwPmB0cjvPhBhBCmu28VF6KG5JNDGTMkDd61MSOufwkbwX4yA2TiZ+OfRTJhd38g0QaTi8YYrO1+FcrSmqqokU07hlWmdy5mV2mI0XAW9dSWbQXR3WEG9WKGDzvkpljsx+S7+XDAW26HyF9vrSceo5WJ0CiRZGFdkEU62k5/jLjNGblNMiDQOaaDe5JvH5zTINFXR2ZQIIFv5CW2QiFZ3iliaXN5c+w3TTDuxSG9WGZrFYy84BoT5NO58UWBFxBL/3OcXYPiS7a2/erZG0kgFi4nbeebbi X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1689;20:fIlUkUVMFPYbbZ/gkDl5Y2tL6Lr6XfGWCYxUc6r6hEtHOBtBxM/YYxAqYocm8hjXDbaoPldco18tZZScOv/qs067XE+f8EX8saO0eaiDSdSE4h9gmKZ7rwvhaBsliTSsWJtZW8XDRdGynNy8fA963m2VZlm3k0WofOsNPyLl1ViLyYf75BoLgYIEtByp17cTkH5ZW9lkSDryB0hRgeztg083QlrR/53tpTmvqN7LYGYI7IgjiObQ08iq3ROPvzgiJbBRxEB7K9bIMAFtJ68oNqyXLoISThBdB0WCBkXyqtml3SKBhDnOIFOu5UBZdWBXoffoaGG6NXtQtZ1QgMjnEpw9Fe5hA1d523Tfj7ErC52F9uvzy8et7czPFTNkqMoUfPaMqYGvqbhIMU9zWt6DcaeW6f7WruGBuVzMZFG48Idd0wGwzL4c1IUQv1kszr2II3vopDXLlGh8xBysE7Ai0HxeMvE9uvI6Z2x+AReuqyqw04SuQ7Kt/eSkpfH7iKrH;4:JyHUP0mMAKqf3F1WT3fGNNBxGofFO+O+08QeWtoRKG0ZVH+UifQ30KQK97EH9GOHIrgCzyjf35tNenBt454UCY7i1jR8JWyL26phRVUIU+AmrGEdwYkD6Kutl+Yg1TS9dq7N3jlCJwacY9yENuCmlFHqH0LyEIpOhBSODZs1xYtOMK6Ogl2kKYjunKPCmaAagEzRMCvDdH9fWnR8EA3MvDJXpaK1maT3UjqdYYllJdbR94rORGHzYTxr7/PQqv3z3Efp3Na6asGbkQxaJsJlFM6cE4rVHjCMpy/ftmDi2THMBSf+qzIDvvoP+IvqvlUKtQmrH86TDf0bIwOLg2Dt2PA5DKb8st8wUsv+jF+WizcQ5wMcE9jUmW/2tD4ZJ4yM 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)(10201501046)(3002001)(6055026);SRVR:HE1PR05MB1689;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1689; X-Forefront-PRVS: 094700CA91 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(51444003)(52314003)(24454002)(377454003)(586003)(3846002)(6116002)(33646002)(83506001)(50466002)(65806001)(65956001)(66066001)(64126003)(81166006)(19580395003)(47776003)(8676002)(23746002)(92566002)(230700001)(93886004)(42186005)(86362001)(50986999)(54356999)(76176999)(36756003)(31696002)(4326007)(2906002)(4001350100001)(15975445007)(2950100001)(5008740100001)(77096005)(5004730100002)(31686004)(110136002)(189998001)(65826006)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR05MB1689;H:[10.15.7.169];FPR:;SPF:None;MLV:nov;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR05MB1689;23:eLa5loab7tvzXV6UYr8dizsmufdxPfs8aXdLd?= =?Windows-1252?Q?anm1oCO0eG5oyu+aFreVVY9Il7kbL9zFJI+VjXdfVZb32xIWIe87qMCu?= =?Windows-1252?Q?R4x0ZrtbVGVkOCy1YFJpmeJBTcVseHt03Wes4CsPCITAPXwrDGVavocD?= =?Windows-1252?Q?3SP97IrLFIwoQlABHpdy8MokozeNBT3P1x0cO9ZNAdrP73aocy6GleDM?= =?Windows-1252?Q?491Y7Rk5BGOVO5Xm8r1hCdocM1Kv23KUoVoocDTiPikBBifgBWKbYdFl?= =?Windows-1252?Q?G9KdhbQ+JA/vCu+G41BGb1NLkRLGNbeSySH7SYSOesWQ8ADH8vtAV2ly?= =?Windows-1252?Q?Vi0mb6ujz9GYKr68QG5PcpgLQ1HIdn37QppB7J5qLLqwUjJSjheFuxIO?= =?Windows-1252?Q?v/C/VITdLD1bQeiZIeF1wPD27ubdJ4IZlwwwpBIIMe4kTih93WO2AOwU?= =?Windows-1252?Q?GGFrcVPsdVoEsxfnKEJObrqapzNZqilh/oz9Lsg+a6u6nNTMWDjxt/06?= =?Windows-1252?Q?oLlL4FOECNJssa3cDVA98OgmLpv1qjIRMSRV/p/k5TN/GxldZwEYMbGY?= =?Windows-1252?Q?9oKNToGHABiqb/t+KW84Z/8QlkCBTdYSLknpID0Nyb+jFJfnOU05bEVD?= =?Windows-1252?Q?viKYHq1+IENu48FGK0T6OOTM5+Xdc5NnN6Z6YaVf4Zk3AntnuSR65FEz?= =?Windows-1252?Q?4yN3F7deYtfNddVISUQcHTOtZHjrrhBS6iMEbskxBO03yfcaLkipLZRP?= =?Windows-1252?Q?NmOWd+MXf75QG7cji+qdL7f70GeZ1fOJLPV3/t3r37FiwrxkrX52N0AL?= =?Windows-1252?Q?3is9RvLRARq2zEX3vCzp8SkjMolDz4SRxHntiF98v1G+MisEkzRVXR86?= =?Windows-1252?Q?/hCaOVHqfTTOEZCa3YcSksLImazA3GW9Pu6GBOPL0ZkULC8O4fbnpWAE?= =?Windows-1252?Q?jTzQrTFrVD/RfC3zm6/WkvZxfdiGN57uCzbdJpqCbZYpf5+FZxuVL+L8?= =?Windows-1252?Q?rZr5KmMIeneHGSzWv9G0d6CJmG7o93gCNZZff9PmInpFesuIYlPfXxXT?= =?Windows-1252?Q?kqADOx/jTbAAgDzKXVMJ9cE5QnRtKxF89Ocf/5+djrhFM+fyKKL9BNgK?= =?Windows-1252?Q?USX87Xw7tEkbb8oCLgjIuHh/xG3sjId3g5xXQEXzgRrdcRRf+kxNzGHx?= =?Windows-1252?Q?37j+BYjf/c1z9x9g5Nbws1GNfzsp3kZCYH/dGF+GRRa++z99pPqbZJ7r?= =?Windows-1252?Q?KKot0qM4Wb3s9QQWncGpiI7gei4b7dBDWs+wrQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1689;5:QUVM/OjS+FQSr0gbabAZ++6OADsmWk5xINISX/LD7AS2QRe3cyqoMGAXAdvvGKsJgp0kNK3HUHKeEDyHhQ7jfAno+qdTMc9V0oS5kWxXE87hjiQsCMyaQ1BzmgXzhfMIjQXILy+POTDoYP1yU8T/Aw==;24:IrgYlteTd4IzItU5tDdhnymycRQ7swJwXt0qbd4MAAZdkZwFfUC1qx5RitEvnpSPSwjcpSE9qwQkb5GrJvpEl6LcF+dlWvUvnIOl2sDWgtM=;7:GeBSlBtGDuusjngl9rYf4iiIt1txONPkUZlh/sS16Vzl3p7A9G4tXY8RLfSK44Lvfxcb1FERAh6S3pJ2tVUsq2JdtlQMnluph6wnCe+8E8oNLsN1pUDGnzTpy4M+ASPc1k2BFqXzwgaofhLv8RdQjjPcZfHHe048LbIsGdzJOVc= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 May 2016 18:05:41.5128 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB1689 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/19/2016 1:54 PM, Peter Zijlstra wrote: > So the 'simple' thing is: > > struct rq *rq = cpu_rq(cpu); > struct task_struct *task; > > raw_spin_lock_irq(&rq->lock); > task = rq->curr; > get_task_struct(task); > raw_spin_unlock_irq(&rq->lock); > > Because by holding rq->lock, the remote CPU cannot schedule and the > current task_must_ still be valid. I will plan to use that idiom in the next patch series. Thanks! > And note; the above can result in a task which already has PF_EXITING > set. I think that should be benign though; we may generate an unnecessary warning, but somebody was doing something that could have resulted in interrupting an isolated task anyway, so warning about it is reasonable. And presumably PF_EXITING just means we don't wake any threads and leave the signal queued, but that gets flushed when the task finally exits. > The complex thing is described in the linked thread and will likely make > your head hurt. I read the linked thread and was entertained. :-) I suspect locking the runqueue may be the more robust solution anyway, and since this is presumably not a hot path, it seems easier to reason about this way. -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com