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

[DAQ] Input source improvements and initial Phase-2 DTH format support #47068

Merged
merged 20 commits into from
Jan 12, 2025

Conversation

smorovic
Copy link
Contributor

@smorovic smorovic commented Jan 9, 2025

PR description:

Adds several major features for FedRawDataSource and/or DAQSource:

  • deletion of files moves to fileDeleter thread with new throttling check to limit number of files that are not yet deleted. Reworked also (complementary) end-of-LS detection using tbb concurrent hash map and tracking lumisections having files being processed.
  • DAQSource: DTH unpacking (raw format, currently not containing FRD-style headers). Inncluding dummy data generator and an unit test
  • DTH Phase2 format definitions (preliminary). The format is not yet final and at the moment definition will remain in EventFilter/Utilities. When finalized and tested with real payload, it will be be moved to DataFormats.
  • DAQSource: FRDPreUnpack mode which moves event unpacking into I/O threads and reducing time spent in read event which is serialized for all CMSSW streams.
  • dropping support for very old (pre-Run3) FRD format versions (any such files can be read and converted with an older CMSSW version). Unused single-buffer source support was also dropped.
  • improved directory handling and run number detection in file list mode
  • improved synchronization (less sleeping) between data fetching and main (framework) thread in sources

PR validation:

  • new unit tests added
  • tested in a small scale DAQ F3 test setup (3 BU/FU VMs)
  • tested in CDAQ emulator runs (several hours)

* adding the missing JSON field to test RAW writer
* termination condition can skip writing files (with service used to detect it)
* change ls type to unsigned
* remove old commented section

fixes to fileListMode

apply equivalent changes to DAQSource

strip singleBufferMode
improved synchronization between threads (less sleeping)
…e reader thread.

API changes and simplifications are propagated to all models.

bugfixes to new mode
removing debug log
updated unit test
- preliminary header definition of DTH Orbit, DTH FragmentTrailer,
  SLinExpress fragment header and trailer.
- new module for DAQSource to read raw DTH dumps. They must be grouped (sorted)together by orbit number,
  contain event fragments in the same sequence and one orbit must fit into the buffer.
- new DTH dummy raw generator
- FRD dummy raw generator updated, dropping generation of obsolete FRD versions
- this is compatible with orbit-building in EVB, a FRD-like header could be added in the future
  It will be followed up by models allowing separate striped multi-orbit files
  (similar to SFB/FRDStriped or L1Scouting-like approach)
@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 9, 2025

cms-bot internal usage

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 9, 2025

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47068/43236

ERROR: Build errors found during clang-tidy run.

src/EventFilter/Utilities/src/DAQSourceModelsDTH.cc:132:22: error: equality comparison result unused [clang-diagnostic-unused-comparison]
  132 |       checksumError_ == std::string();
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
src/EventFilter/Utilities/src/DAQSourceModelsDTH.cc:132:22: note: use '=' to turn this equality comparison into an assignment
--
gmake: *** [config/SCRAM/GMake/Makefile.coderules:129: code-checks] Error 2
gmake: *** [There are compilation/build errors. Please see the detail log above.] Error 2

…ased tracking which isn't fully guaranteed

to close file in timely manner (e.g. a stream that last processed an older file could not get event for a long
time potentially and we'd keep that file open for extended time).
@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 9, 2025

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47068/43237

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 9, 2025

-code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-47068/43247

Code check has found code style and quality issues which could be resolved by applying following patch(s)

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 9, 2025

@cmsbuild
Copy link
Contributor

cmsbuild commented Jan 9, 2025

Pull request #47068 was updated.

@smorovic
Copy link
Contributor Author

smorovic commented Jan 9, 2025

@cmsbuild please test

@cmsbuild
Copy link
Contributor

+1

Size: This PR adds an extra 476KB to repository
Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-9c7702/43709/summary.html
COMMIT: 06fdce0
CMSSW: CMSSW_15_0_X_2025-01-09-1100/el8_amd64_gcc12
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week1/cms-sw/cmssw/47068/43709/install.sh to create a dev area with all the needed externals and cmssw changes.

The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic:

You can see more details here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-9c7702/43709/git-recent-commits.json
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-9c7702/43709/git-merge-result

Comparison Summary

Summary:

  • You potentially removed 131 lines from the logs
  • Reco comparison results: 1 differences found in the comparisons
  • DQMHistoTests: Total files compared: 49
  • DQMHistoTests: Total histograms compared: 3818730
  • DQMHistoTests: Total failures: 45
  • DQMHistoTests: Total nulls: 13
  • DQMHistoTests: Total successes: 3818652
  • DQMHistoTests: Total skipped: 20
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: -0.8560000000000004 KiB( 48 files compared)
  • DQMHistoSizes: changed ( 1000.0,... ): -0.012 KiB MessageLogger/Errors
  • DQMHistoSizes: changed ( 1000.0,... ): -0.012 KiB MessageLogger/Warnings
  • DQMHistoSizes: changed ( 24834.911,... ): -0.008 KiB MessageLogger/Errors
  • DQMHistoSizes: changed ( 24834.911,... ): -0.008 KiB MessageLogger/Warnings
  • DQMHistoSizes: changed ( 4.22,... ): -0.004 KiB MessageLogger/Errors
  • DQMHistoSizes: changed ( 4.22,... ): -0.004 KiB MessageLogger/Warnings
  • Checked 214 log files, 184 edm output root files, 49 DQM output files
  • TriggerResults: no differences found

@smorovic smorovic marked this pull request as ready for review January 12, 2025 00:35
@cmsbuild
Copy link
Contributor

A new Pull Request was created by @smorovic for master.

It involves the following packages:

  • EventFilter/Utilities (daq)

@emeschi, @smorovic can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @missirol this is something you requested to watch as well.
@antoniovilela, @mandrenguyen, @rappoccio, @sextonkennedy you are the release manager for this.

cms-bot commands are listed here

@smorovic
Copy link
Contributor Author

+daq

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @mandrenguyen, @rappoccio, @sextonkennedy, @antoniovilela (and backports should be raised in the release meeting by the corresponding L2)

@mandrenguyen
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit a44b537 into cms-sw:master Jan 12, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants