-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
delay during PD initialization and execution #39
Comments
Ideally it would be the first option. From our experience at TS, we have been able to design and implement drivers without any use of blocking. I haven't looked closely at that FreeRTOS ethernet driver, but given that we've been able to go without any use of However, while network drivers can fit into the event driven model, I understand that there will exist systems where it is genuinely not possible. Internally at TS we have started to run into these cases, and are looking at making a small co-routine library for seL4CP. I will keep you updated on this and hopefully we have something to show soon. Nick has been using Rust's support for async operations, so may want to comment on that, assuming you're writing the driver in Rust. |
I am indeed having success using Rust's async features for this kind of thing. Here is an implementation of Here is an |
@nspin very cool! I will give it a try! |
@nspin how do you think the reactor would change if you had to break out the individual components to separate PDs? If so, I would be happy to refactor your example in such a way, but I could not get the server to build outside of nix - do you have a CI job or an example for that? |
I've just finished doing exactly that: Note that the virtio-net-driver component does more copying than it needs to, because the
I will work on a standalone demo for this code like https://github.com/GaloisInc/rust-seL4-sel4cp-demo. |
I've cleaned this up and created a new repo: https://github.com/coliasgroup/rust-seL4-sel4cp-http-server-demo |
Hello!
I am porting an existing network driver code to sel4cp, and the driver has a couple of
vTaskDelay()
calls (it is for FreeRTOS).Is there a recommended way of handling such case - e.g. I need my PD to suspend for a short time before continuing in execution?
I can think of the following options:
pp_call
to a timer to get current system time, and busy wait until the desired time elapses - rather inefficient@Ivan-Velickovic @nspin
The text was updated successfully, but these errors were encountered: