linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Neuling <mikey@neuling.org>
To: Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Cc: shuahkh@osg.samsung.com, james.hogan@imgtec.com,
	avagin@openvz.org, Paul.Clothier@imgtec.com,
	peterz@infradead.org, linux-kernel@vger.kernel.org,
	davem@davemloft.net, dhowells@redhat.com,
	linuxppc-dev@ozlabs.org, kirjanov@gmail.com, tglx@linutronix.de,
	oleg@redhat.com, sukadev@linux.vnet.ibm.com, davej@redhat.com,
	akpm@linux-foundation.org, palves@redhat.com,
	Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>,
	sam.bobroff@au1.ibm.com,
	Anshuman Khandual <khandual@linux.vnet.ibm.com>
Subject: Re: [V6,1/9] elf: Add new powerpc specifc core note sections
Date: Wed, 28 Jan 2015 15:28:09 +1100	[thread overview]
Message-ID: <1422419289.9646.20.camel@neuling.org> (raw)
In-Reply-To: <1421963049.30744.23.camel@neuling.org>

On Fri, 2015-01-23 at 08:44 +1100, Michael Neuling wrote:
> > > > Inside transaction both running and check pointed values can be
> > > > probed independently.
> > >
> > > Yep, that's the idea, although setting the running values won't chang=
e
> > > anything since the the translation is already doomed and will abort o=
nce
> > > the cpu starts executing it.
> >=20
> > So this looks to me like the overall effect on debugging transactional
> > code should be the same on Power and z, even if some internal details
> > are different (on z, the exception will automatically abort the
> > transaction; on p, the exception itself will not abort, but *restarting=
*
> > user space execution will).
>=20
> Yep
>=20
> > From a GDB perspective, it would therefore be preferable if the ptrace
> > interface were to behave in a similar fashion on p as on z: that is,
> > if an exception interrupting a transaction results in a ptrace intercep=
t,
> > at this point:
>=20
> Agreed.
>=20
> > - the "normal" ptrace register set commands should access the
> >   *checkpointed* registers (allowing both read and write access)
>=20
> OK, this is a change from what we've been proposing with Anshuman's
> patch set but I'm happy to change it to make it consistent with other
> architectures.  It's relatively arbitrary which goes where, so I'm happy
> to change.
>=20
> >   -- GDB will use this to display current position (already reflecting
> >   the fact that the transaction will abort), and use it when changing
> >   register values e.g. to effect an inferior function call
>=20
> "Current position" depends on your perspective.  Is it the last executed
> instruction or the next executed instruction?  If it's the last executed
> instruction, then it's the running values.  If it's the next, then it's
> the check pointed. =20
>=20
> Anyway, I'm happy to make it the check pointed values for the sake of
> ptrace/gdb.

Uli,

Sorry, I'm rethinking this as we didn't consider user suspended
transactions.

It makes sense for normal transactions but for user suspended
transactions the running values are the ones you want to modify since
that is where you'll end up restarting from.  The hardware will only
abort/rollback once a tresume is encountered.
      *=20
So we could do what you're talking about for normal transactions and
then switch them for suspended transactions.  But this just seems to be
making the kernel interface overly complicated. =20

So I'm keen on just keeping it the way Anshuman has now and GDB has to
understand the program flow better to know which ones it wants to
modify.  The kernel always provides the "normal" set as running and the
new set as check pointed.  GDB then has to check the MSR to work out
what it wants to modify.

> > - a new ptrace register set should allow access (read-only) to the
> >   *running* register values
>=20
> This is because changing them won't ever result in a side effect? =20

For the same reason as above, we need to be able to modify the running
values when it's a user suspended transaction.  So I don't agree with
this any more in the case of user suspended transaction.  We need to be
able to modify both sets of registers.

Mikey

  reply	other threads:[~2015-01-28  4:28 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-02  7:56 [PATCH V6 0/9] Add new powerpc specific ELF core notes Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 1/9] elf: Add new powerpc specifc core note sections Anshuman Khandual
2014-12-03  5:22   ` [V6,1/9] " Michael Ellerman
2014-12-03  6:48     ` Anshuman Khandual
2014-12-08 10:08       ` Anshuman Khandual
2014-12-19 19:28         ` Edjunior Barbosa Machado
2015-01-01  8:08           ` Anshuman Khandual
2015-01-14  4:44             ` Anshuman Khandual
2015-01-21 23:39             ` Michael Neuling
2015-01-22 15:55               ` Ulrich Weigand
2015-01-22 21:44                 ` Michael Neuling
2015-01-28  4:28                   ` Michael Neuling [this message]
2015-02-06 14:47                     ` Ulrich Weigand
2015-02-23  4:51                       ` Michael Neuling
2015-03-18 12:53                         ` Ulrich Weigand
2015-03-18 22:45                           ` Michael Neuling
2015-03-18 22:50                             ` Michael Neuling
2015-03-23 10:34                               ` Anshuman Khandual
2015-04-08 17:50                                 ` Ulrich Weigand
2015-04-08 23:11                                   ` Michael Neuling
2015-04-09 12:50                                     ` Anshuman Khandual
2015-04-10  3:03                                       ` Michael Neuling
2015-04-10  9:10                                         ` Anshuman Khandual
2015-04-10 10:33                                           ` Ulrich Weigand
2015-04-13  8:48                                             ` Anshuman Khandual
2015-04-20  6:42                                               ` Anshuman Khandual
2015-04-20 12:27                                               ` Ulrich Weigand
2015-04-21  4:55                                                 ` Anshuman Khandual
2015-04-21 14:41                                                   ` Ulrich Weigand
2015-04-22  9:24                                                     ` Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 2/9] powerpc, process: Add the function flush_tmregs_to_thread Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 3/9] powerpc, ptrace: Enable fpr_(get/set) for transactional memory Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 4/9] powerpc, ptrace: Enable vr_(get/set) " Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 5/9] powerpc, ptrace: Enable support for transactional memory register sets Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 6/9] powerpc, ptrace: Enable support for miscellaneous debug registers Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 7/9] selftests, powerpc: Add test case for TM related ptrace interface Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 8/9] selftests, powerpc: Make GIT ignore all binaries related to TM Anshuman Khandual
2014-12-02  7:56 ` [PATCH V6 9/9] selftests: Make GIT ignore all binaries in powerpc test suite Anshuman Khandual
2014-12-02 18:23   ` Shuah Khan
2014-12-03  5:46     ` Anshuman Khandual

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=1422419289.9646.20.camel@neuling.org \
    --to=mikey@neuling.org \
    --cc=Paul.Clothier@imgtec.com \
    --cc=Ulrich.Weigand@de.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=avagin@openvz.org \
    --cc=davej@redhat.com \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=emachado@linux.vnet.ibm.com \
    --cc=james.hogan@imgtec.com \
    --cc=khandual@linux.vnet.ibm.com \
    --cc=kirjanov@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=oleg@redhat.com \
    --cc=palves@redhat.com \
    --cc=peterz@infradead.org \
    --cc=sam.bobroff@au1.ibm.com \
    --cc=shuahkh@osg.samsung.com \
    --cc=sukadev@linux.vnet.ibm.com \
    --cc=tglx@linutronix.de \
    /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;
as well as URLs for NNTP newsgroup(s).