powerpc/pseries: hcall_exit tracepoint retval should be signed
The hcall_exit() tracepoint has retval defined as unsigned long. That leads to humours results like: bash-3686 [009] d..2 854.134094: hcall_entry: opcode=24 bash-3686 [009] d..2 854.134095: hcall_exit: opcode=24 retval=18446744073709551609 It's normal for some hcalls to return negative values, displaying them as unsigned isn't very helpful. So change it to signed. bash-3711 [001] d..2 471.691008: hcall_entry: opcode=24 bash-3711 [001] d..2 471.691008: hcall_exit: opcode=24 retval=-7 Which can be more easily compared to H_NOT_FOUND in hvcall.h Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Acked-by: Anton Blanchard <anton@samba.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Tested-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
This commit is contained in:
parent
7acf50e4ef
commit
8f2133cc0e
|
@ -36,8 +36,7 @@ void kexec_copy_flush(struct kimage *image);
|
|||
/* pseries hcall tracing */
|
||||
extern struct static_key hcall_tracepoint_key;
|
||||
void __trace_hcall_entry(unsigned long opcode, unsigned long *args);
|
||||
void __trace_hcall_exit(long opcode, unsigned long retval,
|
||||
unsigned long *retbuf);
|
||||
void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf);
|
||||
/* OPAL tracing */
|
||||
#ifdef HAVE_JUMP_LABEL
|
||||
extern struct static_key opal_tracepoint_key;
|
||||
|
|
|
@ -81,8 +81,7 @@ TRACE_EVENT_FN_COND(hcall_entry,
|
|||
|
||||
TRACE_EVENT_FN_COND(hcall_exit,
|
||||
|
||||
TP_PROTO(unsigned long opcode, unsigned long retval,
|
||||
unsigned long *retbuf),
|
||||
TP_PROTO(unsigned long opcode, long retval, unsigned long *retbuf),
|
||||
|
||||
TP_ARGS(opcode, retval, retbuf),
|
||||
|
||||
|
@ -90,7 +89,7 @@ TRACE_EVENT_FN_COND(hcall_exit,
|
|||
|
||||
TP_STRUCT__entry(
|
||||
__field(unsigned long, opcode)
|
||||
__field(unsigned long, retval)
|
||||
__field(long, retval)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
|
@ -98,7 +97,7 @@ TRACE_EVENT_FN_COND(hcall_exit,
|
|||
__entry->retval = retval;
|
||||
),
|
||||
|
||||
TP_printk("opcode=%lu retval=%lu", __entry->opcode, __entry->retval),
|
||||
TP_printk("opcode=%lu retval=%ld", __entry->opcode, __entry->retval),
|
||||
|
||||
hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc
|
||||
);
|
||||
|
|
|
@ -125,7 +125,7 @@ static void probe_hcall_entry(void *ignored, unsigned long opcode, unsigned long
|
|||
h->purr_start = mfspr(SPRN_PURR);
|
||||
}
|
||||
|
||||
static void probe_hcall_exit(void *ignored, unsigned long opcode, unsigned long retval,
|
||||
static void probe_hcall_exit(void *ignored, unsigned long opcode, long retval,
|
||||
unsigned long *retbuf)
|
||||
{
|
||||
struct hcall_stats *h;
|
||||
|
|
|
@ -902,8 +902,7 @@ out:
|
|||
local_irq_restore(flags);
|
||||
}
|
||||
|
||||
void __trace_hcall_exit(long opcode, unsigned long retval,
|
||||
unsigned long *retbuf)
|
||||
void __trace_hcall_exit(long opcode, long retval, unsigned long *retbuf)
|
||||
{
|
||||
unsigned long flags;
|
||||
unsigned int *depth;
|
||||
|
|
Loading…
Reference in New Issue