Message ID | 1596550484-11029-1-git-send-email-gkohli@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | arm64: Skip apply SSBS call for non SSBS system | expand |
Hi, Please let us know, is below patch good to have or not for non ssbs systems. On 8/4/2020 7:44 PM, Gaurav Kohli wrote: > In a system where no cpu's implement SSBS, for > them no need to set pstate. This might help to save > few cpu cycles during context switch. > > Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org> > > diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c > index 6089638..79f80f1 100644 > --- a/arch/arm64/kernel/process.c > +++ b/arch/arm64/kernel/process.c > @@ -477,6 +477,13 @@ static void ssbs_thread_switch(struct task_struct *next) > struct pt_regs *regs = task_pt_regs(next); > > /* > + * For Targets which don't have SSBS support, they > + * can return from here. > + */ > + if (!IS_ENABLED(CONFIG_ARM64_SSBD)) > + return; > + > + /* > * Nothing to do for kernel threads, but 'regs' may be junk > * (e.g. idle task) so check the flags and bail early. > */ >
On Tue, Aug 04, 2020 at 07:44:42PM +0530, Gaurav Kohli wrote: > In a system where no cpu's implement SSBS, for > them no need to set pstate. This might help to save > few cpu cycles during context switch. > > Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org> > > diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c > index 6089638..79f80f1 100644 > --- a/arch/arm64/kernel/process.c > +++ b/arch/arm64/kernel/process.c > @@ -477,6 +477,13 @@ static void ssbs_thread_switch(struct task_struct *next) > struct pt_regs *regs = task_pt_regs(next); > > /* > + * For Targets which don't have SSBS support, they > + * can return from here. > + */ > + if (!IS_ENABLED(CONFIG_ARM64_SSBD)) > + return; Does this actually make a measurable difference? Will
On 8/12/2020 7:00 PM, Will Deacon wrote: > On Tue, Aug 04, 2020 at 07:44:42PM +0530, Gaurav Kohli wrote: >> In a system where no cpu's implement SSBS, for >> them no need to set pstate. This might help to save >> few cpu cycles during context switch. >> >> Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org> >> >> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c >> index 6089638..79f80f1 100644 >> --- a/arch/arm64/kernel/process.c >> +++ b/arch/arm64/kernel/process.c >> @@ -477,6 +477,13 @@ static void ssbs_thread_switch(struct task_struct *next) >> struct pt_regs *regs = task_pt_regs(next); >> >> /* >> + * For Targets which don't have SSBS support, they >> + * can return from here. >> + */ >> + if (!IS_ENABLED(CONFIG_ARM64_SSBD)) >> + return; > > Does this actually make a measurable difference? > > Will > Hi Will, While doing code review between older kernel and latest kernel for context switch case, there i have found this and thought it is good to have for non-ssbs system to return early(as this might improve). Please let me know if you want to run some tests. Regards Gaurav
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 6089638..79f80f1 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -477,6 +477,13 @@ static void ssbs_thread_switch(struct task_struct *next) struct pt_regs *regs = task_pt_regs(next); /* + * For Targets which don't have SSBS support, they + * can return from here. + */ + if (!IS_ENABLED(CONFIG_ARM64_SSBD)) + return; + + /* * Nothing to do for kernel threads, but 'regs' may be junk * (e.g. idle task) so check the flags and bail early. */
In a system where no cpu's implement SSBS, for them no need to set pstate. This might help to save few cpu cycles during context switch. Signed-off-by: Gaurav Kohli <gkohli@codeaurora.org>