This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[PATCH 00/12] MIPS port
- From: Marcin Nowakowski <marcin dot nowakowski at imgtec dot com>
- To: <systemtap at sourceware dot org>
- Cc: Marcin Nowakowski <marcin dot nowakowski at imgtec dot com>
- Date: Tue, 11 Oct 2016 10:14:16 +0200
- Subject: [PATCH 00/12] MIPS port
- Authentication-results: sourceware.org; auth=none
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