Correct the Kconfig with 64BIT condition instead of 64_BIT.
Slightly refine the if condition as they are mutually exclusive.
Signed-off-by: Jaxson Han <jaxson.han@arm.com>
In some cases, when GitHub CI is running several Qemu processes,
each with heavy loads, SMP tests have shown some flakiness. This
exhibits itself as something like
```
... pthread_pressure on qemu_riscv32 failed (Timeout)
```
That is actually not at all limited to POSIX or any particular
architecture, but is mainly to do with the host scheduler and
perhaps memory barrier operations being lost in ISA translation
by Qemu.
Collectively, we can refer to these issues as "scheduler noise".
To reduce scheduler noise in the `pthread_pressure` testsuite,
enable `CONFIG_PTHREAD_CREATE_BARRIER` in `testcase.yaml`.
Note: end-users will likely not experience the need to enable
this in `prj.conf`. E.g. the following basic test demonstrates
0 failures locallly.
```
TEST=tests/posix/pthread_pressure
twister --build-only -T $TEST &>/dev/null
FAIL=0
for ((i=0; i < 100; i++)); do
echo "Run $((i+1))/100"
twister --test-only -T $TEST &>/dev/null
if [ $? -ne 0 ]; then
FAIL=$((FAIL+1))
echo "Failed $FAIL times"
fi
done
echo "Failure Rate: $((FAIL))/100"
```
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Recently, a race condition was discovered in `pthread_create()`
and `pthread_join()` that would trigger an assertion in
`kernel/sched.c` of the form below.
```
aborted _current back from dead
```
This was mainly observed in Qemu. Unfortunately, Qemu SMP
platforms exhibit a real and measurable "scheduler noise"
which makes testing rather difficult.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>