From: Masami Hiramatsu <mhiramat@redhat.com>
To: Shaohua Li <shaohua.li@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
ia64 <linux-ia64@vger.kernel.org>,
"Luck, Tony" <tony.luck@intel.com>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Jim Keniston <jkenisto@us.ibm.com>,
systemtap-ml <systemtap@sources.redhat.com>
Subject: Re: [PATCH -mm] kprobes: kprobe-booster for ia64
Date: Mon, 10 Mar 2008 18:25:44 +0000 [thread overview]
Message-ID: <47D57D28.7070100@redhat.com> (raw)
In-Reply-To: <1205120600.20271.3.camel@sli10-desk.sh.intel.com>
Hello Shaohua,
Thank you for reviewing!
Shaohua Li wrote:
> On Sat, 2008-03-08 at 00:01 +0800, Masami Hiramatsu wrote:
>> From: Masami Hiramatsu <mhiramat@redhat.com>
>> +
>> +/* Prepare long jump bundle and disables other boosters if need */
>> +static void __kprobes prepare_booster(struct kprobe *p)
>> +{
>> + unsigned long addr = (unsigned long)p->addr & ~0xFULL;
>> + unsigned int slot = addr & 0xf;
> slot = (unsigned long)p->addr & 0xf ?
You are correct. I'll fix that.
>
>> + struct kprobe *other_kp;
>> +
>> + if (can_boost(&p->ainsn.insn[0].bundle, slot, addr)) {
>> + set_brl_inst(&p->ainsn.insn[1].bundle, (bundle_t
>> *)addr + 1);
>> + p->ainsn.inst_flag |= INST_FLAG_BOOSTABLE;
>> + }
>> +
>> + /* disables boosters in previous slots */
>> + for (; addr < (unsigned long)p->addr; addr++) {
>> + other_kp = get_kprobe((void *)addr);
>> + if (other_kp)
>> + other_kp->ainsn.inst_flag &>> ~INST_FLAG_BOOSTABLE;
>> + }
>> +}
>> +
> There is no lock to protect the flag. If one cpu invokes other_kp and
> the other cpu is changing the flag, what's the result?
I think that other cpu never change the flag, because the caller of this
function(__register_kprobe) locks kprobe_mutex in kernel/kprobes.c.
> Thanks,
> Shaohua
Thanks,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com
WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <mhiramat@redhat.com>
To: Shaohua Li <shaohua.li@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
ia64 <linux-ia64@vger.kernel.org>,
"Luck, Tony" <tony.luck@intel.com>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Jim Keniston <jkenisto@us.ibm.com>,
systemtap-ml <systemtap@sources.redhat.com>
Subject: Re: [PATCH -mm] kprobes: kprobe-booster for ia64
Date: Mon, 10 Mar 2008 14:25:44 -0400 [thread overview]
Message-ID: <47D57D28.7070100@redhat.com> (raw)
In-Reply-To: <1205120600.20271.3.camel@sli10-desk.sh.intel.com>
Hello Shaohua,
Thank you for reviewing!
Shaohua Li wrote:
> On Sat, 2008-03-08 at 00:01 +0800, Masami Hiramatsu wrote:
>> From: Masami Hiramatsu <mhiramat@redhat.com>
>> +
>> +/* Prepare long jump bundle and disables other boosters if need */
>> +static void __kprobes prepare_booster(struct kprobe *p)
>> +{
>> + unsigned long addr = (unsigned long)p->addr & ~0xFULL;
>> + unsigned int slot = addr & 0xf;
> slot = (unsigned long)p->addr & 0xf ?
You are correct. I'll fix that.
>
>> + struct kprobe *other_kp;
>> +
>> + if (can_boost(&p->ainsn.insn[0].bundle, slot, addr)) {
>> + set_brl_inst(&p->ainsn.insn[1].bundle, (bundle_t
>> *)addr + 1);
>> + p->ainsn.inst_flag |= INST_FLAG_BOOSTABLE;
>> + }
>> +
>> + /* disables boosters in previous slots */
>> + for (; addr < (unsigned long)p->addr; addr++) {
>> + other_kp = get_kprobe((void *)addr);
>> + if (other_kp)
>> + other_kp->ainsn.inst_flag &=
>> ~INST_FLAG_BOOSTABLE;
>> + }
>> +}
>> +
> There is no lock to protect the flag. If one cpu invokes other_kp and
> the other cpu is changing the flag, what's the result?
I think that other cpu never change the flag, because the caller of this
function(__register_kprobe) locks kprobe_mutex in kernel/kprobes.c.
> Thanks,
> Shaohua
Thanks,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com
next prev parent reply other threads:[~2008-03-10 18:25 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-07 16:01 [PATCH -mm] kprobes: kprobe-booster for ia64 Masami Hiramatsu
2008-03-07 16:01 ` Masami Hiramatsu
2008-03-10 3:43 ` Shaohua Li
2008-03-10 3:43 ` Shaohua Li
2008-03-10 18:25 ` Masami Hiramatsu [this message]
2008-03-10 18:25 ` Masami Hiramatsu
2008-03-11 0:06 ` [PATCH -mm] kprobes: fix prepare_booster to get correct slot Masami Hiramatsu
2008-03-11 0:06 ` Masami Hiramatsu
2008-03-11 1:20 ` [PATCH -mm] kprobes: kprobe-booster for ia64 Shaohua Li
2008-03-11 1:20 ` Shaohua Li
2008-03-11 18:17 ` Masami Hiramatsu
2008-03-11 18:17 ` Masami Hiramatsu
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=47D57D28.7070100@redhat.com \
--to=mhiramat@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=ananth@in.ibm.com \
--cc=jkenisto@us.ibm.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=shaohua.li@intel.com \
--cc=systemtap@sources.redhat.com \
--cc=tony.luck@intel.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.