Attention is currently required from: Subrata Banik, Kane Chen, Tim Wawrzynczak, Arthur Heymans.
2 comments:
File src/cpu/x86/mp_init.c:
static void store_ap_busy(bool *ap_busy_flag, bool val)
{
asm volatile ("mov %1, %0\n"
: "=m" (*ap_busy_flag)
: "r" (val)
: "memory"
);
}
static bool read_ap_busy(bool *ap_busy_flag)
{
bool ret;
asm volatile ("mov %1, %0\n"
: "=r" (ret)
: "m" (*ap_busy_flag)
: "memory"
);
return ret;
}
Since bool == int compiler-wise I think the atomic_t type & ops will work fine.
if (lcb.logical_cpu_number && (cur_cpu !=
lcb.logical_cpu_number))
continue;
Here you'll skip clearing the busy bit. I think it will be easier if you set & clear the busy bit from the APs instead of from the BSP call.
To view, visit change 63566. To unsubscribe, or for help writing mail filters, visit settings.