| History log of /src/tests/kernel/arch |
| Revision | Date | Author | Comments |
| 1.4 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.3 | 22-Feb-2017 |
kamil | Add kernel/arch/x86 ATF tests for CPU Debug Registers for amd64 and i386
This moves kernel/arch/amd64 tests, the ones to be shared between amd64 and i386, into kernel/arch/x86. This covers all Debug Register tests.
kernel/arch/amd64 is reduced to regs1 kernel/arch/i386 is reduced to regs1
kernel/arch/x86 tests: - dbregs_print - dbregs_preserve_dr0 - dbregs_preserve_dr1 - dbregs_preserve_dr2 - dbregs_preserve_dr3 - dbregs_preserve_dr0_yield - dbregs_preserve_dr1_yield - dbregs_preserve_dr2_yield - dbregs_preserve_dr3_yield - dbregs_preserve_dr0_continued - dbregs_preserve_dr1_continued - dbregs_preserve_dr2_continued - dbregs_preserve_dr3_continued - dbregs_dr0_trap_variable_writeonly_byte - dbregs_dr1_trap_variable_writeonly_byte - dbregs_dr2_trap_variable_writeonly_byte - dbregs_dr3_trap_variable_writeonly_byte - dbregs_dr0_trap_variable_writeonly_2bytes - dbregs_dr1_trap_variable_writeonly_2bytes - dbregs_dr2_trap_variable_writeonly_2bytes - dbregs_dr3_trap_variable_writeonly_2bytes - dbregs_dr0_trap_variable_writeonly_4bytes - dbregs_dr1_trap_variable_writeonly_4bytes - dbregs_dr2_trap_variable_writeonly_4bytes - dbregs_dr3_trap_variable_writeonly_4bytes - dbregs_dr0_trap_variable_readwrite_write_byte - dbregs_dr1_trap_variable_readwrite_write_byte - dbregs_dr2_trap_variable_readwrite_write_byte - dbregs_dr3_trap_variable_readwrite_write_byte - dbregs_dr0_trap_variable_readwrite_write_2bytes - dbregs_dr1_trap_variable_readwrite_write_2bytes - dbregs_dr2_trap_variable_readwrite_write_2bytes - dbregs_dr3_trap_variable_readwrite_write_2bytes - dbregs_dr0_trap_variable_readwrite_write_4bytes - dbregs_dr1_trap_variable_readwrite_write_4bytes - dbregs_dr2_trap_variable_readwrite_write_4bytes - dbregs_dr3_trap_variable_readwrite_write_4bytes - dbregs_dr0_trap_variable_readwrite_read_byte - dbregs_dr1_trap_variable_readwrite_read_byte - dbregs_dr2_trap_variable_readwrite_read_byte - dbregs_dr3_trap_variable_readwrite_read_byte - dbregs_dr0_trap_variable_readwrite_read_2bytes - dbregs_dr1_trap_variable_readwrite_read_2bytes - dbregs_dr2_trap_variable_readwrite_read_2bytes - dbregs_dr3_trap_variable_readwrite_read_2bytes - dbregs_dr0_trap_variable_readwrite_read_4bytes - dbregs_dr1_trap_variable_readwrite_read_4bytes - dbregs_dr2_trap_variable_readwrite_read_4bytes - dbregs_dr3_trap_variable_readwrite_read_4bytes - dbregs_dr0_trap_code - dbregs_dr1_trap_code - dbregs_dr2_trap_code - dbregs_dr3_trap_code - dbregs_dr0_dont_inherit_lwp - dbregs_dr1_dont_inherit_lwp - dbregs_dr2_dont_inherit_lwp - dbregs_dr3_dont_inherit_lwp - dbregs_dr6_dont_inherit_lwp - dbregs_dr7_dont_inherit_lwp - dbregs_dr0_dont_inherit_execve - dbregs_dr1_dont_inherit_execve - dbregs_dr2_dont_inherit_execve - dbregs_dr3_dont_inherit_execve - dbregs_dr6_dont_inherit_execve - dbregs_dr7_dont_inherit_execve
Sponsored by <The NetBSD Foundation>
|
| 1.2 | 13-Dec-2016 |
kamil | branches: 1.2.2; 1.2.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 02-Dec-2016 |
kamil | Refactor location of amd64-specific ATF tests to new dir kernel/arch/amd64
Rename - tests/kernel/t_ptrace_amd64_wait.c to - tests/kernel/arch/amd64/t_ptrace_wait.c and adapt appropriate files accordingly.
New directory will be used for more amd64-specific tests, verifying the MD parts of the kernel.
Remove old entries from distrib/sets/lists as they were added a while ago.
Sponsored by <The NetBSD Foundation>
|
| 1.2.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.2.2.4 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.2.2.3 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.2.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.2.2.1 | 13-Dec-2016 |
pgoyette | file Makefile was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 02-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Refactor location of amd64-specific ATF tests to new dir kernel/arch/amd64
Rename - tests/kernel/t_ptrace_amd64_wait.c to - tests/kernel/arch/amd64/t_ptrace_wait.c and adapt appropriate files accordingly.
New directory will be used for more amd64-specific tests, verifying the MD parts of the kernel.
Remove old entries from distrib/sets/lists as they were added a while ago.
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 02-Dec-2016 |
pgoyette | file Makefile.inc was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 08-Jun-2025 |
christos | branches: 1.2.4; try to fix the clang build: :pg_hi21: is a gas extension.
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.2.4.1 | 08-Jun-2025 |
perseant | file contextspfunc.S was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.1 | 27-Feb-2025 |
riastradh | branches: 1.1.4; Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.1.4.1 | 27-Feb-2025 |
perseant | file execregs.c was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.1 | 27-Feb-2025 |
riastradh | branches: 1.1.4; Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.1.4.1 | 27-Feb-2025 |
perseant | file execregs.h was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.3 | 04-Jun-2025 |
christos | branches: 1.3.4; try to fix the clang build: :pg_hi21: is a gas extension.
|
| 1.2 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Check sp on elf constructor/destructor entry too.
XXX Should maybe test both .ctors/.dtors and .init/fini_array, but for now I'm limiting this to whatever gcc uses by default for each architecture.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | Test stack pointer alignment in various scenarios.
1. elf entry point 2. main function 3. signal handler
Extend the test to amd64 while here -- fortunately both aarch64 and amd64 pass, but others, such as mips, will fail:
PR kern/59327: user stack pointer is not aligned properly
This extends the test that was previously written for:
PR kern/58149: aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
With any luck, this will help us to systematically eradicate misaligned stack pointers as hypothesized to be the reason for:
PR port-mips/59236: Multiple segfaults in erlite3 boot
|
| 1.3.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.3.4.1 | 04-Jun-2025 |
perseant | file execsp.S was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.2 | 25-Apr-2025 |
riastradh | branches: 1.2.4; t_execregs: On aarch64, make sure to align stack to 16 bytes.
Should avoid SIGBUS with strict alignment (SCTLR_EL0.A bit).
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.2.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.2.4.1 | 25-Apr-2025 |
perseant | file h_execregs.S was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.2 | 08-Jun-2025 |
christos | branches: 1.2.4; try to fix the clang build: :pg_hi21: is a gas extension.
|
| 1.1 | 20-Apr-2025 |
riastradh | Test stack pointer alignment in various scenarios.
1. elf entry point 2. main function 3. signal handler
Extend the test to amd64 while here -- fortunately both aarch64 and amd64 pass, but others, such as mips, will fail:
PR kern/59327: user stack pointer is not aligned properly
This extends the test that was previously written for:
PR kern/58149: aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
With any luck, this will help us to systematically eradicate misaligned stack pointers as hypothesized to be the reason for:
PR port-mips/59236: Multiple segfaults in erlite3 boot
|
| 1.2.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.2.4.1 | 08-Jun-2025 |
perseant | file signalsphandler.S was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.2 | 20-Apr-2025 |
riastradh | Test stack pointer alignment in various scenarios.
1. elf entry point 2. main function 3. signal handler
Extend the test to amd64 while here -- fortunately both aarch64 and amd64 pass, but others, such as mips, will fail:
PR kern/59327: user stack pointer is not aligned properly
This extends the test that was previously written for:
PR kern/58149: aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
With any luck, this will help us to systematically eradicate misaligned stack pointers as hypothesized to be the reason for:
PR port-mips/59236: Multiple segfaults in erlite3 boot
|
| 1.1 | 22-Apr-2024 |
pho | branches: 1.1.2; Add a test for kern/58149
aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
|
| 1.1.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.1 | 21-Apr-2025 |
riastradh | branches: 1.1.4; t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1.4.2 | 02-Aug-2025 |
perseant | Sync with HEAD
|
| 1.1.4.1 | 21-Apr-2025 |
perseant | file threadspfunc.S was added on branch perseant-exfatfs on 2025-08-02 05:58:02 +0000
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Fix main function on alpha so it returns zero.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add alpha support.
Turns out alpha too gets confused by by misaligned sigaltstack, and by misaligned sp in the interrupted code, when a signal is delivered.
PR kern/59327: user stack pointer is not aligned properly
PR kern/58149: Cannot return from a signal handler if SP was misaligned when the signal arrived
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add alpha support.
Turns out alpha too gets confused by by misaligned sigaltstack, and by misaligned sp in the interrupted code, when a signal is delivered.
PR kern/59327: user stack pointer is not aligned properly
PR kern/58149: Cannot return from a signal handler if SP was misaligned when the signal arrived
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add alpha support.
Turns out alpha too gets confused by by misaligned sigaltstack, and by misaligned sp in the interrupted code, when a signal is delivered.
PR kern/59327: user stack pointer is not aligned properly
PR kern/58149: Cannot return from a signal handler if SP was misaligned when the signal arrived
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 07-May-2025 |
uwe | arm: asm.h - change GOT_INIT to take the normal asm label
Don't pass the label to use for the "current address" as the macro parameter. It obscures its purpose and makes the use of local labels extremely unobvious, so you are forced to invent a name that is mostly useless otherwise:
GOT_INIT(r3, .Lgot.execsp_start, .Lpc.execsp_start) GOT_INITSYM(.Lgot.execsp_start, .Lpc.execsp_start) vs. 0: GOT_INIT(r3, .Lgot.execsp_start) GOT_INITSYM(.Lgot.execsp_start, 0b)
Same object code is generated.
|
| 1.1 | 25-Apr-2025 |
riastradh | t_signal_and_sp: Draft add arm support.
Compile-tested only, let's see how this goes.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.4 | 07-May-2025 |
uwe | arm: asm.h - change GOT_INIT to take the normal asm label
Don't pass the label to use for the "current address" as the macro parameter. It obscures its purpose and makes the use of local labels extremely unobvious, so you are forced to invent a name that is mostly useless otherwise:
GOT_INIT(r3, .Lgot.execsp_start, .Lpc.execsp_start) GOT_INITSYM(.Lgot.execsp_start, .Lpc.execsp_start) vs. 0: GOT_INIT(r3, .Lgot.execsp_start) GOT_INITSYM(.Lgot.execsp_start, 0b)
Same object code is generated.
|
| 1.3 | 28-Apr-2025 |
martin | Make main() actually return zero. From Riastradh. PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 27-Apr-2025 |
riastradh | t_signal_and_sp arm/execsp.S: Try using registers that aren't in use.
The first draft of this was instead using all the registers that _are_ in use on entry to the elf entry point, which understandably confused __start when we jumped to it after trashing all its inputs.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 25-Apr-2025 |
riastradh | t_signal_and_sp: Draft add arm support.
Compile-tested only, let's see how this goes.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.3 | 07-May-2025 |
uwe | arm: asm.h - change GOT_INIT to take the normal asm label
Don't pass the label to use for the "current address" as the macro parameter. It obscures its purpose and makes the use of local labels extremely unobvious, so you are forced to invent a name that is mostly useless otherwise:
GOT_INIT(r3, .Lgot.execsp_start, .Lpc.execsp_start) GOT_INITSYM(.Lgot.execsp_start, .Lpc.execsp_start) vs. 0: GOT_INIT(r3, .Lgot.execsp_start) GOT_INITSYM(.Lgot.execsp_start, 0b)
Same object code is generated.
|
| 1.2 | 27-Apr-2025 |
riastradh | t_signal_and_sp arm/signalsphandler.S: Fix pasto.
Copied & pasted this from contextspfunc.S and forgot to change one reference to contextsp to signalsp instead, oops.
Should resolve:
*** Check failed: /work/src/tests/kernel/t_signal_and_sp.c:440: signalsp != NULL not met
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 25-Apr-2025 |
riastradh | t_signal_and_sp: Draft add arm support.
Compile-tested only, let's see how this goes.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 25-Apr-2025 |
riastradh | t_signal_and_sp: Draft add arm support.
Compile-tested only, let's see how this goes.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 25-Apr-2025 |
riastradh | t_signal_and_sp: Draft add arm support.
Compile-tested only, let's see how this goes.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Fix threadsp test to actually test the thread sp.
Copypasta error had it testing alignment of signalsp instead, and since it was always null, that always passed. Mark it xfail on mips now as originally expected.
While here, deal with some other issues:
- Test was failing on riscv for me because I haven't updated this `current' VM in a while so it didn't have the fix for 57721 (pthread_attr_setstack incorrectly adjusts address as if for guard page). Don't mark it xfail.
- Fix amd64 threadspfunc.S to adjust rsp like in all the other amd64 stubs so it's congruent to 0 mod 16, not congruent to 8 mod 16.
- Fix hppa contextspfunc.S to use separate registers for separate purposes at the same time, instead of expecting addil to preserve %r1 AND yield a result we use later in %r1.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 28-Feb-2025 |
riastradh | t_execregs: Test some more registers on hppa.
Looks like we're missing zeroing of floating-point registers too, as well as the carry/borrow and divide step correction bits in the semi-secret PSW register.
Unfortunately, while investigating this, I discovered that qemu's hppa implementation doesn't implement fpu traps even if the fpu is disabled (relevant bits of CR 10 `CCR', Coprocessor Control Register, are cleared), which breaks fpu switching on NetBSD. So I can't test properly this myself. We should maybe just change NetBSD from lazy fpu switching to eager fpu switching anyway to thwart Spectre-class attacks if there's any hppa hardware out there that does speculative execution.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.2 | 28-Feb-2025 |
riastradh | t_execregs: Test some more registers on hppa.
Looks like we're missing zeroing of floating-point registers too, as well as the carry/borrow and divide step correction bits in the semi-secret PSW register.
Unfortunately, while investigating this, I discovered that qemu's hppa implementation doesn't implement fpu traps even if the fpu is disabled (relevant bits of CR 10 `CCR', Coprocessor Control Register, are cleared), which breaks fpu switching on NetBSD. So I can't test properly this myself. We should maybe just change NetBSD from lazy fpu switching to eager fpu switching anyway to thwart Spectre-class attacks if there's any hppa hardware out there that does speculative execution.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add hppa support.
Fortunately, hppa -- which uses monster 64-byte(!) stack alignment -- looks good already.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 28-Feb-2025 |
riastradh | t_execregs: Test some more registers on hppa.
Looks like we're missing zeroing of floating-point registers too, as well as the carry/borrow and divide step correction bits in the semi-secret PSW register.
Unfortunately, while investigating this, I discovered that qemu's hppa implementation doesn't implement fpu traps even if the fpu is disabled (relevant bits of CR 10 `CCR', Coprocessor Control Register, are cleared), which breaks fpu switching on NetBSD. So I can't test properly this myself. We should maybe just change NetBSD from lazy fpu switching to eager fpu switching anyway to thwart Spectre-class attacks if there's any hppa hardware out there that does speculative execution.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add hppa support.
Fortunately, hppa -- which uses monster 64-byte(!) stack alignment -- looks good already.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add hppa support.
Fortunately, hppa -- which uses monster 64-byte(!) stack alignment -- looks good already.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file Makefile was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file Makefile.inc was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add i386 support.
i386 too is confused by misaligned sigaltstack or esp on interrupt.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add i386 support.
i386 too is confused by misaligned sigaltstack or esp on interrupt.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add i386 support.
i386 too is confused by misaligned sigaltstack or esp on interrupt.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.3 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.2 | 13-Jan-2017 |
christos | branches: 1.2.2; Don't play with "../.." in includes for h_macros.h; deal with it centrally. Minor fixes.
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.2.4 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.3 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file t_ptrace_wait.c was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2.2.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file t_ptrace_wait3.c was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file t_ptrace_wait4.c was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file t_ptrace_wait6.c was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file t_ptrace_waitid.c was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.2 | 02-Apr-2017 |
kamil | Remove kernel/arch/{amd64,i386,x86} tests
These files were merged with kernel/t_ptrace_wait*
This removes MD test files.
Sponsored by <The NetBSD Foundation>
|
| 1.1 | 13-Dec-2016 |
kamil | branches: 1.1.2; 1.1.4; Add regs1 in arch/i386/t_ptrace_wait*
regs1: Call PT_GETREGS and iterate over General Purpose registers
Sponsored by <The NetBSD Foundation>
|
| 1.1.4.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
| 1.1.2.3 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
| 1.1.2.2 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
| 1.1.2.1 | 13-Dec-2016 |
pgoyette | file t_ptrace_waitpid.c was added on branch pgoyette-localcount on 2017-01-07 08:56:54 +0000
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 27-Apr-2025 |
riastradh | t_signal_and_sp: Try to fix mips o32 tests.
Evidently, for o32, PIC_PROLOGUE (which expands to .cpload) must be the very first instruction of the function, or else it will get the $gp calculation wrong.
Since it seems that the mips PIC_PROLOGUE does not, after all, mess with the stack, let's just dispense with the temporary copy of sp in t0 which I had added in paranoia over what magic might happen inside PIC_PROLOGUE. (Such paranoia is not entirely unjustified -- for example, the sh3 PIC_PROLOGUE _does_ push data on the stack, though this can be bypassed with PIC_PROLOGUE_NOSAVE.)
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 27-Apr-2025 |
riastradh | t_signal_and_sp: Try to fix mips o32 tests.
Evidently, for o32, PIC_PROLOGUE (which expands to .cpload) must be the very first instruction of the function, or else it will get the $gp calculation wrong.
Since it seems that the mips PIC_PROLOGUE does not, after all, mess with the stack, let's just dispense with the temporary copy of sp in t0 which I had added in paranoia over what magic might happen inside PIC_PROLOGUE. (Such paranoia is not entirely unjustified -- for example, the sh3 PIC_PROLOGUE _does_ push data on the stack, though this can be bypassed with PIC_PROLOGUE_NOSAVE.)
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add mips support.
PR kern/59327: user stack pointer is not aligned properly
PR kern/58149: Cannot return from a signal handler if SP was misaligned when the signal arrived
Stack pointer misaligment in some cases hypothesized to be a possible cause of:
PR port-evbmips/59236: Multiple segfaults in erlite3 boot
|
| 1.2 | 27-Apr-2025 |
riastradh | t_signal_and_sp: Try to fix mips o32 tests.
Evidently, for o32, PIC_PROLOGUE (which expands to .cpload) must be the very first instruction of the function, or else it will get the $gp calculation wrong.
Since it seems that the mips PIC_PROLOGUE does not, after all, mess with the stack, let's just dispense with the temporary copy of sp in t0 which I had added in paranoia over what magic might happen inside PIC_PROLOGUE. (Such paranoia is not entirely unjustified -- for example, the sh3 PIC_PROLOGUE _does_ push data on the stack, though this can be bypassed with PIC_PROLOGUE_NOSAVE.)
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add mips support.
PR kern/59327: user stack pointer is not aligned properly
PR kern/58149: Cannot return from a signal handler if SP was misaligned when the signal arrived
Stack pointer misaligment in some cases hypothesized to be a possible cause of:
PR port-evbmips/59236: Multiple segfaults in erlite3 boot
|
| 1.2 | 21-Apr-2025 |
rin | t_signal_and_sp: mips: Fix {MISALIGN,FIX}_SP() for !o32
Use `daddiu` instead of `addiu` as done in <mips/asm.h>.
Otherwise, +/-1 is added to lower-32-bits of sp, and then results are sign-extended to whole-64-bits register (oops!!).
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add mips support.
PR kern/59327: user stack pointer is not aligned properly
PR kern/58149: Cannot return from a signal handler if SP was misaligned when the signal arrived
Stack pointer misaligment in some cases hypothesized to be a possible cause of:
PR port-evbmips/59236: Multiple segfaults in erlite3 boot
|
| 1.2 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Fix threadspfunc on mips.
1. Writing branch delay slots requires `.set noreorder'. Got used to reading and writing RISCy code with branch delay slots ages ago, still haven't gotten used to having to tell the assembler `no, I really want you to assemble the instructions I wrote, as I wrote them, and not some other instructions in some other order'.
2. Return value is v0 on mips, not a0 like modern mips^W^Wriscv.
With this, the threadsp test passes on mips.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_sp: Add riscv support.
riscv64 looks good, haven't tested riscv32.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_sp: Add riscv support.
riscv64 looks good, haven't tested riscv32.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_sp: Add riscv support.
riscv64 looks good, haven't tested riscv32.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 26-Apr-2025 |
uwe | t_signal_and_sp: add sh3 support
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 26-Apr-2025 |
uwe | t_signal_and_sp: add sh3 support
PR kern/59327: user stack pointer is not aligned properly
|
| 1.2 | 27-Apr-2025 |
riastradh | t_signal_and_sp: Fix RCSID in sh3/execsp.S.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 26-Apr-2025 |
uwe | t_signal_and_sp: add sh3 support
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 27-Apr-2025 |
uwe | t_execregs: implement sh3 h_execregs helper
Just dumps mcontext __gregset_t for now. Not yet hooked into the build.
|
| 1.2 | 26-Apr-2025 |
uwe | t_signal_and_sp: sh3 - mark expected failures
misaligned_sp_and_signal and signalsp_sigaltstack currently fail on sh3 b/c the stack is not force-aligned for signal handlers. Make signalsphandler more robust by not touching the stack - we can save r12 (GOT) in a register.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 26-Apr-2025 |
uwe | t_signal_and_sp: add sh3 support
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 26-Apr-2025 |
uwe | t_signal_and_sp: add sh3 support
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 26-Apr-2025 |
uwe | t_signal_and_sp: add sh3 support
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add sparc support.
Seems fine! Would be nice if we had a well-known macro to abstract PIC vs non-PIC `sethi/ori/(ld)' like I invented here, to reduce needless #ifdef __PIC__ conditionals.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add sparc support.
Seems fine! Would be nice if we had a well-known macro to abstract PIC vs non-PIC `sethi/ori/(ld)' like I invented here, to reduce needless #ifdef __PIC__ conditionals.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Add sparc support.
Seems fine! Would be nice if we had a well-known macro to abstract PIC vs non-PIC `sethi/ori/(ld)' like I invented here, to reduce needless #ifdef __PIC__ conditionals.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.2 | 20-Apr-2025 |
riastradh | t_signal_and_sp: Check sp on elf constructor/destructor entry too.
XXX Should maybe test both .ctors/.dtors and .init/fini_array, but for now I'm limiting this to whatever gcc uses by default for each architecture.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 20-Apr-2025 |
riastradh | Test stack pointer alignment in various scenarios.
1. elf entry point 2. main function 3. signal handler
Extend the test to amd64 while here -- fortunately both aarch64 and amd64 pass, but others, such as mips, will fail:
PR kern/59327: user stack pointer is not aligned properly
This extends the test that was previously written for:
PR kern/58149: aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
With any luck, this will help us to systematically eradicate misaligned stack pointers as hypothesized to be the reason for:
PR port-mips/59236: Multiple segfaults in erlite3 boot
|
| 1.1 | 27-Feb-2025 |
riastradh | Test whether exec/spawn will zero registers.
Currently implemented only for a handful of architectures; should extend this to all the others, and extend as appropriate if we find more register content is worth testing (like maybe vector registers, but they are managed differently anyway and less likely to leak).
VAX test contributed (and tested) by Kalvis Duckmanton, with some tweaks by me; the others written and tested by me. IA64 skipped, even though I suspect it _would_ leak if the kernel code ran as is, because I have no way to test it.
PR kern/59084: exec/spawn leaks register content
|
| 1.1 | 20-Apr-2025 |
riastradh | Test stack pointer alignment in various scenarios.
1. elf entry point 2. main function 3. signal handler
Extend the test to amd64 while here -- fortunately both aarch64 and amd64 pass, but others, such as mips, will fail:
PR kern/59327: user stack pointer is not aligned properly
This extends the test that was previously written for:
PR kern/58149: aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
With any luck, this will help us to systematically eradicate misaligned stack pointers as hypothesized to be the reason for:
PR port-mips/59236: Multiple segfaults in erlite3 boot
|
| 1.1 | 20-Apr-2025 |
riastradh | Test stack pointer alignment in various scenarios.
1. elf entry point 2. main function 3. signal handler
Extend the test to amd64 while here -- fortunately both aarch64 and amd64 pass, but others, such as mips, will fail:
PR kern/59327: user stack pointer is not aligned properly
This extends the test that was previously written for:
PR kern/58149: aarch64: Cannot return from a signal handler if SP was misaligned when the signal arrived
With any luck, this will help us to systematically eradicate misaligned stack pointers as hypothesized to be the reason for:
PR port-mips/59236: Multiple segfaults in erlite3 boot
|
| 1.2 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Fix threadsp test to actually test the thread sp.
Copypasta error had it testing alignment of signalsp instead, and since it was always null, that always passed. Mark it xfail on mips now as originally expected.
While here, deal with some other issues:
- Test was failing on riscv for me because I haven't updated this `current' VM in a while so it didn't have the fix for 57721 (pthread_attr_setstack incorrectly adjusts address as if for guard page). Don't mark it xfail.
- Fix amd64 threadspfunc.S to adjust rsp like in all the other amd64 stubs so it's congruent to 0 mod 16, not congruent to 8 mod 16.
- Fix hppa contextspfunc.S to use separate registers for separate purposes at the same time, instead of expecting addil to preserve %r1 AND yield a result we use later in %r1.
PR kern/59327: user stack pointer is not aligned properly
|
| 1.1 | 21-Apr-2025 |
riastradh | t_signal_and_sp: Test makecontext and pthread_create stack alignment.
PR kern/59327: user stack pointer is not aligned properly
|