Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp673184pxb; Wed, 11 Nov 2020 13:16:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGImRfFlBhaSAmlcdRdG5hb0E0S3soHH776H71CQHiUCB8ndv0MeTWeATvgWCQRlOAjTG5 X-Received: by 2002:aa7:ce8c:: with SMTP id y12mr1652534edv.185.1605129402381; Wed, 11 Nov 2020 13:16:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605129402; cv=none; d=google.com; s=arc-20160816; b=RuiRliWUP0gjPDlPNu8RGXwFPDVOau8RCQHmFAlFcLqGmb8kuSKDMMp85Ovxqdiz5z 0jn3YNHx09pVVKoXB98g465PjEHbJQXq3h7ivKO1hPfex8YLsku1l6YguwiJo39Oo1AM 5VMyKNpU0SO5+rciWbghoZb8VCpSi1bcInh1z5eLDaldryN95lo+HhjViIuj2lH5TB74 HiE8ls9ghUk3bgoBk3Npv5HAIoKFLccZSl6hrZYMdqpcubhQ80EfB+aPp3j1QR285v+B SiGQbKFuJPxdzJY7H8oW0ZXHrzeNivZ9nWCpTvF4pgdgauCpbqpsK4dtud3A0ZJIQeZv dnVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=eIq/ejUqSv6Gp/cp6sgKbyYOsHU1PhVukkc0XRFRpO0=; b=WvOX8joWLkV5z9+VZEoV+Pw3YsAEsjTwD8krDx2nu436B1y6wxK37JapfLCmKoMSWL vD42sFtcS/zujFLVJfGMHWPh/Y3K3bSwcZuJFTMFJBi1wtUqcZVwag+Kr6A+6duUXg2/ e1jbruJBPc0hS852B06F60uOW2bpgK89dmJXCCitCRqE0LuPsuWDRpoHrkktcX4K7+N5 lgyiq/V7Hd17XKVF6Yx51oMPZZTuaBjGvEidHQU3Xli0H68CcnFEsaKod/8xegP8a6ql 0Dk0INnUFEu7lK3MMHZtfp1LRPLM5ic5mysa8dUVMLhp07Orh9WBBRlzzeMjXv+sNzws tMNg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=qhbqHn4v; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gr12si2093737ejb.88.2020.11.11.13.16.18; Wed, 11 Nov 2020 13:16:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=qhbqHn4v; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726108AbgKKVOd (ORCPT + 99 others); Wed, 11 Nov 2020 16:14:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725949AbgKKVOd (ORCPT ); Wed, 11 Nov 2020 16:14:33 -0500 Received: from mail-io1-xd41.google.com (mail-io1-xd41.google.com [IPv6:2607:f8b0:4864:20::d41]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7FB9AC0613D1 for ; Wed, 11 Nov 2020 13:14:31 -0800 (PST) Received: by mail-io1-xd41.google.com with SMTP id i18so2297429ioa.3 for ; Wed, 11 Nov 2020 13:14:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eIq/ejUqSv6Gp/cp6sgKbyYOsHU1PhVukkc0XRFRpO0=; b=qhbqHn4vo5c/FvJ5rWXTuDYVhy/Z2VfLGOJqh28mhbWVHM6sKvbBy91ZWeEyCiMIIM W3RSUJR4glstgvwvRSs6B8ZCM4/rSWAk/NZEidJDB03WFDRGnXvj8Tid69NHoIWcPqkH 7VHkavOACv8hJGHZrqOaGj7ajnA4pE04tQBjM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eIq/ejUqSv6Gp/cp6sgKbyYOsHU1PhVukkc0XRFRpO0=; b=QMEeK2vV64x0eA3AUBqQLIlMSWhJ2ybAiYxz1diV/Bc3KizWGaAUW/N1JaUL0jToXn pkF51XsISxiUQpBZEHsURoGAdv1QrhgDibQA4RUDtHmGaaC155VWKO6myzykXkarpcpU aLiykIMjVcIH4/wEg1ePMhn54hC2fbzz/OF7UP/cbNlM+L6lS+3xbFry+fJHguuJsVAr ZV+aRXxjkdfdimVH+Ouoa9Nip63zod85iuuVwWoaV0WgFgPVLqd2bXisWtIju5xSeD6K GVgrLEAgS53C3mmJH1b1xCmCf7q2U/Z2VergQzzROibjCxDjgq+pLM1vDLwOQprbmYcm +eMw== X-Gm-Message-State: AOAM531FoO43Cdh9Mx2F7KrgcVdbHxWWjxcyNOpvnUnmRE5DR5LjPCMT rWDkxHi4jO77xEYQ290Fx9GaFaih7Z+EfkekCc2kRVwoD+M= X-Received: by 2002:a6b:5805:: with SMTP id m5mr19817595iob.1.1605129270773; Wed, 11 Nov 2020 13:14:30 -0800 (PST) MIME-Version: 1.0 References: <20201111211011.1381848-1-joel@joelfernandes.org> <20201111211011.1381848-2-joel@joelfernandes.org> In-Reply-To: <20201111211011.1381848-2-joel@joelfernandes.org> From: Joel Fernandes Date: Wed, 11 Nov 2020 16:14:20 -0500 Message-ID: Subject: Re: [RFC 1/2] x86/bugs: Disable coresched on hardware that does not need it To: Nishanth Aravamudan , Julien Desfossez , Peter Zijlstra , Tim Chen , Vineeth Pillai , Aaron Lu , Aubrey Li , Thomas Glexiner , LKML Cc: Ingo Molnar , Linus Torvalds , Frederic Weisbecker , Kees Cook , Greg Kerr , Phil Auld , Valentin Schneider , Mel Gorman , Pawan Gupta , Paolo Bonzini , vineeth@bitbyteword.org, Chen Yu , Christian Brauner , Agata Gruza , Antonio Gomez Iglesias , graf@amazon.com, konrad.wilk@oracle.com, Dario Faggioli , Paul Turner , Steven Rostedt , Patrick Bellasi , =?UTF-8?B?YmVuYmppYW5nKOiSi+W9qik=?= , Alexandre Chartre , James.Bottomley@hansenpartnership.com, OWeisse@umich.edu, Dhaval Giani , Junaid Shahid , Jesse Barnes , "Hyser,Chris" , Ben Segall , Josh Don , Hao Luo , "Anand K. Mistry" , Borislav Petkov , Daniel Bristot de Oliveira , Dietmar Eggemann , "H. Peter Anvin" , Ingo Molnar , Juri Lelli , Mel Gorman , Mike Rapoport , Tom Lendacky , Tony Luck , Vincent Guittot , "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Sorry, forgot to CC +Tom Lendacky . Please take a look Tom, thanks. On Wed, Nov 11, 2020 at 4:10 PM Joel Fernandes (Google) wrote: > > Some hardware such as certain AMD variants don't have cross-HT MDS/L1TF > issues. Detect this and don't enable core scheduling as it can > needlessly slow the device done. > > Signed-off-by: Joel Fernandes (Google) > --- > arch/x86/kernel/cpu/bugs.c | 8 ++++++++ > kernel/sched/core.c | 7 +++++++ > kernel/sched/sched.h | 5 +++++ > 3 files changed, 20 insertions(+) > > diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c > index dece79e4d1e9..0e6e61e49b23 100644 > --- a/arch/x86/kernel/cpu/bugs.c > +++ b/arch/x86/kernel/cpu/bugs.c > @@ -152,6 +152,14 @@ void __init check_bugs(void) > #endif > } > > +/* > + * Do not need core scheduling if CPU does not have MDS/L1TF vulnerability. > + */ > +int arch_allow_core_sched(void) > +{ > + return boot_cpu_has_bug(X86_BUG_MDS) || boot_cpu_has_bug(X86_BUG_L1TF); > +} > + > void > x86_virt_spec_ctrl(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl, bool setguest) > { > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 64c559192634..c6158b4959fe 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -319,6 +319,13 @@ static void __sched_core_enable(void) > for_each_online_cpu(cpu) > BUG_ON(!sched_core_empty(cpu_rq(cpu))); > > + /* > + * Some architectures may not want coresched. (ex, AMD does not have > + * MDS/L1TF issues so it wants SMT completely on). > + */ > + if (!arch_allow_core_sched()) > + return; > + > static_branch_enable(&__sched_core_enabled); > stop_machine(__sched_core_stopper, (void *)true, NULL); > > diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h > index 3cf08c77b678..a1b39764a6ed 100644 > --- a/kernel/sched/sched.h > +++ b/kernel/sched/sched.h > @@ -1203,6 +1203,11 @@ int cpu_core_tag_color_write_u64(struct cgroup_subsys_state *css, > > bool cfs_prio_less(struct task_struct *a, struct task_struct *b, bool fi); > > +int __weak arch_allow_core_sched(void) > +{ > + return true; > +} > + > #else /* !CONFIG_SCHED_CORE */ > > static inline bool sched_core_enqueued(struct task_struct *task) { return false; } > -- > 2.29.2.222.g5d2a92d10f8-goog >