public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Jason Baron <jbaron@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	"David S. Miller" <davem@davemloft.net>,
	David Daney <david.daney@cavium.com>,
	Michael Ellerman <michael@ellerman.id.au>,
	Jan Glauber <jang@linux.vnet.ibm.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Xen Devel <xen-devel@lists.xensource.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
	Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
	rth@redhat.com
Subject: Re: [PATCH RFC V4 06/10] jump_label: add arch_jump_label_transform_static() to optimise non-live code updates
Date: Thu, 13 Oct 2011 18:32:05 +0200	[thread overview]
Message-ID: <1318523526.27731.18.camel@twins> (raw)
In-Reply-To: <20111013155553.GD2455@redhat.com>

On Thu, 2011-10-13 at 11:55 -0400, Jason Baron wrote:
> > I actually need them to be either way.. no preference between on or off
> > just a means of very _very_ infrequent runtime change in behaviour.
> > 
> 
> ok, this is a new use case, all the current users are biased with gcc
> out-of-lining the infrequent case.

Right, 

> > If we can push jump_label init to before sched_init() all I need is a
> > static_branch() without the unlikely() in to avoid GCC out-of-lining the
> > branch.
> > 
> 
> hmmm....the current code (I believe) is biased  b/c gcc sees the
> branch as always false, see: arch_static_branch() - its not b/c we have
> an unlikely there. Without open coding the label, like we had before
> everybody hated, I'll have to play around and see what will create an
> unbiased branch...perhaps, somebody has an idea? 

Fix gcc and stick an unlikely in static_branch() ? :-)

> > > and by patching them early
> > > like this, at least for x86, we can avoid the stop machine calls. So its
> > > the combination of most are expected to be off and no sense to call extra
> > > stop machines that lead the code to its present state.
> > 
> > But we could use arch_jump_label_transform_static because its before we
> > actually execute any module text (sans the arg crap) which is
> > stomp-machine free, removing that obstacle.
> > 
> > Or am I confused more?
> > 
> 
> The MODULE_COMING callback happens *after* the call to flush_module_icache(mod),
> so I'm not sure that is safe... 

We can issue another one of those?

  reply	other threads:[~2011-10-13 16:32 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-13  0:08 [PATCH RFC V4 00/10] jump-label: allow early jump_label_enable() Jeremy Fitzhardinge
     [not found] ` <cover.1318464413.git.jeremy.fitzhardinge@citrix.com>
2011-10-13  0:08   ` [PATCH RFC V4 01/10] jump_label: use proper atomic_t initializer Jeremy Fitzhardinge
2011-10-13  0:08   ` [PATCH RFC V4 02/10] stop_machine: make stop_machine safe and efficient to call early Jeremy Fitzhardinge
2011-10-13  0:08   ` [PATCH RFC V4 03/10] jump_label: if a key has already been initialized, don't nop it out Jeremy Fitzhardinge
2011-10-13  0:08   ` [PATCH RFC V4 04/10] x86/jump_label: drop arch_jump_label_text_poke_early() Jeremy Fitzhardinge
2011-10-13 10:15     ` Peter Zijlstra
2011-10-13  0:08   ` [PATCH RFC V4 05/10] sparc/jump_label: " Jeremy Fitzhardinge
2011-10-13  0:08   ` [PATCH RFC V4 06/10] jump_label: add arch_jump_label_transform_static() to optimise non-live code updates Jeremy Fitzhardinge
2011-10-13 10:32     ` Peter Zijlstra
2011-10-13 13:54       ` Jason Baron
2011-10-13 15:29         ` Peter Zijlstra
2011-10-13 15:55           ` Jason Baron
2011-10-13 16:32             ` Peter Zijlstra [this message]
2011-10-13  0:08   ` [PATCH RFC V4 07/10] s390/jump-label: add arch_jump_label_transform_static() Jeremy Fitzhardinge
2011-10-13  0:08   ` [PATCH RFC V4 08/10] x86/jump_label: " Jeremy Fitzhardinge
2011-10-13 10:36     ` Peter Zijlstra
2011-10-13  0:08   ` [PATCH RFC V4 09/10] x86/jump_label: use GENERIC_NOP5_ATOMIC instead of jmp5 +0 Jeremy Fitzhardinge
2011-10-13 15:40     ` H. Peter Anvin
2011-10-13 16:50       ` Jeremy Fitzhardinge
2011-10-14 21:52         ` H. Peter Anvin
2011-10-13 16:57       ` Jeremy Fitzhardinge
2011-10-13 18:37         ` Steven Rostedt
2011-10-14 21:53           ` H. Peter Anvin
2011-10-15  0:22             ` Steven Rostedt
2011-10-14 21:53         ` H. Peter Anvin
2011-10-13  0:08   ` [PATCH RFC V4 10/10] jump-label: initialize jump-label subsystem much earlier Jeremy Fitzhardinge
2011-10-13 10:43     ` Peter Zijlstra
2011-10-13 13:59       ` Jason Baron
2011-10-13 16:56       ` Jeremy Fitzhardinge
2011-10-14 21:51       ` Jeremy Fitzhardinge
2011-10-15  8:42         ` Peter Zijlstra
2011-10-16  1:52           ` Jeremy Fitzhardinge
2011-10-18 11:02             ` Peter Zijlstra
2011-10-25 17:56               ` Jeremy Fitzhardinge

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=1318523526.27731.18.camel@twins \
    --to=peterz@infradead.org \
    --cc=davem@davemloft.net \
    --cc=david.daney@cavium.com \
    --cc=hpa@zytor.com \
    --cc=jang@linux.vnet.ibm.com \
    --cc=jbaron@redhat.com \
    --cc=jeremy.fitzhardinge@citrix.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@ellerman.id.au \
    --cc=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --cc=rth@redhat.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xensource.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox