On 2020-01-23 21:50, Millar, Curtis (Data61, Kensington NSW) wrote:
>> I strongly suspect the more fundamental and general extension would be
>> to remove the scalability limitation of Notifications, probably by
>> generalising them to a hierarchy, i.e. you signal a sub-notification
>> which then signals the higher-level notification. I?m not claiming
>> having thought this through, though.
> 
> Having thought about this a little, I think that it is useful to observe
> that the case where such cases where large numbers of notifications need
> to be received the receiver uses a roughly similar interface to
> endpoints (seL4_Send to wait for an event and seL4_NBSend to poll for
> events).
> 
> If we allow send queues of endpoints to include notification objects in
> addition to threads we could multiplex notifications via an endpoint by
> binding the notifications to the endpoint.
> 
> This could also allow for the removal of notification binding for
> threads; if they want to receive both notifications and synchronous IPC
> they can bind the notification to the endpoint. This design should also
> work with MCS whereby donation of scheduling contexts from notification
> objects would become roughly the same as donation from a thread with a
> scheduling context.
> 
> I think the cleanest implementation would be to allow a notification to
> contain its own endpoint capability, similar to the manner in which TCBs
> conatain capabilities. Any time an idle notification is invoked with a
> send it then queues on the endpoint to which is capability refers if one
> exists. Send invocations of 'active' (potentially queued) notifications
> would perform the same XOR operation as currently occurs.
> 
> When receiving on an endpoint where the first blocked object is a
> notification the badge received is the badge of the endpoint capability
> owned by the notification and the notification word is simply placed in
> the first message register.
> 
> Whilst I think that this (or something similar) is the most simple case
> for implementing multiplexing it would have some impact on the semantics
> and implementation of some objects. Even at this small a scale the
> verification burden will still be considerable as this change would
> impact all verified builds.
> 
> I think further discussion and evaluation of a solution is needed before
> we can determine that it is sufficiently beneficial to have this feature
> in the kernel and to commit to maintaining the feature and including it
> in the verified configurations.
> 
> Cheers,
> Curtis Millar
> 

This seems like the simplest solution, and also does absolutely
everything I am looking for.  Thank you!

Demi

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Devel mailing list
Devel@sel4.systems
https://sel4.systems/lists/listinfo/devel

Reply via email to