On 25/09/2019 15.27, David Hildenbrand wrote: > On 20.09.19 10:03, Janosch Frank wrote: >> Testing SIGP emulation for the following order codes: >> * start >> * stop >> * restart >> * set prefix >> * store status >> * stop and store status >> * reset >> * initial reset >> * external call >> * emegergency call >> >> restart and set prefix are part of the library and needed to start >> other cpus. >> >> Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> >> --- >> s390x/Makefile | 1 + >> s390x/smp.c | 242 ++++++++++++++++++++++++++++++++++++++++++++ >> s390x/unittests.cfg | 4 + >> 3 files changed, 247 insertions(+) >> create mode 100644 s390x/smp.c >> >> diff --git a/s390x/Makefile b/s390x/Makefile >> index d83dd0b..3744372 100644 >> --- a/s390x/Makefile >> +++ b/s390x/Makefile >> @@ -15,6 +15,7 @@ tests += $(TEST_DIR)/cpumodel.elf >> tests += $(TEST_DIR)/diag288.elf >> tests += $(TEST_DIR)/stsi.elf >> tests += $(TEST_DIR)/skrf.elf >> +tests += $(TEST_DIR)/smp.elf >> tests_binary = $(patsubst %.elf,%.bin,$(tests)) >> >> all: directories test_cases test_cases_binary >> diff --git a/s390x/smp.c b/s390x/smp.c >> new file mode 100644 >> index 0000000..7032494 >> --- /dev/null >> +++ b/s390x/smp.c >> @@ -0,0 +1,242 @@ >> +/* >> + * Tests sigp emulation >> + * >> + * Copyright 2019 IBM Corp. >> + * >> + * Authors: >> + * Janosch Frank <frankja@xxxxxxxxxxxxx> >> + * >> + * This code is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU General Public License version 2. >> + */ >> +#include <libcflat.h> >> +#include <asm/asm-offsets.h> >> +#include <asm/interrupt.h> >> +#include <asm/page.h> >> +#include <asm/facility.h> >> +#include <asm-generic/barrier.h> >> +#include <asm/sigp.h> >> + >> +#include <smp.h> >> +#include <alloc_page.h> >> + >> +static int testflag = 0; >> + >> +static void cpu_loop(void) >> +{ >> + for (;;) {} > > Won't that be optimized out completely? Why? AFAIK this is the standard way to write and endless loop ... how can a compiler optimize that away? Thomas