Live-Patching Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] x86/stacktrace: update kconfig help text for reliable unwinders
@ 2019-11-06 22:43 Joe Lawrence
  2019-11-06 23:05 ` Josh Poimboeuf
  0 siblings, 1 reply; 4+ messages in thread
From: Joe Lawrence @ 2019-11-06 22:43 UTC (permalink / raw)
  To: linux-kernel, live-patching; +Cc: Josh Poimboeuf

commit 6415b38bae26 ("x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE
for the ORC unwinder") marked the ORC unwinder as a "reliable" unwinder.
Update the help text to reflect that change: the frame pointer unwinder
is no longer the only one that provides HAVE_RELIABLE_STACKTRACE.

Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
---
 arch/x86/Kconfig.debug | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index bf9cd83de777..69cdf0558c13 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -316,10 +316,6 @@ config UNWINDER_FRAME_POINTER
 	  unwinder, but the kernel text size will grow by ~3% and the kernel's
 	  overall performance will degrade by roughly 5-10%.
 
-	  This option is recommended if you want to use the livepatch
-	  consistency model, as this is currently the only way to get a
-	  reliable stack trace (CONFIG_HAVE_RELIABLE_STACKTRACE).
-
 config UNWINDER_GUESS
 	bool "Guess unwinder"
 	depends on EXPERT
@@ -333,6 +329,10 @@ config UNWINDER_GUESS
 	  useful in many cases.  Unlike the other unwinders, it has no runtime
 	  overhead.
 
+	  This option is not recommended if you want to use the livepatch
+	  consistency model, as this unwinder cannot guarantee reliable stack
+	  traces.
+
 endchoice
 
 config FRAME_POINTER
-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/stacktrace: update kconfig help text for reliable unwinders
  2019-11-06 22:43 [PATCH] x86/stacktrace: update kconfig help text for reliable unwinders Joe Lawrence
@ 2019-11-06 23:05 ` Josh Poimboeuf
  2019-11-06 23:16   ` Joe Lawrence
  0 siblings, 1 reply; 4+ messages in thread
From: Josh Poimboeuf @ 2019-11-06 23:05 UTC (permalink / raw)
  To: Joe Lawrence; +Cc: linux-kernel, live-patching

On Wed, Nov 06, 2019 at 05:43:44PM -0500, Joe Lawrence wrote:
> commit 6415b38bae26 ("x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE
> for the ORC unwinder") marked the ORC unwinder as a "reliable" unwinder.
> Update the help text to reflect that change: the frame pointer unwinder
> is no longer the only one that provides HAVE_RELIABLE_STACKTRACE.
> 
> Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
> ---
>  arch/x86/Kconfig.debug | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
> index bf9cd83de777..69cdf0558c13 100644
> --- a/arch/x86/Kconfig.debug
> +++ b/arch/x86/Kconfig.debug
> @@ -316,10 +316,6 @@ config UNWINDER_FRAME_POINTER
>  	  unwinder, but the kernel text size will grow by ~3% and the kernel's
>  	  overall performance will degrade by roughly 5-10%.
>  
> -	  This option is recommended if you want to use the livepatch
> -	  consistency model, as this is currently the only way to get a
> -	  reliable stack trace (CONFIG_HAVE_RELIABLE_STACKTRACE).
> -
>  config UNWINDER_GUESS
>  	bool "Guess unwinder"
>  	depends on EXPERT
> @@ -333,6 +329,10 @@ config UNWINDER_GUESS
>  	  useful in many cases.  Unlike the other unwinders, it has no runtime
>  	  overhead.
>  
> +	  This option is not recommended if you want to use the livepatch
> +	  consistency model, as this unwinder cannot guarantee reliable stack
> +	  traces.
> +

I'm not sure whether this last hunk is helpful.  At the very least the
wording of "not recommended" might be confusing because it's not even
possible to combine UNWINDER_GUESS+HAVE_RELIABLE_STACKTRACE.

arch/x86/Kconfig:       select HAVE_RELIABLE_STACKTRACE         if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION

-- 
Josh


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/stacktrace: update kconfig help text for reliable unwinders
  2019-11-06 23:05 ` Josh Poimboeuf
@ 2019-11-06 23:16   ` Joe Lawrence
  2019-11-06 23:54     ` Josh Poimboeuf
  0 siblings, 1 reply; 4+ messages in thread
From: Joe Lawrence @ 2019-11-06 23:16 UTC (permalink / raw)
  To: Josh Poimboeuf; +Cc: linux-kernel, live-patching

