Skip to content

NUMA allocation with NP02ReadoutApplication and fake readers - #284

Merged
ShyamB97 merged 6 commits into
developfrom
sbhuller/np02-app-emu-fix
Aug 12, 2026
Merged

NUMA allocation with NP02ReadoutApplication and fake readers#284
ShyamB97 merged 6 commits into
developfrom
sbhuller/np02-app-emu-fix

Conversation

@ShyamB97

@ShyamB97 ShyamB97 commented Mar 25, 2026

Copy link
Copy Markdown
Contributor

Description

If full description and testing details are included on a parent issue, please link to that here.
See issue # for details

Otherwise, please include a summary of the change and which issue is fixed (if any).
Include relevant motivation and context, including a target environment and dunedaq version if known.
Also list any dependencies that are required for this change.

Allow using NUMA allocation through the dpdk receivers when FDFakeReaderModules are used. Without this, latency buffers are assigned numa 0 by default and cant be changed, so this limits the scope of using the NP02 readout application on servers where typically we need to assign the latency buffers to two NUMA regions.

Can be tested by running

daqconf_inspector sessions/np02-emu-session.data.xml show-smartapp-mods np02-emu-session runp02srv004-crp23-emu

and searching the output for the assigned NUMA node for the latency buffers in each daq application. it should be assigned to 2 and 3 when using the following ehn1-daqconfigs branch (parallel PR):
https://gitlab.cern.ch/dune-daq/online/ehn1-daqconfigs/-/merge_requests/274

Type of change

  • Documentation (non-breaking change that adds or improves the documentation)
  • New feature or enhancement (non-breaking change which adds functionality)
  • Optimization (non-breaking change that improves code/performance)
  • Bug fix (non-breaking change which fixes an issue)
  • Breaking change (whatever its nature)

Testing checklist

  • Unit tests pass (e.g. dbt-build --unittest)
  • Minimal system quicktest passes (pytest -s minimal_system_quick_test.py)
  • Full set of integration tests pass (dunedaq_integtest_bundle.sh)
  • Python tests pass if applicable (e.g. python -m pytest)
  • Pre-commit hooks run successfully if applicable (e.g. pre-commit run --all-files)

unit test and integration tests should pass.

Further checks

  • Code is commented where needed, particularly in hard-to-understand areas
  • Code style is correct (dbt-build --lint, and/or see https://dune-daq-sw.readthedocs.io/en/latest/packages/styleguide/)
  • If applicable, new tests have been added or an issue has been opened to tackle that in the future.
    (Indicate issue here: # (issue))

@ShyamB97
ShyamB97 requested a review from MRiganSUSX March 25, 2026 15:40
@ShyamB97 ShyamB97 self-assigned this Mar 25, 2026
@ShyamB97 ShyamB97 added the bug Something isn't working label Mar 25, 2026
Comment thread src/NP02ReadoutApplication.cpp Outdated
Comment thread src/NP02ReadoutApplication.cpp
@MRiganSUSX

Copy link
Copy Markdown
Contributor

ping @ShyamB97

@ShyamB97
ShyamB97 requested a review from MRiganSUSX August 11, 2026 10:41

@MRiganSUSX MRiganSUSX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ShyamB97.

Could you consider the last two comments please?

Comment thread src/NP02ReadoutApplication.cpp Outdated
Comment thread src/NP02ReadoutApplication.cpp Outdated

@MRiganSUSX MRiganSUSX left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the improvements.

I've tested this with:

  • custom tests :

    • daqconf_inspector on np02-emu-session/runp02srv004-crp23-emu: latency buffers correctly split 48/48 across numa_node=2/3.
    • generate_modules_test (same session/app): confirms the same 48/48 NUMA split via the generated DataHandlerModule.module_configuration refs (-numa2/-numa3).
    • Negative path (generate_modules_test with a FDFakeReaderModule pointed at a FakeDataReceiver): correctly throws BadConf: FDFakeReaderModule requires DPDKReceiver, found fake-np02srv004-receiver-3-tde of class FakeDataReceiver.
  • integtest bundle :

    • passed all
⮕ Running daqsystemtest/3ru_1df_multirun_test.py ⬅
======================== 6 passed ✅ in 242.06s (0:04:02) =========================
⮕ Running daqsystemtest/3ru_3df_multirun_test.py ⬅
======================== 6 passed ✅ in 239.98s (0:03:59) =========================
⮕ Running daqsystemtest/disabled_tpg_test.py ⬅
============================== 3 passed ✅ in 56.56s ==============================
⮕ Running daqsystemtest/example_system_test.py ⬅
======================== 12 passed ✅ in 231.03s (0:03:51) ========================
⮕ Running daqsystemtest/fake_data_producer_test.py ⬅
======================== 6 passed ✅ in 230.97s (0:03:50) =========================
⮕ Running daqsystemtest/long_window_readout_test.py ⬅
============================== 1 skipped 🟡 in 0.62s ==============================
⮕ Running daqsystemtest/minimal_system_quick_test.py ⬅
============================== 4 passed ✅ in 49.89s ==============================
⮕ Running daqsystemtest/readout_type_scan_test.py ⬅
======================== 33 passed ✅ in 563.13s (0:09:23) ========================
⮕ Running daqsystemtest/sample_ehn1_multihost_test.py ⬅
======================== 4 skipped 🟡 in 87.96s (0:01:27) =========================
⮕ Running daqsystemtest/small_footprint_quick_test.py ⬅
============================== 3 passed ✅ in 49.84s ==============================
⮕ Running daqsystemtest/tpg_state_collection_test.py ⬅
======================== 5 passed ✅ in 105.57s (0:01:45) =========================
⮕ Running daqsystemtest/tpreplay_test.py ⬅
======================== 6 passed ✅ in 115.63s (0:01:55) =========================
⮕ Running daqsystemtest/tpstream_writing_test.py ⬅
======================== 4 passed ✅ in 105.56s (0:01:45) =========================
⮕ Running daqsystemtest/trigger_bitwords_test.py ⬅
======================== 18 passed ✅ in 273.51s (0:04:33) ========================

@MRiganSUSX

Copy link
Copy Markdown
Contributor

Before you merge @ShyamB97, there seems to be some linting issue reported.
The functionality is confirmed correct.

@ShyamB97
ShyamB97 merged commit bb3e4fa into develop Aug 12, 2026
5 checks passed
@ShyamB97
ShyamB97 deleted the sbhuller/np02-app-emu-fix branch August 12, 2026 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants