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

Investigate endLuminosityBlock transition behavior in DAQ #687

Closed
24 tasks done
makortel opened this issue Oct 10, 2023 · 2 comments
Closed
24 tasks done

Investigate endLuminosityBlock transition behavior in DAQ #687

makortel opened this issue Oct 10, 2023 · 2 comments
Assignees
Labels

Comments

@makortel
Copy link
Collaborator

makortel commented Oct 10, 2023

See cms-sw/cmssw#42931 for details

Issue 1

Issue 2

Tracer improvements

Documentation

Aftermath

@makortel
Copy link
Collaborator Author

makortel commented Oct 24, 2023

Some notes on discussion today on Issue 1

Could we make https://github.com/cms-sw/cmssw/blob/c85a467052fc4101cbcea854b2158afcbf7ee0a4/FWCore/Framework/src/LuminosityBlockProcessingStatus.h#L109C1-L110C1 atomic, and move this block
https://github.com/cms-sw/cmssw/blob/c85a467052fc4101cbcea854b2158afcbf7ee0a4/FWCore/Framework/src/EventProcessor.cc#L2161-L2164
(and possibly https://github.com/cms-sw/cmssw/blob/c85a467052fc4101cbcea854b2158afcbf7ee0a4/FWCore/Framework/src/EventProcessor.cc#L2151-L2159) out of the readNextEventForStream()?

If moved outside, we would need to keep the if blocks inside readNextEventForStream() as well.

In the end, we should make the "event processing state" atomic, and copy both if blocks also outside of readNextEventForStream(), to beginning of handleNextEventForStreamAsync() https://github.com/cms-sw/cmssw/blob/c85a467052fc4101cbcea854b2158afcbf7ee0a4/FWCore/Framework/src/EventProcessor.cc#L2204.

Need to be sure that the beginLumi of the next lumi has already been called, before calling streamEndLumiAsync().

The handleNextEventForStreamAsync() would probably be better call along handleNextTransitionForStreamAsync().

@makortel
Copy link
Collaborator Author

Add ability for Source to tell that a new LuminosityBlock is the only occurrence of that LuminosityBlock

  • Try to make InputSource::ItemType an enum class
  • Make InputSource::ItemType explicitly a char
  • Add a new struct that holds the InputSource::ItemType and an additional bool to tell if that LuminosityBlock is the only occurrence. The struct would have explicit conversion function to InputSource::ItemType
  • Pass the new struct from concrete Source to the framework via InputSource::getNextItemType()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants