History log of /external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9e2645c0b8d76ece8eed2d08d1b7a8021da41252 07-May-2015 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for the syncfs system call.

Based on patch from j@eckel.me on BZ#347389.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15191 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
faaf86055a7af8ff13c591cdf692724aab94c960 18-Apr-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Remove a few unneeded header files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15111 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
9d7592e571487e08e2166212890e65b87e2905a4 19-Jan-2015 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Handle the memfd_create system call.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14875 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
1672a24fcc4362bf79b9ba994f8726aabf9641bd 17-Dec-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> For s390 use symbolic register names.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14818 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
9af04c49df08365aa568b3a27ffa5b2a1274a987 29-Nov-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix a few VG_(message) invocations. The function does not add a
newline character under the covers.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14796 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
e6366711ec586437958764b451145749c7bcded1 10-Nov-2014 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for the getrandom system call. BZ#340788.

Requires r14705 for updated system call lists.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14709 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
6680b51faeff56e81d58e8451c3d1628e8830ec5 08-Sep-2014 cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9> also do unshare and pivot_root on s390x


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14499 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
2fe461968792f2b0463b862380ae21bed95f3e31 04-Sep-2014 cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9> add more system call numbers for s390. While we are at it
also wire up the common linux kcmp system call.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14461 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
38a74d2cc4670e3eb559adff51a376cd6ec98005 30-Aug-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> The semantic of the stack bounds is not consistent or is not described.
At various places, there were either some assumption that the 'end'
boundary (highest address) was either not included, included,
or was the highest addressable word, or the highest addressable byte.
This e.g. was very visible when doing:
./vg-in-place -d -d ./helgrind/tests/tc01_simple_race|&grep regi
giving
--24040:2:stacks register 0xBEDB4000-0xBEDB4FFF as stack 0
--24040:2:stacks register 0x402C000-0x4A2C000 as stack 1
showing that the main stack end was (on x86) not the highest word
but the highest byte, while for the thread 1, the registered end
was a byte not part of the stack.

The attached patch ensures that stack bounds semantic are documented and
consistent. Also, some of the stack handling code is factorised.

The convention that the patch ensures and documents is:
start is the lowest addressable byte, end is the highest addressable byte.
(the words 'min' and 'max' have been kept when already used, as this wording is
consistent with the new semantic of start/end).

In various debug log, used brackets [ and ] to make clear that
both bounds are included.

The code to guess and register the client stack was duplicated
in all the platform specific syswrap-<plat>-<os>.c files.
Code has been factorised in syswrap-generic.c

The patch has been regression tested on
x86, amd64, ppc32/64, s390x.
It has been compiled and one test run on arm64.
Not compiled/not tested on darwin, android, mips32/64, arm


More in details, the patch does the following:

coregrind/pub_core_aspacemgr.h
include/valgrind.h
include/pub_tool_machine.h
coregrind/pub_core_scheduler.h
coregrind/pub_core_stacks.h
- document start/end semantic in various functions
also in pub_tool_machine.h:
- replaces unclear 'bottommost address' by 'lowest address'
(unclear as stack bottom is or at least can be interpreted as
the 'functional' bottom of the stack, which is the highest
address for 'stack growing downwards').
coregrind/pub_core_initimg.h
replace unclear clstack_top by clstack_end
coregrind/m_main.c
updated to clstack_end

coregrind/pub_core_threadstate.h
renamed client_stack_highest_word to client_stack_highest_byte
coregrind/m_scheduler/scheduler.c
computes client_stack_highest_byte as the highest addressable byte
Update comments in call to VG_(show_sched_status)
coregrind/m_machine.c
coregrind/m_stacktrace.c
updated to client_stack_highest_byte, and switched
stack_lowest/highest_word to stack_lowest/highest_byte accordingly

