Compare commits

..

1 Commits

Author SHA1 Message Date
mwojcik 872895e769 satman: support sub-subkernels, routing 2023-12-13 17:34:56 +08:00
2 changed files with 5 additions and 6 deletions

View File

@ -580,10 +580,9 @@ fn process_aux_packet(
} => { } => {
forward!(_routing_table, _destination, *rank, _repeaters, &packet, timer); forward!(_routing_table, _destination, *rank, _repeaters, &packet, timer);
// received if local subkernel started another, remote subkernel // received if local subkernel started another, remote subkernel
kernel_manager.subkernel_load_run_reply(succeeded, *self_destination); kernel_manager.subkernel_load_run_reply(succeeded);
Ok(()) Ok(())
} }
// { destination: u8, id: u32, with_exception: bool, exception_src: u8 },
drtioaux::Packet::SubkernelFinished { drtioaux::Packet::SubkernelFinished {
destination: _destination, destination: _destination,
id, id,

View File

@ -85,7 +85,6 @@ struct Message {
#[derive(PartialEq)] #[derive(PartialEq)]
enum OutMessageState { enum OutMessageState {
NoMessage, NoMessage,
MessageReady,
MessageBeingSent, MessageBeingSent,
MessageSent, MessageSent,
MessageAcknowledged, MessageAcknowledged,
@ -553,8 +552,9 @@ impl<'a> Manager<'_> {
} }
} }
pub fn subkernel_load_run_reply(&mut self, succeeded: bool, self_destination: u8) { pub fn subkernel_load_run_reply(&mut self, succeeded: bool) {
if self.session.kernel_state == KernelState::SubkernelAwaitLoad { if self.session.kernel_state == KernelState::SubkernelAwaitLoad {
self.control.tx.send(kernel::Message::SubkernelLoadRunReply { succeeded: succeeded });
self.session.kernel_state = KernelState::Running; self.session.kernel_state = KernelState::Running;
} else { } else {
warn!("received unsolicited SubkernelLoadRunReply"); warn!("received unsolicited SubkernelLoadRunReply");
@ -606,13 +606,13 @@ impl<'a> Manager<'_> {
self.control.tx.send(kernel::Message::CacheGetReply(value)); self.control.tx.send(kernel::Message::CacheGetReply(value));
} }
kernel::Message::SubkernelMsgSend { kernel::Message::SubkernelMsgSend {
id, id: _id,
destination: msg_dest, destination: msg_dest,
data, data,
} => { } => {
let msg_dest = msg_dest.or(Some(self.session.source)).unwrap(); let msg_dest = msg_dest.or(Some(self.session.source)).unwrap();
self.session.messages.accept_outgoing( self.session.messages.accept_outgoing(
id, self.session.id,
self_destination, self_destination,
msg_dest, msg_dest,
data, data,