From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Belits Subject: Re: [EXT] Re: [PATCH 11/12] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Date: Sun, 8 Mar 2020 06:48:43 +0000 Message-ID: <7e0ce8988f4811e7453859e22654d2618557d9ab.camel@marvell.com> References: <4473787e1b6bc3cc226067e8d122092a678b63de.camel@marvell.com> <20200306153446.GC8590@lenoir> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20200306153446.GC8590@lenoir> Content-Language: en-US Content-ID: <22B91EB6759F5E429B9A26A5E13F7A1A@namprd18.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane-mx.org@lists.infradead.org To: "frederic@kernel.org" Cc: "linux-arch@vger.kernel.org" , "catalin.marinas@arm.com" , "peterz@infradead.org" , Prasun Kapoor , "linux-kernel@vger.kernel.org" , "rostedt@goodmis.org" , "davem@davemloft.net" , "netdev@vger.kernel.org" , "linux-api@vger.kernel.org" , "tglx@linutronix.de" , "will@kernel.org" , "mingo@kernel.org" , "linux-arm-kernel@lists.infradead.org" List-Id: linux-arch.vger.kernel.org On Fri, 2020-03-06 at 16:34 +0100, Frederic Weisbecker wrote: > On Wed, Mar 04, 2020 at 04:15:24PM +0000, Alex Belits wrote: > > From: Yuri Norov > > > > Make sure that kick_all_cpus_sync() does not call CPUs that are > > running > > isolated tasks. > > > > Signed-off-by: Alex Belits > > --- > > kernel/smp.c | 14 +++++++++++++- > > 1 file changed, 13 insertions(+), 1 deletion(-) > > > > diff --git a/kernel/smp.c b/kernel/smp.c > > index 3a8bcbdd4ce6..d9b4b2fedfed 100644 > > --- a/kernel/smp.c > > +++ b/kernel/smp.c > > @@ -731,9 +731,21 @@ static void do_nothing(void *unused) > > */ > > void kick_all_cpus_sync(void) > > { > > + struct cpumask mask; > > + > > /* Make sure the change is visible before we kick the cpus */ > > smp_mb(); > > - smp_call_function(do_nothing, NULL, 1); > > + > > + preempt_disable(); > > +#ifdef CONFIG_TASK_ISOLATION > > + cpumask_clear(&mask); > > + task_isolation_cpumask(&mask); > > + cpumask_complement(&mask, &mask); > > +#else > > + cpumask_setall(&mask); > > +#endif > > + smp_call_function_many(&mask, do_nothing, NULL, 1); > > + preempt_enable(); > > } > > That looks very dangerous, the callers of kick_all_cpus_sync() want > to > sync all CPUs for a reason. You will rather need to fix the callers. All callers of this use this function to synchronize IPIs and icache, and they have no idea if there is anything special about the state of CPUs. If a task is isolated, this call would not be necessary because the task is in userspace, and it would have to enter kernel for any of that to become relevant but then it will have to switch from userspace to kernel. At worst it is returning to userspace after entering isolation or back in kernel running cleanup after isolation is broken but before tsk_thread_flags_cache is updated. There will be nothing to run on the same CPU because we have just left isolation, so task will either exit or go back to userspace. Is there any reason for a race at that point? > Thanks. > > > EXPORT_SYMBOL_GPL(kick_all_cpus_sync); > > > > -- > > 2.20.1 > > -- Alex From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-0016f401.pphosted.com ([67.231.148.174]:40434 "EHLO mx0b-0016f401.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726055AbgCHGtd (ORCPT ); Sun, 8 Mar 2020 01:49:33 -0500 From: Alex Belits Subject: Re: [EXT] Re: [PATCH 11/12] task_isolation: kick_all_cpus_sync: don't kick isolated cpus Date: Sun, 8 Mar 2020 06:48:43 +0000 Message-ID: <7e0ce8988f4811e7453859e22654d2618557d9ab.camel@marvell.com> References: <4473787e1b6bc3cc226067e8d122092a678b63de.camel@marvell.com> <20200306153446.GC8590@lenoir> In-Reply-To: <20200306153446.GC8590@lenoir> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <22B91EB6759F5E429B9A26A5E13F7A1A@namprd18.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-arch-owner@vger.kernel.org List-ID: To: "frederic@kernel.org" Cc: "mingo@kernel.org" , "peterz@infradead.org" , "rostedt@goodmis.org" , Prasun Kapoor , "tglx@linutronix.de" , "linux-api@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "catalin.marinas@arm.com" , "linux-arm-kernel@lists.infradead.org" , "netdev@vger.kernel.org" , "davem@davemloft.net" , "linux-arch@vger.kernel.org" , "will@kernel.org" Message-ID: <20200308064843.VI3HIXNuN7zINVfFV6KbU0JMw-30jR5B5E9kIKKGiSk@z> T24gRnJpLCAyMDIwLTAzLTA2IGF0IDE2OjM0ICswMTAwLCBGcmVkZXJpYyBXZWlzYmVja2VyIHdy b3RlOg0KPiBPbiBXZWQsIE1hciAwNCwgMjAyMCBhdCAwNDoxNToyNFBNICswMDAwLCBBbGV4IEJl bGl0cyB3cm90ZToNCj4gPiBGcm9tOiBZdXJpIE5vcm92IDx5bm9yb3ZAbWFydmVsbC5jb20+DQo+ ID4gDQo+ID4gTWFrZSBzdXJlIHRoYXQga2lja19hbGxfY3B1c19zeW5jKCkgZG9lcyBub3QgY2Fs bCBDUFVzIHRoYXQgYXJlDQo+ID4gcnVubmluZw0KPiA+IGlzb2xhdGVkIHRhc2tzLg0KPiA+IA0K PiA+IFNpZ25lZC1vZmYtYnk6IEFsZXggQmVsaXRzIDxhYmVsaXRzQG1hcnZlbGwuY29tPg0KPiA+ IC0tLQ0KPiA+ICBrZXJuZWwvc21wLmMgfCAxNCArKysrKysrKysrKysrLQ0KPiA+ICAxIGZpbGUg Y2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KPiA+IA0KPiA+IGRpZmYg LS1naXQgYS9rZXJuZWwvc21wLmMgYi9rZXJuZWwvc21wLmMNCj4gPiBpbmRleCAzYThiY2JkZDRj ZTYuLmQ5YjRiMmZlZGZlZCAxMDA2NDQNCj4gPiAtLS0gYS9rZXJuZWwvc21wLmMNCj4gPiArKysg Yi9rZXJuZWwvc21wLmMNCj4gPiBAQCAtNzMxLDkgKzczMSwyMSBAQCBzdGF0aWMgdm9pZCBkb19u b3RoaW5nKHZvaWQgKnVudXNlZCkNCj4gPiAgICovDQo+ID4gIHZvaWQga2lja19hbGxfY3B1c19z eW5jKHZvaWQpDQo+ID4gIHsNCj4gPiArCXN0cnVjdCBjcHVtYXNrIG1hc2s7DQo+ID4gKw0KPiA+ ICAJLyogTWFrZSBzdXJlIHRoZSBjaGFuZ2UgaXMgdmlzaWJsZSBiZWZvcmUgd2Uga2ljayB0aGUg Y3B1cyAqLw0KPiA+ICAJc21wX21iKCk7DQo+ID4gLQlzbXBfY2FsbF9mdW5jdGlvbihkb19ub3Ro aW5nLCBOVUxMLCAxKTsNCj4gPiArDQo+ID4gKwlwcmVlbXB0X2Rpc2FibGUoKTsNCj4gPiArI2lm ZGVmIENPTkZJR19UQVNLX0lTT0xBVElPTg0KPiA+ICsJY3B1bWFza19jbGVhcigmbWFzayk7DQo+ ID4gKwl0YXNrX2lzb2xhdGlvbl9jcHVtYXNrKCZtYXNrKTsNCj4gPiArCWNwdW1hc2tfY29tcGxl bWVudCgmbWFzaywgJm1hc2spOw0KPiA+ICsjZWxzZQ0KPiA+ICsJY3B1bWFza19zZXRhbGwoJm1h c2spOw0KPiA+ICsjZW5kaWYNCj4gPiArCXNtcF9jYWxsX2Z1bmN0aW9uX21hbnkoJm1hc2ssIGRv X25vdGhpbmcsIE5VTEwsIDEpOw0KPiA+ICsJcHJlZW1wdF9lbmFibGUoKTsNCj4gPiAgfQ0KPiAN Cj4gVGhhdCBsb29rcyB2ZXJ5IGRhbmdlcm91cywgdGhlIGNhbGxlcnMgb2Yga2lja19hbGxfY3B1 c19zeW5jKCkgd2FudA0KPiB0bw0KPiBzeW5jIGFsbCBDUFVzIGZvciBhIHJlYXNvbi4gWW91IHdp bGwgcmF0aGVyIG5lZWQgdG8gZml4IHRoZSBjYWxsZXJzLg0KDQpBbGwgY2FsbGVycyBvZiB0aGlz IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHN5bmNocm9uaXplIElQSXMgYW5kIGljYWNoZSwNCmFuZCB0 aGV5IGhhdmUgbm8gaWRlYSBpZiB0aGVyZSBpcyBhbnl0aGluZyBzcGVjaWFsIGFib3V0IHRoZSBz dGF0ZSBvZg0KQ1BVcy4gSWYgYSB0YXNrIGlzIGlzb2xhdGVkLCB0aGlzIGNhbGwgd291bGQgbm90 IGJlIG5lY2Vzc2FyeSBiZWNhdXNlDQp0aGUgdGFzayBpcyBpbiB1c2Vyc3BhY2UsIGFuZCBpdCB3 b3VsZCBoYXZlIHRvIGVudGVyIGtlcm5lbCBmb3IgYW55IG9mDQp0aGF0IHRvIGJlY29tZSByZWxl dmFudCBidXQgdGhlbiBpdCB3aWxsIGhhdmUgdG8gc3dpdGNoIGZyb20gdXNlcnNwYWNlDQp0byBr ZXJuZWwuIEF0IHdvcnN0IGl0IGlzIHJldHVybmluZyB0byB1c2Vyc3BhY2UgYWZ0ZXIgZW50ZXJp bmcNCmlzb2xhdGlvbiBvciBiYWNrIGluIGtlcm5lbCBydW5uaW5nIGNsZWFudXAgYWZ0ZXIgaXNv bGF0aW9uIGlzIGJyb2tlbg0KYnV0IGJlZm9yZSB0c2tfdGhyZWFkX2ZsYWdzX2NhY2hlIGlzIHVw ZGF0ZWQuIFRoZXJlIHdpbGwgYmUgbm90aGluZyB0bw0KcnVuIG9uIHRoZSBzYW1lIENQVSBiZWNh dXNlIHdlIGhhdmUganVzdCBsZWZ0IGlzb2xhdGlvbiwgc28gdGFzayB3aWxsDQplaXRoZXIgZXhp dCBvciBnbyBiYWNrIHRvIHVzZXJzcGFjZS4NCg0KSXMgdGhlcmUgYW55IHJlYXNvbiBmb3IgYSBy YWNlIGF0IHRoYXQgcG9pbnQ/DQoNCj4gVGhhbmtzLg0KPiANCj4gPiAgRVhQT1JUX1NZTUJPTF9H UEwoa2lja19hbGxfY3B1c19zeW5jKTsNCj4gPiAgDQo+ID4gLS0gDQo+ID4gMi4yMC4xDQo+ID4g DQoNCi0tIA0KQWxleA0K