From: Anshuman Khandual <khandual@linux.vnet.ibm.com>
To: linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org
Cc: mikey@neuling.org, james.hogan@imgtec.com, avagin@openvz.org,
Paul.Clothier@imgtec.com, peterz@infradead.org,
palves@redhat.com, oleg@redhat.com, dhowells@redhat.com,
tglx@linutronix.de, davej@redhat.com, akpm@linux-foundation.org,
sukadev@linux.vnet.ibm.com, davem@davemloft.net,
sam.bobroff@au1.ibm.com
Subject: Re: [PATCH V4 2/8] powerpc, process: Add functions flush_tm_state, flush_tmregs_to_thread
Date: Fri, 21 Nov 2014 18:43:00 +0530 [thread overview]
Message-ID: <546F3A5C.3010604@linux.vnet.ibm.com> (raw)
In-Reply-To: <1415683597-22819-3-git-send-email-khandual@linux.vnet.ibm.com>
On 11/11/2014 10:56 AM, Anshuman Khandual wrote:
> This patch creates a new function called flush_tm_state to flush
> the existing transactional memory state from the thread. It also
> creates a function called flush_tmregs_to_thread which will then
> be used on subsequent patches in this series.
>
> Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
> ---
> arch/powerpc/include/asm/switch_to.h | 8 ++++++
> arch/powerpc/kernel/process.c | 49 +++++++++++++++++++++++++++++-------
> 2 files changed, 48 insertions(+), 9 deletions(-)
>
> diff --git a/arch/powerpc/include/asm/switch_to.h b/arch/powerpc/include/asm/switch_to.h
> index 58abeda..23752a9 100644
> --- a/arch/powerpc/include/asm/switch_to.h
> +++ b/arch/powerpc/include/asm/switch_to.h
> @@ -82,6 +82,14 @@ static inline void flush_spe_to_thread(struct task_struct *t)
> }
> #endif
>
> +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
> +extern void flush_tmregs_to_thread(struct task_struct *);
> +#else
> +static inline void flush_tmregs_to_thread(struct task_struct *t)
> +{
> +}
> +#endif
> +
> static inline void clear_task_ebb(struct task_struct *t)
> {
> #ifdef CONFIG_PPC_BOOK3S_64
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index aa1df89..c36477b 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -745,6 +745,45 @@ void restore_tm_state(struct pt_regs *regs)
> #define __switch_to_tm(prev)
> #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
>
> +/*
> + * flush_tm_state
> + *
> + * Flush TM state out so we can copy it. __switch_to_tm() does this
> + * flush but it removes the checkpointed state from the current CPU and
> + * transitions the CPU out of TM mode. Hence we need to call
> + * tm_recheckpoint_new_task() (on the same task) to restore the
> + * checkpointed state back and the TM mode.
> + */
> +static void flush_tm_state(struct task_struct *src)
> +{
> + __switch_to_tm(src);
> + tm_recheckpoint_new_task(src);
> +}
> +
> +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
> +void flush_tmregs_to_thread(struct task_struct *tsk)
> +{
> + /*
> + * If task is not current, it should have been flushed
> + * already to it's thread_struct during __switch_to().
> + */
> + if (tsk != current)
> + return;
As of now, ptrace does not support process self tracing. So here in this
function we really dont have to do anything if current and tsk does not
match each other. In case they match, we will just post one warning (as
ptrace generic code should have prevented this from happening) and move
on. Will make this function very simple like the following and remove
the next patch as well which was created because of this patch.
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM
void flush_tmregs_to_thread(struct task_struct *tsk)
{
/*
* Self tracing is not yet supported through ptrace
* interface. Warn here if attempted.
*/
WARN_ON(tsk == current);
return;
}
#endif
next prev parent reply other threads:[~2014-11-21 13:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-11 5:26 [PATCH V4 0/8] Add new PowerPC specific ELF core notes Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 1/8] elf: Add new PowerPC specifc core note sections Anshuman Khandual
2014-11-18 21:28 ` Sukadev Bhattiprolu
2014-11-21 23:43 ` Andrew Morton
2014-11-25 5:26 ` Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 2/8] powerpc, process: Add functions flush_tm_state, flush_tmregs_to_thread Anshuman Khandual
2014-11-21 13:13 ` Anshuman Khandual [this message]
2014-11-11 5:26 ` [PATCH V4 3/8] powerpc, process: Merge functions __switch_to_tm and tm_reclaim_task Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 4/8] powerpc, ptrace: Enable fpr_(get/set) for transactional memory Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 5/8] powerpc, ptrace: Enable vr_(get/set) " Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 6/8] powerpc, ptrace: Enable support for transactional memory register sets Anshuman Khandual
2014-11-18 21:18 ` Sukadev Bhattiprolu
2014-11-21 13:11 ` Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 7/8] powerpc, ptrace: Enable support for miscellaneous debug registers Anshuman Khandual
2014-11-13 9:45 ` Anshuman Khandual
2014-11-14 10:00 ` Denis Kirjanov
2014-11-21 10:26 ` Anshuman Khandual
2014-11-24 14:04 ` Denis Kirjanov
2014-11-11 5:26 ` [PATCH V4 8/8] selftests, powerpc: Add new test case for TM related ptrace interfaces 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=546F3A5C.3010604@linux.vnet.ibm.com \
--to=khandual@linux.vnet.ibm.com \
--cc=Paul.Clothier@imgtec.com \
--cc=akpm@linux-foundation.org \
--cc=avagin@openvz.org \
--cc=davej@redhat.com \
--cc=davem@davemloft.net \
--cc=dhowells@redhat.com \
--cc=james.hogan@imgtec.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mikey@neuling.org \
--cc=oleg@redhat.com \
--cc=palves@redhat.com \
--cc=peterz@infradead.org \
--cc=sam.bobroff@au1.ibm.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).