From: Andi Kleen <andi@firstfloor.org>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>, Ingo Molnar <mingo@elte.hu>,
x86@kernel.org, linux-kernel@vger.kernel.org,
Andi Kleen <ak@linux.intel.com>
Subject: Re: [PATCH] Add a text_poke syscall
Date: Fri, 22 Nov 2013 04:29:34 +0100 [thread overview]
Message-ID: <20131122032934.GK29695@two.firstfloor.org> (raw)
In-Reply-To: <20131121182623.GA21535@redhat.com>
Thanks for the code review.
> This looks a bit confusing, afaics we can avoid the duplications:
>
> // also handles bp_target_mm == NULL case
> if (user_mode_vm(regs) && current->mm != bp_target_mm)
> return 0;
I had that originally in my code, but I was worried there
were any threads with mm == NULL and user_mode_vm still true
(maybe some BIOS code or somesuch)
So I ended up with the longer, but safer, variant.
> > + err = 0;
> > + mutex_lock(&text_mutex);
> > + bp_target_mm = current->mm;
> > + bp_int3_addr = (u8 *)addr + 1;
> > + __text_poke_bp(pages,
> > + (unsigned long)addr & ~PAGE_MASK,
> > + insn, len, handler);
>
> This doesn't look right if npages == 2 but get_user_pages_fast() returns 1.
True, i'll add an error out.
>
> __text_poke() checks pages[1] != NULL, but in this case it assumes
> that memcpy(vaddr, opcode, len) should fit into the 1st page.
>
>
> Ingo, Andi, I do not think that it is good idea to implement this
> via ptrace. If nothing else, you need to fork the tracer which can
> do PTRACE_POKETEXT.
Yes I agree, ptrace is not the right way to do this.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
prev parent reply other threads:[~2013-11-22 3:29 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-19 0:27 [PATCH] Add a text_poke syscall Andi Kleen
2013-11-19 2:32 ` Andy Lutomirski
2013-11-19 20:16 ` Andi Kleen
2013-11-21 10:02 ` Jiri Kosina
2013-11-19 5:23 ` H. Peter Anvin
2013-11-19 18:49 ` Andi Kleen
2013-11-20 16:42 ` H. Peter Anvin
2013-11-20 17:25 ` Andi Kleen
2013-11-20 18:30 ` H. Peter Anvin
2013-11-20 21:00 ` H. Peter Anvin
2013-11-21 12:49 ` Steven Rostedt
2013-11-19 6:49 ` Ingo Molnar
2013-11-19 19:10 ` Andi Kleen
2013-11-21 13:07 ` Steven Rostedt
2013-11-22 3:26 ` Andi Kleen
2013-11-21 18:26 ` Oleg Nesterov
2013-11-22 3:29 ` Andi Kleen [this message]
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=20131122032934.GK29695@two.firstfloor.org \
--to=andi@firstfloor.org \
--cc=ak@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--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.