All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeremy Fitzhardinge <jeremy@goop.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: "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>,
	Jason Baron <jbaron@redhat.com>,
	the arch/x86 maintainers <x86@kernel.org>,
	Xen Devel <xen-devel@lists.xensource.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Subject: [PATCH RFC 0/8] jump-label: allow early jump_label_enable()
Date: Thu, 29 Sep 2011 16:26:30 -0700	[thread overview]
Message-ID: <cover.1317338254.git.jeremy.fitzhardinge@citrix.com> (raw)

From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

Hi all,

While trying to use the jump-label stuff for my PV ticketlock changes,
I had some problems using jump labels early in the kernel's lifetime
(pre-SMP).

The basic problem is that even if I enable a jump_label_key, the
jump_label_init() initializer ends up nopping out all the code sites.

This series enables early use of jump labels by making
jump_label_init() respect already-enabled keys.

To do this, I've dropped arch_jump_label_poke_text_early() and
replaced it with arch_jump_label_transform_early(), which is the same
as the non-_early variant except that it expects to be operating in a
pre-SMP environment.

I've tested this on x86, but all the other architecture changes are
completely untested (not even breathed on by a compiler).

One big question which arises is whether the _early() function is
necessary at all.  All the stop_machine/mutex/etc stuff that
arch_jump_label_transform() ends up doing is redundant pre-SMP, but it
shouldn't hurt.  Maybe we can just drop the _early function?  It works
on x86, at least, because jump_label_enable() works, which uses the full
form.  And dropping it would reduce this to a very much smaller series.

Thanks,
	J

Jeremy Fitzhardinge (8):
  jump_label: use proper atomic_t initializer
  jump_label: if a key has already been initialized, don't nop it out
  x86/jump_label: add arch_jump_label_transform_early()
  sparc/jump_label: add arch_jump_label_transform_early()
  mips/jump_label: add arch_jump_label_transform_early()
  powerpc/jump_label: add arch_jump_label_transform_early()
  s390/jump-label: add arch_jump_label_transform_early()
  jump_label: drop default arch_jump_label_transform_early

 arch/mips/kernel/jump_label.c    |   21 +++++++++++++---
 arch/powerpc/kernel/jump_label.c |    6 ++++
 arch/s390/kernel/jump_label.c    |   49 +++++++++++++++++++++++--------------
 arch/sparc/kernel/jump_label.c   |   24 +++++++++++-------
 arch/x86/kernel/jump_label.c     |   20 +++++++++++----
 include/linux/jump_label.h       |    7 +++--
 kernel/jump_label.c              |   20 ++++++---------
 7 files changed, 94 insertions(+), 53 deletions(-)

-- 
1.7.6.2


             reply	other threads:[~2011-09-29 23:26 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-29 23:26 Jeremy Fitzhardinge [this message]
2011-09-29 23:26 ` [PATCH RFC 1/8] jump_label: use proper atomic_t initializer Jeremy Fitzhardinge
2011-09-29 23:26 ` [PATCH RFC 2/8] jump_label: if a key has already been initialized, don't nop it out Jeremy Fitzhardinge
2011-09-29 23:26 ` [PATCH RFC 3/8] x86/jump_label: add arch_jump_label_transform_early() Jeremy Fitzhardinge
2011-09-29 23:26 ` [PATCH RFC 4/8] sparc/jump_label: " Jeremy Fitzhardinge
2011-09-29 23:31   ` David Miller
2011-09-29 23:26 ` [PATCH RFC 5/8] mips/jump_label: " Jeremy Fitzhardinge
2011-09-29 23:26 ` [PATCH RFC 6/8] powerpc/jump_label: " Jeremy Fitzhardinge
2011-09-29 23:26 ` [PATCH RFC 7/8] s390/jump-label: " Jeremy Fitzhardinge
2011-09-30 14:48   ` Jan Glauber
2011-09-30 16:03     ` Jeremy Fitzhardinge
2011-09-30 16:03       ` Jeremy Fitzhardinge
2011-10-01 11:22       ` Jan Glauber
2011-09-29 23:26 ` [PATCH RFC 8/8] jump_label: drop default arch_jump_label_transform_early Jeremy Fitzhardinge
2011-09-30  0:52 ` [PATCH RFC 0/8] jump-label: allow early jump_label_enable() Steven Rostedt
2011-09-30  4:40   ` Jeremy Fitzhardinge
2011-09-30  4:40     ` Jeremy Fitzhardinge
2011-09-30 15:28     ` Steven Rostedt
2011-09-30 16:09       ` 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=cover.1317338254.git.jeremy.fitzhardinge@citrix.com \
    --to=jeremy@goop.org \
    --cc=davem@davemloft.net \
    --cc=david.daney@cavium.com \
    --cc=jang@linux.vnet.ibm.com \
    --cc=jbaron@redhat.com \
    --cc=jeremy.fitzhardinge@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@ellerman.id.au \
    --cc=rostedt@goodmis.org \
    --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 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.