99#include " ExceptionInternal.h"
1010
1111using namespace std ::literals;
12+ using boost::format;
1213
1314namespace AliceO2
1415{
@@ -45,29 +46,31 @@ CruDmaChannel::CruDmaChannel(const Parameters& parameters)
4546 }
4647
4748 if (mFeatures .standalone ) {
48- auto logFeature = [&](auto name, bool enabled) { if (!enabled) { getLogger () << " " << name; }};
49- getLogger () << " Standalone firmware features disabled:" ;
49+ std::stringstream stream;
50+ auto logFeature = [&](auto name, bool enabled) { if (!enabled) { stream << " " << name; }};
51+ stream << " Standalone firmware features disabled:" ;
5052 logFeature (" firmware-info" , mFeatures .firmwareInfo );
5153 logFeature (" serial-number" , mFeatures .serial );
5254 logFeature (" temperature" , mFeatures .temperature );
5355 logFeature (" data-selection" , mFeatures .dataSelection );
54- getLogger () << InfoLogger::InfoLogger::endm ;
56+ log (stream. str ()) ;
5557 }
5658
5759 // Insert links
5860 {
59- getLogger () << " Enabling link(s): " ;
61+ std::stringstream stream;
62+ stream << " Enabling link(s): " ;
6063 auto linkMask = parameters.getLinkMask ().value_or (Parameters::LinkMaskType{0 });
6164 mLinks .reserve (linkMask.size ());
6265 for (uint32_t id : linkMask) {
6366 if (id >= Cru::MAX_LINKS) {
6467 BOOST_THROW_EXCEPTION (InvalidLinkId () << ErrorInfo::Message (" CRU does not support given link ID" )
6568 << ErrorInfo::LinkId (id));
6669 }
67- getLogger () << id << " " ;
70+ stream << id << " " ;
6871 mLinks .push_back ({static_cast <LinkId>(id)});
6972 }
70- getLogger () << InfoLogger::InfoLogger::endm ;
73+ log (stream. str ()) ;
7174 }
7275}
7376
@@ -80,7 +83,7 @@ CruDmaChannel::~CruDmaChannel()
8083{
8184 setBufferNonReady ();
8285 if (mReadyQueue .size () > 0 ) {
83- getLogger () << " Remaining superpages in the ready queue: " << mReadyQueue .size () << InfoLogger::InfoLogger::endm ;
86+ log (( format ( " Remaining superpages in the ready queue: %1% " ) % mReadyQueue .size ()). str ()) ;
8487 }
8588}
8689
@@ -139,14 +142,17 @@ void CruDmaChannel::setBufferNonReady()
139142void CruDmaChannel::deviceStopDma ()
140143{
141144 setBufferNonReady ();
145+ int moved = 0 ;
142146 for (auto & link : mLinks ) {
143147 size_t size = link.queue .size ();
144148 for (size_t i = 0 ; i < size; ++i) {
145149 transferSuperpageFromLinkToReady (link);
150+ moved++;
146151 }
147152 assert (link.queue .empty ());
148153 }
149154 assert (mLinkQueuesTotalAvailable == LINK_QUEUE_CAPACITY * mLinks .size ());
155+ log ((format (" Moved %1% remaining superpages to ready queue" ) % moved).str ());
150156}
151157
152158void CruDmaChannel::deviceResetChannel (ResetLevel::type resetLevel)
@@ -265,11 +271,12 @@ void CruDmaChannel::fillSuperpages()
265271 if (available) {
266272 uint32_t amountAvailable = superpageCount - link.superpageCounter ;
267273 if (amountAvailable > link.queue .size ()) {
268- getLogger () << InfoLogger::InfoLogger::Error
269- << " FATAL: Firmware reported more superpages available (" << amountAvailable <<
274+ std::stringstream stream;
275+ stream << " FATAL: Firmware reported more superpages available (" << amountAvailable <<
270276 " ) than should be present in FIFO (" << link.queue .size () << " ); "
271277 << link.superpageCounter << " superpages received from link " << int (link.id ) << " according to driver, "
272- << superpageCount << " pushed according to firmware" << InfoLogger::InfoLogger::endm;
278+ << superpageCount << " pushed according to firmware" ;
279+ log (stream.str (), InfoLogger::InfoLogger::Error);
273280 BOOST_THROW_EXCEPTION (Exception ()
274281 << ErrorInfo::Message (" FATAL: Firmware reported more superpages available than should be present in FIFO" ));
275282 }
0 commit comments