coregrind/m_stacks.c
clarify semantic of start/end,
added a comment to indicate why we invert start/end in register call
(note that the code find_stack_by_addr was already assuming that
end was included as the checks were doing e.g.
sp >= i->start && sp <= i->end

coregrind/pub_core_clientstate.h
coregrind/m_clientstate.c
renames Addr VG_(clstk_base) to Addr VG_(clstk_start_base)
(start to indicate it is the lowest address, base suffix kept
to indicate it is the initial lowest address).

coregrind/m_initimg/initimg-darwin.c
updated to VG_(clstk_start_base)
replace unclear iicii.clstack_top by iicii.clstack_end
updated clstack_max_size computation according to both bounds included.

coregrind/m_initimg/initimg-linux.c
updated to VG_(clstk_start_base)
updated VG_(clstk_end) computation according to both bounds included.
replace unclear iicii.clstack_top by iicii.clstack_end

coregrind/pub_core_aspacemgr.h
extern Addr VG_(am_startup) : clarify semantic of the returned value
coregrind/m_aspacemgr/aspacemgr-linux.c
removed a copy of a comment that was already in pub_core_aspacemgr.h
(avoid double maintenance)
renamed unclear suggested_clstack_top to suggested_clstack_end
(note that here, it looks like suggested_clstack_top was already
the last addressable byte)

* factorisation of the stack guessing and registration causes
mechanical changes in the following files:
coregrind/m_syswrap/syswrap-ppc64-linux.c
coregrind/m_syswrap/syswrap-x86-darwin.c
coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-mips64-linux.c
coregrind/m_syswrap/syswrap-ppc32-linux.c
coregrind/m_syswrap/syswrap-amd64-darwin.c
coregrind/m_syswrap/syswrap-mips32-linux.c
coregrind/m_syswrap/priv_syswrap-generic.h
coregrind/m_syswrap/syswrap-x86-linux.c
coregrind/m_syswrap/syswrap-s390x-linux.c
coregrind/m_syswrap/syswrap-darwin.c
coregrind/m_syswrap/syswrap-arm64-linux.c
Some files to look at more in details:
syswrap-darwin.c : the handling of sysctl(kern.usrstack) looked
buggy to me, and has probably be made correct by the fact that
VG_(clstk_end) is now the last addressable byte. However,unsure
about this, as I could not find any documentation about
sysctl(kern.usrstack). I only find several occurences on the web,
showing that the result of this is page aligned, which I guess
means it must be 1+ the last addressable byte.
syswrap-x86-darwin.c and syswrap-amd64-darwin.c
I suspect the code that was computing client_stack_highest_word
was wrong, and the patch makes it correct.
syswrap-mips64-linux.c
not sure what to do for this code. This is the only code
that was guessing the stack differently from others.
Kept (almost) untouched. To be discussed with mips maintainers.

coregrind/pub_core_libcassert.h
coregrind/m_libcassert.c
* void VG_(show_sched_status):
renamed Bool valgrind_stack_usage to Bool stack_usage
if stack_usage, shows both the valgrind stack usage and
the client stack boundaries
coregrind/m_scheduler/scheduler.c
coregrind/m_gdbserver/server.c
coregrind/m_gdbserver/remote-utils.c
Updated comments in callers to VG_(show_sched_status)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14392 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
c2212188df485829ea5945a9aa58fe0c199efe60 27-Feb-2014 cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9> wire up some more system calls on s390


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13842 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
417e103e294dd59f21f1d7774ef2dfe9bc331b91 20-Feb-2014 mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9> Bug 331337 s390x WARNING: unhandled syscall: 326 (dup3)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13820 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
ddc4a18e6aeaf9124b9d86cd515e1093ff00eeed 30-Jan-2014 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for the clock_adjtime system call.

Based on a patch from Stefan Sørensen on BZ#330469.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13785 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
4f5be8cb2f8e83559648578e5d2098425a6a3068 30-Jan-2014 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Both eventfd and eventfd2 have post handlers that we were failing
to call on most platforms. Fixes BZ #330459.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13784 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 18-Oct-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates (20XY-2012 ==> 20XY-2013)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
e48a444c9dfdf8083da562e87521c54876f8edc3 08-Nov-2012 cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9> add s390 specific fix for getregset


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13112 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
f2a7bbe64a8a2e3bd91c8b9f344d8a343453b52a 04-Nov-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> factorise sys_socketcall
sys_socketcall was duplicated in syswrap-{ppc64|ppc32|arm|mips32|s390x}-linux.c
=>
* Similarly for what was done for sys_ipc, factorise the code in syswrap-linux.c
* re-enabled PRE_MEM_READ for VKI_SYS_SENDMSG and VKI_SYS_RECVMSG
(PRE_MEM_READ calls were commented out around 2003, for what
was supposed a glibc bug.
The PRE_MEM_READ calls were already re-enabled in s390x)
* s390x also had some more checking to verify the addressibility of
the args and fail the syscall with EFAULT if not addressable
=> same checks are now done for all platforms.

(tested on x86/amd64/mips32/s390x/ppc32/ppc64,
compiled for arm-android-emulator)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13104 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
4eefc8c5ad997e8d925711ebcb07afef2658100d 21-Oct-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> restructure code for future fixing of 123837 (semctl GETVAL false positive)

Regrouped identical code (except for indentation)
from syswrap-ppc64-linux.c, syswrap-ppc32-linux.c,syswrap-mips32-linux.c
syswrap-x86-linux.c, syswrap-s390x-linux.c
into
syswrap-linux.c

(compiled/regtested on x86, amd64, ppc64, mips32, s390x)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13076 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
441570b877df966241b72d7c078bc3577c98bbbc 08-Oct-2012 cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9> fix parent and child tid pointer mixup:
The linux kernel has parent tid pointer first.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13034 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
e808f812f0e7d8b2385e09959fe3a0d58c0a113d 06-Aug-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Change script to also handle IBM's copyright notice.
Update copyright notices.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12853 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
f9a16d40295669784e01a92f412b480f2733311b 28-May-2012 cborntra <cborntra@a5019735-40e9-0310-863c-91ae7b9d1cf9> Let valgrind check the tls argument if the appropriate flag is set


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12591 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
9fdca565049e35998c06d96ca97beb84d9c7f39d 17-Apr-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> add some .globl or used attribute to avoid link failures with gold linker + LTO

When doing experiment with gcc 4.7.0 and link time optimisation,
encountered link failures on amd64 which were solved by adding
.globl and used attribute.
=> added .globl in similar places for arm/x86/ppc32/s390.
Did not touch darwin (which asm seems somewhat different).




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12506 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
9a2b80d276717c327e5d3c7dad78625166df7340 25-Mar-2012 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Check whether the big lock is held before invoking pre_thread_ll_create.

If the pre_thread_ll_create tracking function would be invoked without the
big lock being held, that would trigger a race condition in the tools that
implement this tracking function.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12458 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
b46d7ada03eacf40afa41e329f66cc5a98b4d172 15-Feb-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Wire up a few more syscalls.
Patch by Christian Borntraeger (borntraeger@de.ibm.com).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12385 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
8b3a6094d817ca6677592ce7f1147eb24c1a94f4 10-Feb-2012 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Only mark data which has actually been filled in by recvmsg as defined.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12380 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
a4991237861dd834a58620b6a9eeca0e6e843f24 10-Feb-2012 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add support for the sendmmsg and recvmmsg system calls. Fixes BZ#277779.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12376 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
44bf066dc08ab60ce58d7ce1f2c26a1ad87f9887 13-Sep-2011 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix the system call wrapper for the clone system call (s390x).
Fixes #281883. Patch by Christian Borntraeger (borntraeger@de.ibm.com).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12033 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
5ba9530ab846cd5f220e25ccf53e4242e8451976 10-Aug-2011 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make sure the post handler for mincore is called in amd64 and s390 as
it already was on other platforms. Fix to #279795.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11959 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
50bd6bf80ffbb87b90a8cb8316ee8b7c74ad343d 08-Jun-2011 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix perf_event open on s390.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11808 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
6c591e15c1d6402a2a755310f005f795b68e7e38 11-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Create new module m_libcsetjmp, which wraps up uses of
__builtin_setjmp and __builtin_longjmp so that they can be selectively
replaced, on a platform by platform basis. Does not change any
functionality. Related to #259977.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11687 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c
b5b87408c0c99f9f6938d8cd921e2a5f420577c4 07-Mar-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a port to IBM z/Architecture (s390x) running Linux -- Valgrind
side components. (Florian Krohm <britzel@acm.org> and Christian
Borntraeger <borntraeger@de.ibm.com>). Fixes #243404.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11604 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/coregrind/m_syswrap/syswrap-s390x-linux.c