Skip to content

Commit

Permalink
fixup gh
Browse files Browse the repository at this point in the history
  • Loading branch information
thehajime committed Oct 10, 2024
1 parent 2ac6aa7 commit 4744802
Show file tree
Hide file tree
Showing 3 changed files with 105 additions and 5 deletions.
31 changes: 28 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,26 @@ jobs:
run: |
sudo apt update -y
sudo apt install -y ccache libseccomp-dev
- name: Setup latest Alpine Linux
uses: jirutka/setup-alpine@v1
with:
branch: v3.20
packages: >
alpine-sdk
doas
libtirpc-dev
linux-headers
- name: build bench tools
run: |
git clone https://github.com/ricarkol/lmbench2.git
cd lmbench2
touch src/Makefile
touch Makefile
make
cd ..
cc .github/workflows/do_getpid.c -o do_getpid
shell: alpine.sh {0}
# --root {0}
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# with:
Expand All @@ -71,17 +91,18 @@ jobs:
- name: image for test
run: |
#container_id=$(docker create kollerr/alpine-test:latest)
container_id=$(docker create alpine:3.20.3 apk add utmps-libs)
container_id=$(docker create alpine:3.20.3 apk add utmps-libs libtirpc)
docker start $container_id
docker wait $container_id
docker logs $container_id
docker export $container_id > alpine.tar
docker rm $container_id
mnt=$(mktemp -d)
curl -L -o output.zip \
"https://gitlab.alpinelinux.org/thehajime/aports/-/jobs/1543371/artifacts/download?file_type=archive"
"https://gitlab.alpinelinux.org/thehajime/aports/-/jobs/1552615/artifacts/download?file_type=archive"
unzip output.zip
tar xfz packages/main/x86_64/busybox-nommu-1.36.1-r32.apk
tar xfz packages/main/x86_64/musl-nommu-1.2.5-r5.apk
dd if=/dev/zero of=alpine.ext4 bs=1 count=0 seek=1G
sudo chmod og+wr "alpine.ext4"
Expand All @@ -98,14 +119,18 @@ jobs:
sudo cp bin/busybox.nommu $mnt/bin/busybox
#sudo cp .github/workflows/busybox $mnt/bin/busybox
sudo cp lib/ld-musl-x86_64.so.1 $mnt/lib/
echo "/sbin/halt" >> .github/workflows/rcS
sudo mkdir -p $mnt/etc/init.d/
sudo cp .github/workflows/rcS $mnt/etc/init.d/
sudo cp .github/workflows/inittab $mnt/etc/
cat .github/workflows/bench.sh | sed "s/time //" > /tmp/bench.sh
chmod +x /tmp/bench.sh
sudo cp /tmp/bench.sh $mnt/
sudo cp .github/workflows/do_getpid.alpine $mnt/root/do_getpid
sudo cp -rpf lmbench2 $mnt/
sudo cp .github/workflows/lmbench_run.sh $mnt/lmbench2/bin/x86_64-linux-gnulibc1
#sudo cp .github/workflows/do_getpid.alpine $mnt/root/do_getpid
sudo cp do_getpid $mnt/root/do_getpid
sudo umount $mnt
- name: test-0
run: |
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/do_getpid.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#include <getopt.h>
#include <assert.h>


#ifndef BENCH_LDPRELOAD
extern pid_t do_getpid(void);

void __do_getpid(void)
{
asm volatile (".globl do_getpid");
asm volatile ("do_getpid:");
asm volatile ("movq $39, %rax");
asm volatile ("syscall");
asm volatile ("ret");
}
#else
pid_t do_getpid(void)
{
return getpid();
}
#endif

int main(int argc, char* const* argv)
{
int ch;
unsigned long loopcnt = 0;

while ((ch = getopt(argc, argv, "c:")) != -1) {
switch (ch) {
case 'c':
loopcnt = atol(optarg);
break;

default:
printf("unknown option\n");
exit(1);
}
}

if (!loopcnt) {
printf("please specify loop count by -c\n");
exit(0);
}

{
pid_t my_pid = getpid();
{
unsigned long t;
{
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
t = ts.tv_sec * 1000000000UL + ts.tv_nsec;
}
{
unsigned long i;
for (i = 0; i < loopcnt; i++)
assert(my_pid == do_getpid());
}
{
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);
t = ts.tv_sec * 1000000000UL + ts.tv_nsec - t;
}
printf("average %5lu nsec\n", t / loopcnt);
}
}

return 0;
}
6 changes: 4 additions & 2 deletions .github/workflows/lmbench_run.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
cp /usr/lib/lmbench/bin/x86_64-linux-gnu/hello /var/tmp/lmbench/hello

PATH=/usr/lib/lmbench/bin/x86_64-linux-gnu/:$PATH
PATH=/usr/lib/lmbench/bin/x86_64-linux-gnu/:/lmbench2/bin/x86_64-linux-gnulibc1:$PATH
mkdir -p /var/tmp/lmbench
cp `which hello` /var/tmp/lmbench/hello
cp `which hello` /tmp/hello

ENOUGH=10000 lat_select -n 10 file
ENOUGH=10000 lat_select -n 100 file
Expand Down

0 comments on commit 4744802

Please sign in to comment.