Skip to content
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

Fetching CoreDMA handles in device_setup() #378

Open
pmldrmota opened this issue Oct 26, 2023 · 1 comment
Open

Fetching CoreDMA handles in device_setup() #378

pmldrmota opened this issue Oct 26, 2023 · 1 comment
Labels
A-artiq Likely involves work on ARTIQ proper C-quality-of-life This is a minor annoyance with existing functionality

Comments

@pmldrmota
Copy link
Contributor

In some cases, it would be mildly useful to have a second device_setup(), e.g. device_setup_postaction() that visits all subfragments once again before run_once().
The primary use case for this would be to acquire DMA sequence handles in different fragments after they were recorded in device_setup(). [The core_dma's epoch counter prevents both these steps to be done in each fragment subsequently.]

@pmldrmota pmldrmota added A-experiment Involves the experiment-side code C-quality-of-life This is a minor annoyance with existing functionality labels Oct 26, 2023
@dnadlinger
Copy link
Member

dnadlinger commented Apr 10, 2024

I understand the use case, but adding a second stage doing exactly the same seems a bit arbitrary/overly specific in terms of ndscan design. I wonder whether this would be best implemented in a user-specific subclass like ReadoutExp (Oxford-internal), given that the entire fragment tree is known at host execution time anyway, where the walking can be done even without ndscan support.

Really, though, the best option might just be to overhaul ARTIQ DMA buffer management to avoid this altogether and keep handles valid unless the same sequence is modified. The more I think about this, the less I am sure why this isn't how it is done already.

@dnadlinger dnadlinger added A-artiq Likely involves work on ARTIQ proper and removed A-experiment Involves the experiment-side code labels Apr 10, 2024
@dnadlinger dnadlinger changed the title Second device_setup step Fetching CoreDMA handles in device_setup() Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-artiq Likely involves work on ARTIQ proper C-quality-of-life This is a minor annoyance with existing functionality
Projects
None yet
Development

No branches or pull requests

2 participants