diff options
author | Dmitry V. Levin <ldv@strace.io> | 2021-04-25 08:00:00 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@strace.io> | 2021-04-25 08:00:00 +0000 |
commit | b1c63ce0fe98cd43c764228161336cb446a27450 (patch) | |
tree | a720b0c97a6a27fa417ba1534fdca7e9822345e3 | |
parent | ca8d2c2b760b07c74f09360b19f3c23704da9062 (diff) | |
download | strace-b1c63ce0fe98cd43c764228161336cb446a27450.tar.gz |
numa: use print_fields.h helpers
* src/numa.c (print_mode): Use PRINT_VAL_X.
(SYS_FUNC(migrate_pages), SYS_FUNC(mbind), SYS_FUNC(set_mempolicy),
SYS_FUNC(get_mempolicy), SYS_FUNC(move_pages)): Use tprint_arg_next,
tprint_indirect_begin, tprint_indirect_end, and PRINT_VAL_U.
-rw-r--r-- | src/numa.c | 87 |
1 files changed, 70 insertions, 17 deletions
diff --git a/src/numa.c b/src/numa.c index 81cb22ded..26ec7a3f7 100644 --- a/src/numa.c +++ b/src/numa.c @@ -44,10 +44,19 @@ print_nodemask(struct tcb *const tcp, const kernel_ulong_t addr, SYS_FUNC(migrate_pages) { + /* pid */ printpid(tcp, tcp->u_arg[0], PT_TGID); - tprintf(", %" PRI_klu ", ", tcp->u_arg[1]); + tprint_arg_next(); + + /* maxnode */ + PRINT_VAL_U(tcp->u_arg[1]); + tprint_arg_next(); + + /* old_nodes */ print_nodemask(tcp, tcp->u_arg[2], tcp->u_arg[1]); - tprints(", "); + tprint_arg_next(); + + /* new_nodes */ print_nodemask(tcp, tcp->u_arg[3], tcp->u_arg[1]); return RVAL_DECODED; @@ -78,7 +87,7 @@ print_mode(struct tcb *const tcp, const kernel_ulong_t mode_arg) } if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV) - tprintf("%#" PRI_klx, mode_arg); + PRINT_VAL_X(mode_arg); if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) return; @@ -96,12 +105,27 @@ print_mode(struct tcb *const tcp, const kernel_ulong_t mode_arg) SYS_FUNC(mbind) { + /* addr */ printaddr(tcp->u_arg[0]); - tprintf(", %" PRI_klu ", ", tcp->u_arg[1]); + tprint_arg_next(); + + /* len */ + PRINT_VAL_U(tcp->u_arg[1]); + tprint_arg_next(); + + /* mode */ print_mode(tcp, tcp->u_arg[2]); - tprints(", "); + tprint_arg_next(); + + /* nodemask */ print_nodemask(tcp, tcp->u_arg[3], tcp->u_arg[4]); - tprintf(", %" PRI_klu ", ", tcp->u_arg[4]); + tprint_arg_next(); + + /* maxnode */ + PRINT_VAL_U(tcp->u_arg[4]); + tprint_arg_next(); + + /* flags */ printflags(mbind_flags, tcp->u_arg[5], "MPOL_???"); return RVAL_DECODED; @@ -109,10 +133,16 @@ SYS_FUNC(mbind) SYS_FUNC(set_mempolicy) { + /* mode */ print_mode(tcp, (unsigned int) tcp->u_arg[0]); - tprints(", "); + tprint_arg_next(); + + /* nodemask */ print_nodemask(tcp, tcp->u_arg[1], tcp->u_arg[2]); - tprintf(", %" PRI_klu, tcp->u_arg[2]); + tprint_arg_next(); + + /* maxnode */ + PRINT_VAL_U(tcp->u_arg[2]); return RVAL_DECODED; } @@ -122,17 +152,28 @@ SYS_FUNC(set_mempolicy) SYS_FUNC(get_mempolicy) { if (exiting(tcp)) { + /* mode */ int pol; if (!umove_or_printaddr(tcp, tcp->u_arg[0], &pol)) { - tprints("["); + tprint_indirect_begin(); printxval(mpol_modes, pol, "MPOL_???"); - tprints("]"); + tprint_indirect_end(); } - tprints(", "); + tprint_arg_next(); + + /* nodemask */ print_nodemask(tcp, tcp->u_arg[1], tcp->u_arg[2]); - tprintf(", %" PRI_klu ", ", tcp->u_arg[2]); + tprint_arg_next(); + + /* maxnode */ + PRINT_VAL_U(tcp->u_arg[2]); + tprint_arg_next(); + + /* addr */ printaddr(tcp->u_arg[3]); - tprints(", "); + tprint_arg_next(); + + /* flags */ printflags64(get_mempolicy_flags, tcp->u_arg[4], "MPOL_???"); } return 0; @@ -172,18 +213,30 @@ SYS_FUNC(move_pages) kernel_ulong_t buf; if (entering(tcp)) { + /* pid */ printpid(tcp, tcp->u_arg[0], PT_TGID); - tprintf(", %" PRI_klu ", ", npages); + tprint_arg_next(); + + /* count */ + PRINT_VAL_U(npages); + tprint_arg_next(); + + /* pages */ print_array(tcp, tcp->u_arg[2], npages, &buf, current_wordsize, tfetch_mem, print_addr, 0); - tprints(", "); + tprint_arg_next(); + + /* nodes */ print_array(tcp, tcp->u_arg[3], npages, &buf, sizeof(int), tfetch_mem, print_int32_array_member, 0); - tprints(", "); + tprint_arg_next(); } else { + /* status */ print_array(tcp, tcp->u_arg[4], npages, &buf, sizeof(int), tfetch_mem, print_status, 0); - tprints(", "); + tprint_arg_next(); + + /* flags */ printflags(move_pages_flags, tcp->u_arg[5], "MPOL_???"); } return 0; |