On 11/6/19 6:05 PM, Josh Poimboeuf wrote:
> On Wed, Nov 06, 2019 at 05:43:44PM -0500, Joe Lawrence wrote:
>> commit 6415b38bae26 ("x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE
>> for the ORC unwinder") marked the ORC unwinder as a "reliable" unwinder.
>> Update the help text to reflect that change: the frame pointer unwinder
>> is no longer the only one that provides HAVE_RELIABLE_STACKTRACE.
>>
>> Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
>> ---
>>   arch/x86/Kconfig.debug | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
>> index bf9cd83de777..69cdf0558c13 100644
>> --- a/arch/x86/Kconfig.debug
>> +++ b/arch/x86/Kconfig.debug
>> @@ -316,10 +316,6 @@ config UNWINDER_FRAME_POINTER
>>   	  unwinder, but the kernel text size will grow by ~3% and the kernel's
>>   	  overall performance will degrade by roughly 5-10%.
>>   
>> -	  This option is recommended if you want to use the livepatch
>> -	  consistency model, as this is currently the only way to get a
>> -	  reliable stack trace (CONFIG_HAVE_RELIABLE_STACKTRACE).
>> -
>>   config UNWINDER_GUESS
>>   	bool "Guess unwinder"
>>   	depends on EXPERT
>> @@ -333,6 +329,10 @@ config UNWINDER_GUESS
>>   	  useful in many cases.  Unlike the other unwinders, it has no runtime
>>   	  overhead.
>>   
>> +	  This option is not recommended if you want to use the livepatch
>> +	  consistency model, as this unwinder cannot guarantee reliable stack
>> +	  traces.
>> +
> 
> I'm not sure whether this last hunk is helpful.  At the very least the
> wording of "not recommended" might be confusing because it's not even
> possible to combine UNWINDER_GUESS+HAVE_RELIABLE_STACKTRACE.
> 
> arch/x86/Kconfig:       select HAVE_RELIABLE_STACKTRACE         if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
> 

Ah good point.  The alternative would be to copy the recommended note to 
both UNWINDER_FRAME_POINTER and UNWINDER_ORC, or at least remove the 
"only" phrasing.  I dunno, nobody has noticed it yet, so maybe the first 
hunk would be good enough.

-- Joe


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] x86/stacktrace: update kconfig help text for reliable unwinders
  2019-11-06 23:16   ` Joe Lawrence
@ 2019-11-06 23:54     ` Josh Poimboeuf
  0 siblings, 0 replies; 4+ messages in thread
From: Josh Poimboeuf @ 2019-11-06 23:54 UTC (permalink / raw)
  To: Joe Lawrence; +Cc: linux-kernel, live-patching

On Wed, Nov 06, 2019 at 06:16:28PM -0500, Joe Lawrence wrote:
> On 11/6/19 6:05 PM, Josh Poimboeuf wrote:
> > On Wed, Nov 06, 2019 at 05:43:44PM -0500, Joe Lawrence wrote:
> > > commit 6415b38bae26 ("x86/stacktrace: Enable HAVE_RELIABLE_STACKTRACE
> > > for the ORC unwinder") marked the ORC unwinder as a "reliable" unwinder.
> > > Update the help text to reflect that change: the frame pointer unwinder
> > > is no longer the only one that provides HAVE_RELIABLE_STACKTRACE.
> > > 
> > > Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
> > > ---
> > >   arch/x86/Kconfig.debug | 8 ++++----
> > >   1 file changed, 4 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
> > > index bf9cd83de777..69cdf0558c13 100644
> > > --- a/arch/x86/Kconfig.debug
> > > +++ b/arch/x86/Kconfig.debug
> > > @@ -316,10 +316,6 @@ config UNWINDER_FRAME_POINTER
> > >   	  unwinder, but the kernel text size will grow by ~3% and the kernel's
> > >   	  overall performance will degrade by roughly 5-10%.
> > > -	  This option is recommended if you want to use the livepatch
> > > -	  consistency model, as this is currently the only way to get a
> > > -	  reliable stack trace (CONFIG_HAVE_RELIABLE_STACKTRACE).
> > > -
> > >   config UNWINDER_GUESS
> > >   	bool "Guess unwinder"
> > >   	depends on EXPERT
> > > @@ -333,6 +329,10 @@ config UNWINDER_GUESS
> > >   	  useful in many cases.  Unlike the other unwinders, it has no runtime
> > >   	  overhead.
> > > +	  This option is not recommended if you want to use the livepatch
> > > +	  consistency model, as this unwinder cannot guarantee reliable stack
> > > +	  traces.
> > > +
> > 
> > I'm not sure whether this last hunk is helpful.  At the very least the
> > wording of "not recommended" might be confusing because it's not even
> > possible to combine UNWINDER_GUESS+HAVE_RELIABLE_STACKTRACE.
> > 
> > arch/x86/Kconfig:       select HAVE_RELIABLE_STACKTRACE         if X86_64 && (UNWINDER_FRAME_POINTER || UNWINDER_ORC) && STACK_VALIDATION
> > 
> 
> Ah good point.  The alternative would be to copy the recommended note to
> both UNWINDER_FRAME_POINTER and UNWINDER_ORC, or at least remove the "only"
> phrasing.  I dunno, nobody has noticed it yet, so maybe the first hunk would
> be good enough.

The guess unwinder is listed as an expert option, so the user would have
to enable CONFIG_EXPERT to get to it.  Then if they do enable it and try
to load a livepatch, they'll get a runtime warning along with a patch
which never transitions.

And like you said, nobody has complained, so I'd say just dropping the
2nd hunk would be fine.

-- 
Josh


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, back to index

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-06 22:43 [PATCH] x86/stacktrace: update kconfig help text for reliable unwinders Joe Lawrence
2019-11-06 23:05 ` Josh Poimboeuf
2019-11-06 23:16   ` Joe Lawrence
2019-11-06 23:54     ` Josh Poimboeuf

Live-Patching Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/live-patching/0 live-patching/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 live-patching live-patching/ https://lore.kernel.org/live-patching \
		live-patching@vger.kernel.org
	public-inbox-index live-patching

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.live-patching


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git