Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
244f69f
x86/um: nommu: elf loader for fdpic
thehajime Dec 4, 2024
5c5ccfb
um: decouple MMU specific code from the common part
thehajime Sep 17, 2025
c9f8326
um: nommu: memory handling
thehajime Dec 7, 2024
ef27e16
x86/um: nommu: syscall handling
thehajime Jun 21, 2025
ae93b42
um: nommu: seccomp syscalls hook
thehajime Jun 9, 2025
d7dd846
x86/um: nommu: process/thread handling
thehajime Dec 12, 2024
7916151
um: nommu: configure fs register on host syscall invocation
thehajime Feb 4, 2026
a5e8cbf
x86/um/vdso: nommu: vdso memory update
thehajime Dec 5, 2024
61e91f5
x86/um: nommu: signal handling
thehajime Sep 17, 2025
bdcaea6
um: change machine name for uname output
thehajime Sep 17, 2024
4c3a861
um: nommu: disable SMP on nommu UML
thehajime Nov 2, 2025
6acbb64
um: nommu: add documentation of nommu UML
thehajime Jan 17, 2025
8d06930
um: nommu: plug nommu code into build system
thehajime Dec 5, 2024
91d9cbe
kbuild: userprogs: also inherit byte order and ABI from kernel
t-8ch Jun 26, 2025
9dc5035
kbuild: doc: add label for userprogs section
t-8ch Jun 26, 2025
6685610
init: re-add CONFIG_CC_CAN_LINK_STATIC
t-8ch Jun 26, 2025
02000dd
init: add nolibc build support
t-8ch Jun 26, 2025
2acee31
fs,fork,exit: export symbols necessary for KUnit UAPI support
t-8ch Jun 26, 2025
b58bfa6
kunit: tool: Don't overwrite test status based on subtest counts
t-8ch Jun 26, 2025
3cf6ba6
kunit: tool: Parse skipped tests from kselftest.h
t-8ch Jun 26, 2025
f1212ca
kunit: qemu_configs: loongarch: Enable LSX/LSAX
t-8ch Jun 26, 2025
f57bc1f
kunit: Introduce UAPI testing framework
t-8ch Jun 26, 2025
74a646a
kunit: uapi: Add example for UAPI tests
t-8ch Jun 26, 2025
d63de0a
kunit: uapi: Introduce preinit executable
t-8ch Jun 26, 2025
ddfcea1
kunit: uapi: Validate usability of /proc
t-8ch Jun 26, 2025
3c0d3fc
tools/nolibc: add sigaction()
benzea Jun 26, 2025
fbd885d
um: add a mcontext FP register handling test
benzea Jun 26, 2025
8aeab48
kunit: uapi: use ccflag/ldflag -static-pie for nommu build
thehajime Sep 15, 2025
b1ce788
fs: binfmt_elf_efpic: add architecture hook elf_arch_finalize_exec
thehajime Sep 14, 2024
82ab5a1
x86/um: nommu: syscall translation by zpoline
thehajime Dec 5, 2024
71c89e9
um: nommu: set fs register in signal handler
thehajime Feb 4, 2026
210e35b
gh action
thehajime Nov 2, 2025
e42abab
fixup gh
thehajime Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
FROM alpine:3.20.3

ARG MODE=
ADD vmlinux /root/.
ADD inittab /etc/inittab
RUN mkdir /etc/init.d
ADD rcS /etc/init.d/.
RUN sed "s/\'/\"/g" /etc/profile > /.profile


ADD bench.sh /
ADD iperf3.sh /root/
ADD netperf-bench.sh /root/
ADD iperf3.static /root/
ADD do_getpid /root/.
ADD clone /root/.
ADD futex /root/.
ADD nullptr /root/.
ADD ctest /root/.
ADD stackp /root/.
ADD init_array /root/.
ADD entropy /root/.
ADD locale /root/.
ADD vdso_test /root/.
ADD pthread /root/.
ADD test-signal-restore /root/.
ADD Makefile /root/.
ADD lmbench2/ /lmbench2
ADD lmbench_run.sh /lmbench2/bin/x86_64-linux-gnulibc1/
ADD netperf /root/.


