#include "coreboot.h"
extern bool done;
+extern coreid_t core_count;
+extern coreid_t core_max;
extern struct capref kcb;
char* get_binary_path(char* fmt, char* binary_name)
USER_PANIC_ERR(msgerr, "msgerr in boot_core_reply, exiting\n");
}
DEBUG("%s:%d: got boot_core_reply.\n", __FILE__, __LINE__);
- done = true;
+ core_count++;
+ if (core_count == core_max) {
+ done = true;
+ }
}
static errval_t add_kcb_record(uint32_t kcb_id, coreid_t core_id, char* kcb_key)
{
- errval_t err = oct_set("kcb.%d { kcb_id: %d, barrelfish_id: %"PRIuCOREID", cap_key: '%s' }",
+ errval_t err = oct_set("kcb.%d { kcb_id: %d, barrelfish_id: %"PRIuCOREID", cap_key: '%s' }",
kcb_id, kcb_id, core_id, kcb_key);
if (err_is_fail(err)) {
DEBUG_ERR(err, "oct_set");
DEBUG_ERR(err, "can not save the capability.");
return err;
}
-
+
err = add_kcb_record(coreid, coreid, kcb_key);
if (err_is_fail(err)) {
DEBUG_ERR(err, "add_kcb_record failed.");
coreid_t my_arch_id;
struct capref ipi_cap;
+coreid_t core_count = 0;
+coreid_t core_max = 0;
bool done = false;
bool benchmark_flag = false;
USER_PANIC("invalid CPU ID: %s", argv[1]);
}
+ core_count = 0;
+ if (core_step == 1) {
+ core_max = (core_to - core_from + 1);
+ } else {
+ core_max = (core_to - core_from + core_step) / core_step;
+ }
+
for (coreid_t target_id = core_from; target_id<=core_to; target_id += core_step) {
- //coreid_t target_id = (coreid_t) strtol(argv[1], NULL, 16);
assert(target_id < MAX_COREID);
archid_t target_apic_id;