xeonphi: wait for spawnd 0 to be up before trying to spawn on core 0
authorRoni Häcki <roni.haecki@inf.ethz.ch>
Tue, 10 Oct 2017 10:10:32 +0000 (12:10 +0200)
committerRoni Häcki <roni.haecki@inf.ethz.ch>
Tue, 10 Oct 2017 10:10:32 +0000 (12:10 +0200)
Since we now use the process manager as proxy to the spawnds on
different cores, the process manger returns an error when it does not
have a connection to the spawnd on the core it tries to spawn something

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>

usr/drivers/xeon_phi/main_card.c

index e4adb4a..c0f5769 100644 (file)
@@ -201,6 +201,11 @@ static errval_t boot_cores(void)
     err = cap_copy(coreboot_cap_in_argcn, coreboot_cap);
     assert(err_is_ok(err));
 
+    // Wait until spawnd 0 is up (since we go over proc_mgmt 
+    // that might throw a error if spawnd 0 is not up)
+    err = nameservice_blocking_lookup("spawn.0", NULL);
+    assert(err_is_ok(err));
+
     err = spawn_program_with_caps(0, "k1om/sbin/corectrl", arg, NULL, NULL_CAP,
                                   argcn_cap, 0, &new_domain);
     assert(err_is_ok(err));