Skip to content

Commit

Permalink
Add warning message with configured legacy modules
Browse files Browse the repository at this point in the history
  • Loading branch information
wddgit committed Jul 21, 2021
1 parent 82fc9f2 commit 673972e
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 0 deletions.
1 change: 1 addition & 0 deletions FWCore/Framework/interface/EventProcessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ namespace edm {
std::shared_ptr<EDLooperBase>& looper() { return get_underlying_safe(looper_); }

void warnAboutModulesRequiringLuminosityBLockSynchronization() const;
void warnAboutLegacyModules() const;
//------------------------------------------------------------------
//
// Data members below.
Expand Down
17 changes: 17 additions & 0 deletions FWCore/Framework/src/EventProcessor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,8 @@ namespace edm {
if (preallocations_.numberOfLuminosityBlocks() > 1) {
warnAboutModulesRequiringLuminosityBLockSynchronization();
}
warnAboutLegacyModules();

//NOTE: This implementation assumes 'Job' means one call
// the EventProcessor::run
// If it really means once per 'application' then this code will
Expand Down Expand Up @@ -2100,4 +2102,19 @@ namespace edm {
}
}
}

void EventProcessor::warnAboutLegacyModules() const {
std::unique_ptr<LogSystem> s;
for (auto worker : schedule_->allWorkers()) {
if (worker->moduleConcurrencyType() == Worker::kLegacy) {
if (not s) {
s = std::make_unique<LogSystem>("LegacyModules");
(*s) << "The following legacy modules are configured. Support for legacy modules\n"
"is going to end soon. These modules need to be converted to have type\n"
"edm::global, edm::stream, edm::one, or in rare cases edm::limited.";
}
(*s) << "\n " << worker->description()->moduleName() << " " << worker->description()->moduleLabel();
}
}
}
} // namespace edm
2 changes: 2 additions & 0 deletions FWCore/Framework/src/Worker.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ namespace edm {
public:
enum State { Ready, Pass, Fail, Exception };
enum Types { kAnalyzer, kFilter, kProducer, kOutputModule };
enum ConcurrencyTypes { kGlobal, kLimited, kOne, kStream, kLegacy };
struct TaskQueueAdaptor {
SerialTaskQueueChain* serial_ = nullptr;
LimitedTaskQueue* limited_ = nullptr;
Expand Down Expand Up @@ -214,6 +215,7 @@ namespace edm {
virtual std::vector<ConsumesInfo> consumesInfo() const = 0;

virtual Types moduleType() const = 0;
virtual ConcurrencyTypes moduleConcurrencyType() const = 0;

void clearCounters() {
timesRun_.store(0, std::memory_order_release);
Expand Down
76 changes: 76 additions & 0 deletions FWCore/Framework/src/WorkerT.cc
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,82 @@ namespace edm {
return Worker::kAnalyzer;
}

template <>
Worker::ConcurrencyTypes WorkerT<EDAnalyzer>::moduleConcurrencyType() const {
return Worker::kLegacy;
}
template <>
Worker::ConcurrencyTypes WorkerT<EDProducer>::moduleConcurrencyType() const {
return Worker::kLegacy;
}
template <>
Worker::ConcurrencyTypes WorkerT<EDFilter>::moduleConcurrencyType() const {
return Worker::kLegacy;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::one::EDProducerBase>::moduleConcurrencyType() const {
return Worker::kOne;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::one::EDFilterBase>::moduleConcurrencyType() const {
return Worker::kOne;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::one::EDAnalyzerBase>::moduleConcurrencyType() const {
return Worker::kOne;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::one::OutputModuleBase>::moduleConcurrencyType() const {
return Worker::kOne;
}

template <>
Worker::ConcurrencyTypes WorkerT<edm::global::EDProducerBase>::moduleConcurrencyType() const {
return Worker::kGlobal;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::global::EDFilterBase>::moduleConcurrencyType() const {
return Worker::kGlobal;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::global::EDAnalyzerBase>::moduleConcurrencyType() const {
return Worker::kGlobal;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::global::OutputModuleBase>::moduleConcurrencyType() const {
return Worker::kGlobal;
}

template <>
Worker::ConcurrencyTypes WorkerT<edm::limited::EDProducerBase>::moduleConcurrencyType() const {
return Worker::kLimited;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::limited::EDFilterBase>::moduleConcurrencyType() const {
return Worker::kLimited;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::limited::EDAnalyzerBase>::moduleConcurrencyType() const {
return Worker::kLimited;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::limited::OutputModuleBase>::moduleConcurrencyType() const {
return Worker::kLimited;
}

template <>
Worker::ConcurrencyTypes WorkerT<edm::stream::EDProducerAdaptorBase>::moduleConcurrencyType() const {
return Worker::kStream;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::stream::EDFilterAdaptorBase>::moduleConcurrencyType() const {
return Worker::kStream;
}
template <>
Worker::ConcurrencyTypes WorkerT<edm::stream::EDAnalyzerAdaptorBase>::moduleConcurrencyType() const {
return Worker::kStream;
}

//Explicitly instantiate our needed templates to avoid having the compiler
// instantiate them in all of our libraries
template class WorkerT<EDProducer>;
Expand Down
1 change: 1 addition & 0 deletions FWCore/Framework/src/WorkerT.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ namespace edm {
}

Types moduleType() const override;
ConcurrencyTypes moduleConcurrencyType() const override;

bool wantsProcessBlocks() const final;
bool wantsInputProcessBlocks() const final;
Expand Down

0 comments on commit 673972e

Please sign in to comment.