All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ira Weiny <ira.weiny@intel.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, Andrew Morton <akpm@linux-foundation.org>,
	Fenghua Yu <fenghua.yu@intel.com>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-nvdimm@lists.01.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH RFC V3 7/9] x86/entry: Preserve PKRS MSR across exceptions
Date: Wed, 14 Oct 2020 20:46:45 -0700	[thread overview]
Message-ID: <20201015034645.GQ2046448@iweiny-DESK2.sc.intel.com> (raw)
In-Reply-To: <6006a4c8-32bd-04ca-95cc-b2736a5cef72@intel.com>

On Tue, Oct 13, 2020 at 11:52:32AM -0700, Dave Hansen wrote:
> On 10/9/20 12:42 PM, ira.weiny@intel.com wrote:
> > @@ -341,6 +341,9 @@ noinstr void irqentry_enter(struct pt_regs *regs, irqentry_state_t *state)
> >  	/* Use the combo lockdep/tracing function */
> >  	trace_hardirqs_off();
> >  	instrumentation_end();
> > +
> > +done:
> > +	irq_save_pkrs(state);
> >  }
> 
> One nit: This saves *and* sets PKRS.  It's not obvious from the call
> here that PKRS is altered at this site.  Seems like there could be a
> better name.
> 
> Even if we did:
> 
> 	irq_save_set_pkrs(state, INIT_VAL);
> 
> It would probably compile down to the same thing, but be *really*
> obvious what's going on.

I suppose that is true.  But I think it is odd having a parameter which is the
same for every call site.

But I'm not going to quibble over something like this.

Changed,
Ira

> 
> >  void irqentry_exit_cond_resched(void)
> > @@ -362,7 +365,12 @@ noinstr void irqentry_exit(struct pt_regs *regs, irqentry_state_t *state)
> >  	/* Check whether this returns to user mode */
> >  	if (user_mode(regs)) {
> >  		irqentry_exit_to_user_mode(regs);
> > -	} else if (!regs_irqs_disabled(regs)) {
> > +		return;
> > +	}
> > +
> > +	irq_restore_pkrs(state);
> > +
> > +	if (!regs_irqs_disabled(regs)) {
> >  		/*
> >  		 * If RCU was not watching on entry this needs to be done
> >  		 * carefully and needs the same ordering of lockdep/tracing
> > 
> 
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org

WARNING: multiple messages have this Message-ID (diff)
From: Ira Weiny <ira.weiny@intel.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, Dan Williams <dan.j.williams@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Fenghua Yu <fenghua.yu@intel.com>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-nvdimm@lists.01.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH RFC V3 7/9] x86/entry: Preserve PKRS MSR across exceptions
Date: Wed, 14 Oct 2020 20:46:45 -0700	[thread overview]
Message-ID: <20201015034645.GQ2046448@iweiny-DESK2.sc.intel.com> (raw)
In-Reply-To: <6006a4c8-32bd-04ca-95cc-b2736a5cef72@intel.com>

On Tue, Oct 13, 2020 at 11:52:32AM -0700, Dave Hansen wrote:
> On 10/9/20 12:42 PM, ira.weiny@intel.com wrote:
> > @@ -341,6 +341,9 @@ noinstr void irqentry_enter(struct pt_regs *regs, irqentry_state_t *state)
> >  	/* Use the combo lockdep/tracing function */
> >  	trace_hardirqs_off();
> >  	instrumentation_end();
> > +
> > +done:
> > +	irq_save_pkrs(state);
> >  }
> 
> One nit: This saves *and* sets PKRS.  It's not obvious from the call
> here that PKRS is altered at this site.  Seems like there could be a
> better name.
> 
> Even if we did:
> 
> 	irq_save_set_pkrs(state, INIT_VAL);
> 
> It would probably compile down to the same thing, but be *really*
> obvious what's going on.

I suppose that is true.  But I think it is odd having a parameter which is the
same for every call site.

But I'm not going to quibble over something like this.

Changed,
Ira

