From: Martin Schwidefsky <schwidefsky@de.ibm.com>
To: Mike Grundy <grundym@us.ibm.com>
Cc: jan.glauber@de.ibm.com, linux-kernel@vger.kernel.org,
systemtap@sources.redhat.com
Subject: Re: [PATCH] kprobes for s390 architecture
Date: Wed, 21 Jun 2006 18:38:40 +0200 [thread overview]
Message-ID: <1150907920.8295.10.camel@localhost> (raw)
In-Reply-To: <20060621042804.GA20300@localhost.localdomain>
On Tue, 2006-06-20 at 21:28 -0700, Mike Grundy wrote:
> Hi Martin - This patch implements the suggestions from your review. There were
> a couple points I wanted to go over:
> > There are some more instructions missing that need fixup:
> > "brxh" 0x84??????, "brxle" 0x85??????, "brc" 0xa7?4????,
> > "brct" 0xa7?6????, "brctg" 0xa7?7????, "bctgr" 0xb946????,
> > "brxhg" 0xec????????44 and "brxlg" 0xec??????45.
> Since all of these are relative branches, and they don't save the psw, the
> standard clean up of adjusting the original psw by the offset from the out of
> line address after single step. Unless I'm just being dense :-)
All of these are conditional branches, if the branch is not taken you
have to do a cleanup.
> > > +void __kprobes arch_arm_kprobe(struct kprobe *p)
> > > +{
> > > + *p->addr = BREAKPOINT_INSTRUCTION;
> > > +}
> > > +
> > > +void __kprobes arch_disarm_kprobe(struct kprobe *p)
> > > +{
> > > + *p->addr = p->opcode;
> > > +}
> > > +
> >
> > I would feel better if the kernel code is changed in a more controlled
> > manner. Do an smp_call_function to avoid concurrent execution of the
> > instruction you are changing.
> I'm not sure that repeatedly executing the same operation on the same area of
> memory on multiple CPUs is the answer. I'm not sure there is a right answer:
> If the instruction is brought into the pipeline while it is being changed
> on another cpu it will either execute the original instruction and that probe
> opportunity will be missed, execute the modified opcode and cause a probe hit
> (which is ok, everything is ready for it), or stall the pipeline while it
> figures out why the heck someone is modifying something in the I-cache (IIRC
> that will slow things down a tad. (I'd really like to plead "all the other
> architectures do it this way", but instead I'll read every paper I can find
> on I-cache operations and zseries processors over diner)
You misunderstood me here. I'm not talking about storing the same piece
of data to memory on each processor. I'm talking about isolating all
other cpus so that the initiating cpu can store the breakpoint to memory
without running into the danger that another cpu is trying to execute it
at the same time. But probably the store should be atomic in regard to
instruction fetching on the other cpus. It is only two bytes and it
should be aligned.
--
blue skies,
Martin.
Martin Schwidefsky
Linux for zSeries Development & Services
IBM Deutschland Entwicklung GmbH
"Reality continues to ruin my life." - Calvin.
next prev parent reply other threads:[~2006-06-21 16:38 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-12 13:15 [PATCH] kprobes for s390 architecture Mike Grundy
2006-06-12 19:40 ` Martin Schwidefsky
2006-06-21 4:28 ` Mike Grundy
2006-06-21 16:38 ` Martin Schwidefsky [this message]
2006-06-21 17:15 ` Mike Grundy
2006-06-27 11:56 ` Martin Schwidefsky
2006-06-21 17:34 ` Mike Grundy
2006-06-22 11:28 ` Jan Glauber
2006-06-22 16:36 ` Mike Grundy
2006-06-23 8:50 ` Jan Glauber
2006-06-23 14:38 ` Heiko Carstens
2006-06-22 1:38 ` Mike Grundy
2006-06-21 9:40 ` Jan Glauber
2006-06-21 16:23 ` Jan Glauber
[not found] <20060623150344.GL9446@osiris.boeblingen.de.ibm.com>
2006-06-23 22:53 ` [heiko.carstens@de.ibm.com: Re: [PATCH] kprobes for s390 architecture] Michael Grundy
2006-06-23 22:21 ` [PATCH] kprobes for s390 architecture Heiko Carstens
2006-06-24 11:36 ` Heiko Carstens
2006-06-24 12:15 ` Heiko Carstens
2006-06-25 13:31 ` Mike Grundy
2006-06-26 8:09 ` Heiko Carstens
2006-06-26 10:49 ` Mike Grundy
2006-06-26 11:19 ` Heiko Carstens
2006-06-27 15:23 ` Martin Schwidefsky
2006-06-28 5:58 ` Heiko Carstens
2006-07-07 17:23 ` Mike Grundy
2006-07-07 17:25 ` Heiko Carstens
2006-07-08 18:54 ` Mike Grundy
2006-07-08 19:58 ` Mike Grundy
2006-07-10 9:28 ` Heiko Carstens
2006-07-10 22:20 ` Mike Grundy
2006-07-11 13:54 ` Mike Grundy
2006-07-11 14:13 ` Martin Schwidefsky
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=1150907920.8295.10.camel@localhost \
--to=schwidefsky@de.ibm.com \
--cc=grundym@us.ibm.com \
--cc=jan.glauber@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=systemtap@sources.redhat.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