On 22 Nov 2020, at 16:33, Demi M. Obenour <[email protected]> wrote:
> 
> One last question: will cross-core communications channels be allowed?

Fair question, the spec doesn’t spell this out explicitly (but should – we’ll 
fix this).

As the spec says, the PD has a scheduling context (SC) on which its init 
procedure and notification procedure (NP) execute. SCs are tied to a core, and 
thus the NP always runs on that core.

Communication is via a shared buffer (the channel-attached MR) and 
synchronising with Notifications. Notifications work perfectly fine across 
cores, and thus this communication is core-transparent.

PPCs are always core-local (as the server runs on the client’s scheduling 
context), so while the NP executes on *its* core, the PP executes on the 
client’s core.

Note the consequence: if a channel connects PD1 running on Core1 with PD2 
running on Core2, then, in the absence of a PP, all communication on this 
channel is cross-core.

If, however, PD2 has a PP, and PD1 performs a PPC on PD2, then it’s not 
a-priori clear on which core the PP executes. If PD1 does the PPC from its NP, 
then the PP will execute on Core1. If, however, PD1 also has a PP, and invokes 
the PPC from its PP, that PPC a will execute on the core of whoever called 
PD1’s PP.

I’m sure I’ve confused everyone by now ;-)

Gernot

Attachment: signature.asc
Description: Message signed with OpenPGP

_______________________________________________
Devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to