stop using the SEV instruction #81

Closed
opened 2020-08-04 11:07:01 +08:00 by sb10q · 3 comments

The ACP kernel initiator (#55) uses the EVENTO signal to reduce latency. Any SEV instruction, even those we currently use for other purposes, toggles it. The SEV instruction should be reserved to the ACP kernel initiator.

The ACP kernel initiator (https://git.m-labs.hk/M-Labs/artiq-zynq/issues/55) uses the ``EVENTO`` signal to reduce latency. Any SEV instruction, even those we currently use for other purposes, toggles it. The SEV instruction should be reserved to the ACP kernel initiator.

If power is not a concern, we could just remove all the SEV and WFE.

Or we could replace WFE with WFI, but we would have to trigger FIQs instead of IRQs as IRQs are now masked when we hold the mutex. This should be possible with GIC.

I think this should be posted in zc706 repo? As the synchronization primitives we implemented would use SEV for blocking operations... IIRC there are not much use of SEV in this repo, except for the wait for core1 restart I've just implemented.

If power is not a concern, we could just remove all the `SEV` and `WFE`. Or we could replace `WFE` with `WFI`, but we would have to trigger FIQs instead of IRQs as IRQs are now masked when we hold the mutex. This should be possible with GIC. I think this should be posted in `zc706` repo? As the synchronization primitives we implemented would use `SEV` for blocking operations... IIRC there are not much use of `SEV` in this repo, except for the wait for core1 restart I've just implemented.

Or we could replace WFE with WFI, but we would have to trigger FIQs instead of IRQs as IRQs are now masked when we hold the mutex. This should be possible with GIC.

Nvm, WFI would resume when IRQ is triggered regardless of whether it is masked or not...

> Or we could replace `WFE` with `WFI`, but we would have to trigger FIQs instead of IRQs as IRQs are now masked when we hold the mutex. This should be possible with GIC. Nvm, `WFI` would resume when IRQ is triggered regardless of whether it is masked or not...
Poster
Owner
  • Yes, this should be done both here and in zc706.
  • Power isn't a concern for our application, so I don't think we need to implement the wfi power optimization.
  • Some other applications may care about power, so maybe add a powersave feature to zc706 that keeps the wfe/sev instructions.
* Yes, this should be done both here and in ``zc706``. * Power isn't a concern for our application, so I don't think we need to implement the ``wfi`` power optimization. * Some other applications may care about power, so maybe add a ``powersave`` feature to ``zc706`` that keeps the ``wfe``/``sev`` instructions.
sb10q closed this issue 2020-08-04 14:40:03 +08:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: M-Labs/artiq-zynq#81
There is no content yet.