This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 00/12] MIPS port


This patch series attempts to bring MIPS support to systemtap. It is largely
based on an earlier work by Victor Kamensky and Crestez Dan Leonard who have
previously attempted to add MIPS support, but which has never been completed.

As of now (linux 4.8) upstream linux kernel for MIPS has [ku]probes support,
which makes the arch-specific effort much smaller in systemtap.

With the following patches I've been able to pass a large number of testsuite
tests and most of the failures observed have been related to either expected
parts of the kernel not enabled and/or testsuite incompatibilities with linux
4.8 or the userspace apps used in my test environment.

Some functions don't work properly due to incomplete support in elfutils
(Debian port of Elfutils has a reasonable MIPS support, but it's not complete),
and some have not been fully implemented in systemtap yet.

There is no good guide on how to add a new architecture to SystemTap, so there
might be things that I have missed or which are not done entirely correctly -
I hope that with some guidance from the maintainers I can get it all merged
into the tree. If possible, I would like to get the basic support as completed
now merged in and work on further fixes later, unless there are any blocking
issues that would have to be resolved immediately.

The patch series has been split into multiple smaller patches to make the
review easier, but they are generally not intended to be tested in isolation -
as they do not make too much sense until last patches are applied.

Marcin Nowakowski (12):
  tapset syscall-number database: add MIPS syscalls
  testsuite: add support for mips64 build flags
  mips: add TIF_32BIT definition
  mips: tapsets.cxx: add dwarf register definitions for SDT uprobes
  mips: add tapset register definitions
  mips: add a stub for stack unwind
  tapset: fix build if arch does not define SA_RESTORER
  mips: tapset: fix mips oddities in syscalls
  mips: add basic unwind support
  Create debug_frame_hdr in target byte order
  mips: add support in tapset
  mips: add runtime support

 runtime/compatdefs.h                     |    8 +
 runtime/linux/arith.c                    |   96 +-
 runtime/linux/regs.c                     |  131 ++
 runtime/linux/runtime.h                  |    2 +-
 runtime/loc2c-runtime.h                  |    9 +
 runtime/regs.h                           |    4 +
 runtime/stack-mips.c                     |    4 +
 runtime/stack.c                          |    2 +
 runtime/syscall.h                        |   67 +
 runtime/unwind/mips.h                    |   79 ++
 runtime/unwind/unwind.h                  |    2 +
 scripts/dump-syscalls.sh                 |    7 +
 tapset/errno.stp                         |    2 +
 tapset/linux/aux_syscalls.stp            |   16 +-
 tapset/linux/mips/aux_syscalls.stp       |   44 +
 tapset/linux/mips/syscall_num.stp        | 2027 ++++++++++++++++++++++++++++++
 tapset/linux/scheduler.stp               |    2 +-
 tapset/linux/syscalls2.stp               |   12 +
 tapset/mips/registers.stp                |  301 +++++
 tapsets.cxx                              |   79 +-
 testsuite/lib/compile_flags.exp          |    3 +-
 testsuite/lib/systemtap.exp              |    1 +
 testsuite/systemtap.context/num_args.stp |    1 +
 translate.cxx                            |   38 +-
 24 files changed, 2919 insertions(+), 18 deletions(-)
 create mode 100644 runtime/stack-mips.c
 create mode 100644 runtime/unwind/mips.h
 mode change 100644 => 100755 scripts/dump-syscalls.sh
 create mode 100644 tapset/linux/mips/aux_syscalls.stp
 create mode 100644 tapset/linux/mips/syscall_num.stp
 create mode 100644 tapset/mips/registers.stp

-- 
2.7.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]