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 7/8] powerpc, ptrace: Enable support for miscellaneous debug registers
Date: Thu, 13 Nov 2014 15:15:11 +0530 [thread overview]
Message-ID: <54647DA7.1070000@linux.vnet.ibm.com> (raw)
In-Reply-To: <1415683597-22819-8-git-send-email-khandual@linux.vnet.ibm.com>
On 11/11/2014 10:56 AM, Anshuman Khandual wrote:
> This patch enables get and set of miscellaneous debug registers through
> ptrace PTRACE_GETREGSET-PTRACE_SETREGSET interface by implementing new
> powerpc specific register set REGSET_MISC support corresponding to the
> new ELF core note NT_PPC_MISC added previously in this regard.
Right now this one does not compile for "ppc64e_defconfig" and
"pmac32_defconfig" config options. The patch below will fix it
and would be part of next revision.
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 61a2581..be566eb 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -1326,6 +1326,7 @@ static int tm_cvmx_set(struct task_struct *target,
}
#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
+#ifdef CONFIG_PPC64
/*
* get_misc_dbg
*
@@ -1339,6 +1340,9 @@ static int tm_cvmx_set(struct task_struct *target,
* unsigned long ppr;
* unsigned long tar;
* };
+ *
+ * The data element 'tar' will be valid only if the
+ * kernel has CONFIG_PPC_BOOK3S_64 config option enabled.
*/
static int get_misc_dbg(struct task_struct *target,
const struct user_regset *regset, unsigned int pos,
@@ -1348,7 +1352,10 @@ static int get_misc_dbg(struct task_struct *target,
/* Build test */
BUILD_BUG_ON(TSO(dscr) + 2 * sizeof(unsigned long) != TSO(ppr));
+
+#ifdef CONFIG_PPC_BOOK3S_64
BUILD_BUG_ON(TSO(ppr) + sizeof(unsigned long) != TSO(tar));
+#endif
/* DSCR register */
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
@@ -1362,12 +1369,14 @@ static int get_misc_dbg(struct task_struct *target,
sizeof(unsigned long),
2 * sizeof(unsigned long));
+#ifdef CONFIG_PPC_BOOK3S_64
/* TAR register */
if (!ret)
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
&target->thread.tar,
2 * sizeof(unsigned long),
3 * sizeof(unsigned long));
+#endif
return ret;
}
@@ -1384,6 +1393,9 @@ static int get_misc_dbg(struct task_struct *target,
* unsigned long ppr;
* unsigned long tar;
* };
+ *
+ * The data element 'tar' will be valid only if the
+ * kernel has CONFIG_PPC_BOOK3S_64 config option enabled.
*/
static int set_misc_dbg(struct task_struct *target,
const struct user_regset *regset, unsigned int pos,
@@ -1394,7 +1406,10 @@ static int set_misc_dbg(struct task_struct *target,
/* Build test */
BUILD_BUG_ON(TSO(dscr) + 2 * sizeof(unsigned long) != TSO(ppr));
+
+#ifdef CONFIG_PPC_BOOK3S_64
BUILD_BUG_ON(TSO(ppr) + sizeof(unsigned long) != TSO(tar));
+#endif
/* DSCR register */
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
@@ -1407,15 +1422,17 @@ static int set_misc_dbg(struct task_struct *target,
&target->thread.ppr,
sizeof(unsigned long),
2 * sizeof(unsigned long));
-
+#ifdef CONFIG_PPC_BOOK3S_64
/* TAR register */
if (!ret)
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
&target->thread.tar,
2 * sizeof(unsigned long),
3 * sizeof(unsigned long));
+#endif
return ret;
}
+#endif /* CONFIG_PPC64 */
/*
* These are our native regset flavors.
@@ -1438,7 +1455,9 @@ enum powerpc_regset {
REGSET_TM_CFPR, /* TM checkpointed FPR registers */
REGSET_TM_CVMX, /* TM checkpointed VMX registers */
#endif
+#ifdef CONFIG_PPC64
REGSET_MISC /* Miscellaneous debug registers */
+#endif
};
static const struct user_regset native_regsets[] = {
@@ -1495,11 +1514,13 @@ static const struct user_regset native_regsets[] = {
.active = tm_cvmx_active, .get = tm_cvmx_get, .set = tm_cvmx_set
},
#endif
+#ifdef CONFIG_PPC64
[REGSET_MISC] = {
.core_note_type = NT_PPC_MISC, .n = ELF_NMISCREG,
.size = sizeof(u64), .align = sizeof(u64),
.get = get_misc_dbg, .set = set_misc_dbg
},
+#endif
};
static const struct user_regset_view user_ppc_native_view = {
WARNING: multiple messages have this Message-ID (diff)
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, davem@davemloft.net,
dhowells@redhat.com, davej@redhat.com, akpm@linux-foundation.org,
sukadev@linux.vnet.ibm.com, tglx@linutronix.de,
sam.bobroff@au1.ibm.com
Subject: Re: [PATCH V4 7/8] powerpc, ptrace: Enable support for miscellaneous debug registers
Date: Thu, 13 Nov 2014 15:15:11 +0530 [thread overview]
Message-ID: <54647DA7.1070000@linux.vnet.ibm.com> (raw)
In-Reply-To: <1415683597-22819-8-git-send-email-khandual@linux.vnet.ibm.com>
On 11/11/2014 10:56 AM, Anshuman Khandual wrote:
> This patch enables get and set of miscellaneous debug registers through
> ptrace PTRACE_GETREGSET-PTRACE_SETREGSET interface by implementing new
> powerpc specific register set REGSET_MISC support corresponding to the
> new ELF core note NT_PPC_MISC added previously in this regard.
Right now this one does not compile for "ppc64e_defconfig" and
"pmac32_defconfig" config options. The patch below will fix it
and would be part of next revision.
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 61a2581..be566eb 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -1326,6 +1326,7 @@ static int tm_cvmx_set(struct task_struct *target,
}
#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */
+#ifdef CONFIG_PPC64
/*
* get_misc_dbg
*
@@ -1339,6 +1340,9 @@ static int tm_cvmx_set(struct task_struct *target,
* unsigned long ppr;
* unsigned long tar;
* };
+ *
+ * The data element 'tar' will be valid only if the
+ * kernel has CONFIG_PPC_BOOK3S_64 config option enabled.
*/
static int get_misc_dbg(struct task_struct *target,
const struct user_regset *regset, unsigned int pos,
@@ -1348,7 +1352,10 @@ static int get_misc_dbg(struct task_struct *target,
/* Build test */
BUILD_BUG_ON(TSO(dscr) + 2 * sizeof(unsigned long) != TSO(ppr));
+
+#ifdef CONFIG_PPC_BOOK3S_64
BUILD_BUG_ON(TSO(ppr) + sizeof(unsigned long) != TSO(tar));
+#endif
/* DSCR register */
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
@@ -1362,12 +1369,14 @@ static int get_misc_dbg(struct task_struct *target,
sizeof(unsigned long),
2 * sizeof(unsigned long));
+#ifdef CONFIG_PPC_BOOK3S_64
/* TAR register */
if (!ret)
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
&target->thread.tar,
2 * sizeof(unsigned long),
3 * sizeof(unsigned long));
+#endif
return ret;
}
@@ -1384,6 +1393,9 @@ static int get_misc_dbg(struct task_struct *target,
* unsigned long ppr;
* unsigned long tar;
* };
+ *
+ * The data element 'tar' will be valid only if the
+ * kernel has CONFIG_PPC_BOOK3S_64 config option enabled.
*/
static int set_misc_dbg(struct task_struct *target,
const struct user_regset *regset, unsigned int pos,
@@ -1394,7 +1406,10 @@ static int set_misc_dbg(struct task_struct *target,
/* Build test */
BUILD_BUG_ON(TSO(dscr) + 2 * sizeof(unsigned long) != TSO(ppr));
+
+#ifdef CONFIG_PPC_BOOK3S_64
BUILD_BUG_ON(TSO(ppr) + sizeof(unsigned long) != TSO(tar));
+#endif
/* DSCR register */
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
@@ -1407,15 +1422,17 @@ static int set_misc_dbg(struct task_struct *target,
&target->thread.ppr,
sizeof(unsigned long),
2 * sizeof(unsigned long));
-
+#ifdef CONFIG_PPC_BOOK3S_64
/* TAR register */
if (!ret)
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
&target->thread.tar,
2 * sizeof(unsigned long),
3 * sizeof(unsigned long));
+#endif
return ret;
}
+#endif /* CONFIG_PPC64 */
/*
* These are our native regset flavors.
@@ -1438,7 +1455,9 @@ enum powerpc_regset {
REGSET_TM_CFPR, /* TM checkpointed FPR registers */
REGSET_TM_CVMX, /* TM checkpointed VMX registers */
#endif
+#ifdef CONFIG_PPC64
REGSET_MISC /* Miscellaneous debug registers */
+#endif
};
static const struct user_regset native_regsets[] = {
@@ -1495,11 +1514,13 @@ static const struct user_regset native_regsets[] = {
.active = tm_cvmx_active, .get = tm_cvmx_get, .set = tm_cvmx_set
},
#endif
+#ifdef CONFIG_PPC64
[REGSET_MISC] = {
.core_note_type = NT_PPC_MISC, .n = ELF_NMISCREG,
.size = sizeof(u64), .align = sizeof(u64),
.get = get_misc_dbg, .set = set_misc_dbg
},
+#endif
};
static const struct user_regset_view user_ppc_native_view = {
next prev parent reply other threads:[~2014-11-13 9:45 UTC|newest]
Thread overview: 38+ 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 ` Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 1/8] elf: Add new PowerPC specifc core note sections Anshuman Khandual
2014-11-11 5:26 ` Anshuman Khandual
2014-11-18 21:28 ` Sukadev Bhattiprolu
2014-11-18 21:28 ` Sukadev Bhattiprolu
2014-11-21 23:43 ` Andrew Morton
2014-11-21 23:43 ` Andrew Morton
2014-11-25 5:26 ` Anshuman Khandual
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-11 5:26 ` Anshuman Khandual
2014-11-21 13:13 ` Anshuman Khandual
2014-11-21 13:13 ` Anshuman Khandual
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 ` 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 ` Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 5/8] powerpc, ptrace: Enable vr_(get/set) " Anshuman Khandual
2014-11-11 5:26 ` Anshuman Khandual
2014-11-11 5:26 ` [PATCH V4 6/8] powerpc, ptrace: Enable support for transactional memory register sets Anshuman Khandual
2014-11-11 5:26 ` Anshuman Khandual
2014-11-18 21:18 ` Sukadev Bhattiprolu
2014-11-18 21:18 ` Sukadev Bhattiprolu
2014-11-21 13:11 ` Anshuman Khandual
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-11 5:26 ` Anshuman Khandual
2014-11-13 9:45 ` Anshuman Khandual [this message]
2014-11-13 9:45 ` Anshuman Khandual
2014-11-14 10:00 ` Denis Kirjanov
2014-11-14 10:00 ` Denis Kirjanov
2014-11-21 10:26 ` Anshuman Khandual
2014-11-21 10:26 ` Anshuman Khandual
2014-11-24 14:04 ` Denis Kirjanov
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
2014-11-11 5:26 ` 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=54647DA7.1070000@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 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.