run idle kernel on flash #325

Merged
sb10q merged 2 commits from srenblad/artiq-zynq:run_idle_on_flash_alt into master 2024-09-14 11:38:03 +08:00
Contributor

Run idle kernel on flash

Implements https://github.com/m-labs/artiq/pull/2569 for artiq-zynq as closely as possible.
Related issue: Discussed in https://github.com/m-labs/artiq/issues/2041.

At the moment the only difference in idle kernel behavior between Zynq and RISC-V is:

  • In RISC-V, idle kernels are restarted when they finish or encounter any error except KernelNotFound.
  • In Zynq, idle kernels only restart on artiq_coremgmt config calls, after an experiment is run or on startup.

I don't hold a strong preference either way. Thoughts @mwojcik, @sb10q?

Testing

All tests performed with the Kasli-SoC v1.1 demo.json variant.

  • idle kernel restarted with artiq_coremgmt config write idle_kernel ...
  • idle kernel stops running after artiq_coremgmt config remove idle_kernel
  • stored idle kernel starts on startup
  • idle kernel starts after experiment is run
  • sequential artiq_coremgmt config write/remove idle_kernel ... calls are properly handled
## Run idle kernel on flash Implements https://github.com/m-labs/artiq/pull/2569 for artiq-zynq as closely as possible. Related issue: Discussed in https://github.com/m-labs/artiq/issues/2041. At the moment the only difference in idle kernel behavior between Zynq and RISC-V is: + In RISC-V, idle kernels are restarted when they finish or encounter any error except `KernelNotFound`. + In Zynq, idle kernels only restart on `artiq_coremgmt config` calls, after an experiment is run or on startup. I don't hold a strong preference either way. Thoughts @mwojcik, @sb10q? ## Testing All tests performed with the Kasli-SoC v1.1 demo.json variant. - [x] idle kernel restarted with `artiq_coremgmt config write idle_kernel ...` - [x] idle kernel stops running after `artiq_coremgmt config remove idle_kernel` - [x] stored idle kernel starts on startup - [x] idle kernel starts after experiment is run - [x] sequential `artiq_coremgmt config write/remove idle_kernel ...` calls are properly handled
srenblad added 1 commit 2024-09-12 17:51:32 +08:00
Owner

I believe "idle" would mean the device would be running it, when otherwise it would be doing nothing; RISC-V behaviour seems more fitting that the kernel would fully fill the idle state. Even weirder if any irrelevant artiq_coremgmt config call would cause the idle kernel to restart;

I believe "idle" would mean the device would be running it, when otherwise it would be doing nothing; RISC-V behaviour seems more fitting that the kernel would fully fill the idle state. Even weirder if any irrelevant ``artiq_coremgmt config`` call would cause the idle kernel to restart;
Author
Contributor

Even weirder if any irrelevant artiq_coremgmt config call would cause the idle kernel to restart;

Just to clarify, only config calls that edit the idle_kernel cause a restart.

> Even weirder if any irrelevant artiq_coremgmt config call would cause the idle kernel to restart; Just to clarify, only config calls that edit the idle_kernel cause a restart.
srenblad changed title from WIP: run idle kernel on flash to run idle kernel on flash 2024-09-13 09:26:49 +08:00
srenblad added 1 commit 2024-09-13 09:46:45 +08:00
Author
Contributor

Updated with idle kernel rerunning on finish.

Updated with idle kernel rerunning on finish.
sb10q merged commit e7614d2e8e into master 2024-09-14 11:38:03 +08:00
Sign in to join this conversation.
No reviewers
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#325
No description provided.