> 
> >  void irqentry_exit_cond_resched(void)
> > @@ -362,7 +365,12 @@ noinstr void irqentry_exit(struct pt_regs *regs, irqentry_state_t *state)
> >  	/* Check whether this returns to user mode */
> >  	if (user_mode(regs)) {
> >  		irqentry_exit_to_user_mode(regs);
> > -	} else if (!regs_irqs_disabled(regs)) {
> > +		return;
> > +	}
> > +
> > +	irq_restore_pkrs(state);
> > +
> > +	if (!regs_irqs_disabled(regs)) {
> >  		/*
> >  		 * If RCU was not watching on entry this needs to be done
> >  		 * carefully and needs the same ordering of lockdep/tracing
> > 
> 

  reply	other threads:[~2020-10-15  3:46 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-09 19:42 [PATCH RFC V3 0/9] PKS: Add Protection Keys Supervisor (PKS) support RFC v3 ira.weiny
2020-10-09 19:42 ` ira.weiny
2020-10-09 19:42 ` [PATCH RFC V3 1/9] x86/pkeys: Create pkeys_common.h ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 17:46   ` Dave Hansen
2020-10-13 17:46     ` Dave Hansen
2020-10-13 19:44     ` Ira Weiny
2020-10-13 19:44       ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 2/9] x86/fpu: Refactor arch_set_user_pkey_access() for PKS support ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 17:50   ` Dave Hansen
2020-10-13 17:50     ` Dave Hansen
2020-10-13 23:56     ` Ira Weiny
2020-10-13 23:56       ` Ira Weiny
2020-10-16 10:57   ` Peter Zijlstra
2020-10-16 10:57     ` Peter Zijlstra
2020-10-17  3:32     ` Ira Weiny
2020-10-17  3:32       ` Ira Weiny
2020-10-19  9:35       ` Peter Zijlstra
2020-10-19  9:35         ` Peter Zijlstra
2020-10-09 19:42 ` [PATCH RFC V3 3/9] x86/pks: Enable Protection Keys Supervisor (PKS) ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 18:23   ` Dave Hansen
2020-10-13 18:23     ` Dave Hansen
2020-10-14  2:08     ` Ira Weiny
2020-10-14  2:08       ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 4/9] x86/pks: Preserve the PKRS MSR on context switch ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 18:31   ` Dave Hansen
2020-10-13 18:31     ` Dave Hansen
2020-10-14 22:36     ` Ira Weiny
2020-10-14 22:36       ` Ira Weiny
2020-10-16 11:12     ` Peter Zijlstra
2020-10-16 11:12       ` Peter Zijlstra
2020-10-17  5:14       ` Ira Weiny
2020-10-17  5:14         ` Ira Weiny
2020-10-19  9:37         ` Peter Zijlstra
2020-10-19  9:37           ` Peter Zijlstra
2020-10-19 18:48           ` Ira Weiny
2020-10-19 18:48             ` Ira Weiny
2020-10-16 11:06   ` Peter Zijlstra
2020-10-16 11:06     ` Peter Zijlstra
2020-10-17  5:37     ` Ira Weiny
2020-10-17  5:37       ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 5/9] x86/pks: Add PKS kernel API ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 18:43   ` Dave Hansen
2020-10-13 18:43     ` Dave Hansen
2020-10-15  1:08     ` Ira Weiny
2020-10-15  1:08       ` Ira Weiny
2020-10-16 11:07   ` Peter Zijlstra
2020-10-16 11:07     ` Peter Zijlstra
2020-10-17  5:42     ` Ira Weiny
2020-10-17  5:42       ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 6/9] x86/entry: Pass irqentry_state_t by reference ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-16 11:45   ` Peter Zijlstra
2020-10-16 11:45     ` Peter Zijlstra
2020-10-16 12:55     ` Thomas Gleixner
2020-10-16 12:55       ` Thomas Gleixner
2020-10-19  5:37       ` Ira Weiny
2020-10-19  5:37         ` Ira Weiny
2020-10-19  9:32         ` Thomas Gleixner
2020-10-19  9:32           ` Thomas Gleixner
2020-10-19 20:26           ` Ira Weiny
2020-10-19 20:26             ` Ira Weiny
2020-10-19 21:12             ` Thomas Gleixner
2020-10-19 21:12               ` Thomas Gleixner
2020-10-20 14:10               ` Ira Weiny
2020-10-20 14:10                 ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 7/9] x86/entry: Preserve PKRS MSR across exceptions ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 18:52   ` Dave Hansen
2020-10-13 18:52     ` Dave Hansen
2020-10-15  3:46     ` Ira Weiny [this message]
2020-10-15  3:46       ` Ira Weiny
2020-10-15  4:06       ` Dave Hansen
2020-10-15  4:06         ` Dave Hansen
2020-10-15  4:18         ` Ira Weiny
2020-10-15  4:18           ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 8/9] x86/fault: Report the PKRS state on fault ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 18:56   ` Dave Hansen
2020-10-13 18:56     ` Dave Hansen
2020-10-15  4:13     ` Ira Weiny
2020-10-15  4:13       ` Ira Weiny
2020-10-09 19:42 ` [PATCH RFC V3 9/9] x86/pks: Add PKS test code ira.weiny
2020-10-09 19:42   ` ira.weiny
2020-10-13 19:02   ` Dave Hansen
2020-10-13 19:02     ` Dave Hansen
2020-10-15  4:46     ` Ira Weiny
2020-10-15  4:46       ` Ira Weiny
2020-10-09 20:18 ` [PATCH RFC V3 0/9] PKS: Add Protection Keys Supervisor (PKS) support RFC v3 Ira Weiny
2020-10-09 20:18   ` Ira Weiny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201015034645.GQ2046448@iweiny-DESK2.sc.intel.com \
    --to=ira.weiny@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=fenghua.yu@intel.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-nvdimm@lists.01.org \
    --cc=luto@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.