mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: linux-kernel@vger.kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Pavel Tatashin <pasha.tatashin@oracle.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Zhou Chengming <zhouchengming1@huawei.com>,
	Jiri Kosina <jkosina@suse.cz>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	Chris von Recklinghausen <crecklin@redhat.com>,
	Jason Baron <jbaron@akamai.com>, Scott Wood <swood@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Clark Williams <williams@redhat.com>,
	x86@kernel.org
Subject: Re: [PATCH V2 7/9] x86/alternative: Batch of patch operations
Date: Tue, 18 Dec 2018 12:31:34 -0500	[thread overview]
Message-ID: <20181218123134.2bdcc042@gandalf.local.home> (raw)
In-Reply-To: <327a30e43e27ed3a0300952126bf36fae6652b74.1545149539.git.bristot@redhat.com>

On Tue, 18 Dec 2018 17:46:36 +0100
Daniel Bristot de Oliveira <bristot@redhat.com> wrote:

> +void text_poke_bp_batch(struct text_to_poke *tp, unsigned int nr_entries)
> +{
> +	unsigned int i;
> +	unsigned char int3 = 0xcc;
> +	int patched_all_but_first = 0;
> +
> +	bp_int3_tpv = tp;
> +	bp_int3_tpv_nr = nr_entries;
> +	bp_patching_in_progress = true;
> +	/*
> +	 * Corresponding read barrier in int3 notifier for making sure the
> +	 * in_progress and handler are correctly ordered wrt. patching.
> +	 */
> +	smp_wmb();
> +
> +	for (i = 0; i < nr_entries; i++)
> +		text_poke_bp_set_handler(tp[i].addr, tp[i].handler, int3);
> +
> +	on_each_cpu(do_sync_core, NULL, 1);
> +
> +	for (i = 0; i < nr_entries; i++) {
> +		if (tp->len - sizeof(int3) > 0) {

Should this be:

		if (tp[i].len - sizeof(int3) > 0) {

?

-- Steve

> +			patch_all_but_first_byte(tp[i].addr, tp[i].opcode,
> +						 tp[i].len, int3);
> +			patched_all_but_first++;
> +		}
> +	}
> +
> +	if (patched_all_but_first) {
> +		/*
> +		 * According to Intel, this core syncing is very likely
> +		 * not necessary and we'd be safe even without it. But
> +		 * better safe than sorry (plus there's not only Intel).
> +		 */
> +		on_each_cpu(do_sync_core, NULL, 1);
> +	}
> +
> +	for (i = 0; i < nr_entries; i++)
> +		patch_first_byte(tp[i].addr, tp[i].opcode, int3);
> +
> +	on_each_cpu(do_sync_core, NULL, 1);
> +	/*
> +	 * sync_core() implies an smp_mb() and orders this store against
> +	 * the writing of the new instruction.
> +	 */
> +	bp_int3_tpv_nr = 0;
> +	bp_int3_tpv = NULL;
> +	bp_patching_in_progress = false;
> +}


  reply	other threads:[~2018-12-18 17:31 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-18 16:46 [PATCH V2 0/9] x86/jump_label: Bound IPIs sent when updating a static key Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 1/9] jump_label: Add for_each_label_entry helper Daniel Bristot de Oliveira
2018-12-18 21:19   ` Borislav Petkov
2018-12-19  7:38     ` Daniel Bristot de Oliveira
2018-12-19 10:37       ` Borislav Petkov
2018-12-18 16:46 ` [PATCH V2 2/9] jump_label: Add the jump_label_can_update_check() helper Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 3/9] x86/jump_label: Move checking code away from __jump_label_transform() Daniel Bristot de Oliveira
2018-12-19  8:43   ` Jiri Kosina
2018-12-19  8:49     ` Thomas Gleixner
2018-12-19 10:14       ` Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 4/9] x86/jump_label: Add __jump_label_set_jump_code() helper Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 5/9] x86/alternative: Split text_poke_bp() into tree steps Daniel Bristot de Oliveira
2018-12-18 17:25   ` Steven Rostedt
2018-12-19  8:44   ` Jiri Kosina
2018-12-18 16:46 ` [PATCH V2 6/9] jump_label: Sort entries of the same key by the code Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 7/9] x86/alternative: Batch of patch operations Daniel Bristot de Oliveira
2018-12-18 17:31   ` Steven Rostedt [this message]
2018-12-18 19:27     ` Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 8/9] x86/jump_label: Batch jump label updates Daniel Bristot de Oliveira
2018-12-18 16:46 ` [PATCH V2 9/9] jump_label: Batch up if arch supports it Daniel Bristot de Oliveira
2018-12-18 17:35   ` Steven Rostedt
2018-12-18 19:33     ` Daniel Bristot de Oliveira
2018-12-18 20:32       ` Steven Rostedt
2018-12-18 21:06         ` Daniel Bristot de Oliveira

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=20181218123134.2bdcc042@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=bp@alien8.de \
    --cc=bristot@redhat.com \
    --cc=crecklin@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hpa@zytor.com \
    --cc=jbaron@akamai.com \
    --cc=jkosina@suse.cz \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=pasha.tatashin@oracle.com \
    --cc=peterz@infradead.org \
    --cc=swood@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=williams@redhat.com \
    --cc=x86@kernel.org \
    --cc=zhouchengming1@huawei.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

all inboxes | Powered by JetHome®