RUN apk update && apk add utmps-libs libtirpc curl make iperf3

RUN if [[ ${MODE} == "um-nommu" ]]; then mkdir -p setup && cd setup && curl -L -o output.zip \
'https://gitlab.alpinelinux.org/thehajime/aports/-/jobs/2226372/artifacts/download?file_type=archive' \
&& unzip output.zip ; fi
RUN if [[ ${MODE} == "um-nommu" ]]; then apk add --allow-untrusted \
setup/packages/main/x86_64/busybox-nommu-1.36.1-r29.apk \
setup/packages/main/x86_64/musl-nommu-1.2.5-r0.apk && rm -rf setup; fi

# for ifupdown
RUN mkdir -p /etc/network
ADD interfaces /etc/network/.

# XXX
RUN mkdir -p /usr/share/udhcpc
ADD default.script /usr/share/udhcpc/.
RUN chmod +x /usr/share/udhcpc/default.script

ENTRYPOINT ["/root/vmlinux", "vec0:transport=raw,ifname=eth0,depth=128,gro=1", "root=/dev/root", "rootflags=/", "rootfstype=hostfs", "rw", "mem=1024m", "loglevel=0", "init=/sbin/init"]
35 changes: 35 additions & 0 deletions .github/workflows/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
SRCS := clone.c futex.c nullptr.c ctest.c stackp.c do_getpid.c init_array.c entropy.c locale.c vdso_test.c pthread.c test-signal-restore.c
BKUP := exit.c noop.c
TARGETS := $(SRCS:.c=)

MASTER_CC ?= docker run -it --rm -v /dev/shm:/dev/shm -v /home:/home -v /tmp:/tmp --user tazaki -w `pwd` alpine-local:3.20.3 cc
CC=${MASTER_CC}

CFLAGS_exit = -nostdlib -pie -fPIE -fomit-frame-pointer
CFLAGS += -g -O0 -static-pie
all: ${TARGETS}

tests: ${TARGETS}
set +x
./clone host
./futex
./nullptr 1 0 || RET=$$? ; echo "code="$$RET && if [ "$$RET" -ne "139" ] ; then false ; fi
./nullptr 1 1 || RET=$$? ; echo "code="$$RET && if [ "$$RET" -ne "11" -a "$$RET" -ne "139" ] ; then false ; fi
./nullptr 0 0 || RET=$$? ; echo "code="$$RET && if [ "$$RET" -ne "139" ] ; then false ; fi
./nullptr 0 1 || RET=$$? ; echo "code="$$RET && if [ "$$RET" -ne "11" -a "$$RET" -ne "139" ] ; then false ; fi
./nullptr 2 0 || RET=$$? ; echo "code="$$RET && if [ "$$RET" -ne "136" ] ; then false ; fi
./nullptr 2 1 || RET=$$? ; echo "code="$$RET && if [ "$$RET" -ne "11" -a "$$RET" -ne "136" ] ; then false ; fi
./nullptr
echo "test" | ./ctest
./stackp
./entropy 10000
./locale
./vdso_test -c 10000
./test-signal-restore
./pthread
./pthread 100
./pthread 100 1
set -x

clean:
rm -f ${TARGETS}
19 changes: 19 additions & 0 deletions .github/workflows/bench.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

mount proc /proc -t proc
export PATH=/home:/sbin:/usr/sbin:/bin:/usr/bin


cd /lmbench2/bin/x86_64-linux-gnulibc1
sh lmbench_run.sh

/root/do_getpid -c 10000

# test umh (usermode helper) to exec `modprobe`
ifconfig eth10

make -C /root tests
RET=$?
echo $RET
echo $RET > /proc/exitcode
halt -f
Loading
Loading