[libcamera-devel] [PATCH v3 01/11] libcamera: Print Timer identifier

Jacopo Mondi jacopo at jmondi.org
Wed Dec 1 11:25:47 CET 2021


Hi Laurent

On Wed, Dec 01, 2021 at 02:32:37AM +0200, Laurent Pinchart wrote:
> Hi Jacopo,
>
> Thank you for the patch.
>
> On Wed, Dec 01, 2021 at 12:36:24AM +0100, Jacopo Mondi wrote:
> > The Timer debug output does not report to which timer a condition refers
> > to. Fix that by printing the Timer address.
>
> Do I assume correctly that this comes from an issue you were trying to
> debug ? If so, could you share some information (for my own information,
> doesn't have to be recorded in the commit message) ?

I didn't have any specific issue, I wanted to be sure the 'right'
timer was started at the right time, but just that displying such
information without saying to what timer they belong is not that useful

>
> > Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> > ---
> >  src/libcamera/base/event_dispatcher_poll.cpp | 3 ++-
> >  src/libcamera/base/timer.cpp                 | 4 ++--
> >  2 files changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/libcamera/base/event_dispatcher_poll.cpp b/src/libcamera/base/event_dispatcher_poll.cpp
> > index 8ee22d5adcc4..20cc6e617189 100644
> > --- a/src/libcamera/base/event_dispatcher_poll.cpp
> > +++ b/src/libcamera/base/event_dispatcher_poll.cpp
> > @@ -214,7 +214,8 @@ int EventDispatcherPoll::poll(std::vector<struct pollfd> *pollfds)
> >  			timeout = { 0, 0 };
> >
> >  		LOG(Event, Debug)
> > -			<< "timeout " << timeout.tv_sec << "."
> > +			<< "timeout " << nextTimer << " "
> > +			<< timeout.tv_sec << "."
>
> "timeout <pointer> <value>" could be a bit hard to read, how about
>
> 		LOG(Event, Debug)
> 			<< "next timer " << nextTimer << " expires in "
> 			<< timeout.tv_sec << "."
> 			<< std::setfill('0') << std::setw(9)
> 			<< timeout.tv_nsec;
>
> If you think that's overkill you can ignore it.
>

It's good! I'll test how it looks like and I'll eventually take it in

> >  			<< std::setfill('0') << std::setw(9)
> >  			<< timeout.tv_nsec;
> >  	}
> > diff --git a/src/libcamera/base/timer.cpp b/src/libcamera/base/timer.cpp
> > index 9c54352d46bd..187336e3a1a4 100644
> > --- a/src/libcamera/base/timer.cpp
> > +++ b/src/libcamera/base/timer.cpp
> > @@ -96,7 +96,7 @@ void Timer::start(std::chrono::milliseconds duration)
> >  void Timer::start(std::chrono::steady_clock::time_point deadline)
> >  {
> >  	if (Thread::current() != thread()) {
> > -		LOG(Timer, Error) << "Timer can't be started from another thread";
> > +		LOG(Timer, Error) << "Timer " << this << " << can't be started from another thread";
>
> Maybe a timer ID would be useful to have in the future for debugging
> purpose. Then we could inherit from Loggable. For now this will do.
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

Thanks
  j

>
> >  		return;
> >  	}
> >
> > @@ -128,7 +128,7 @@ void Timer::stop()
> >  		return;
> >
> >  	if (Thread::current() != thread()) {
> > -		LOG(Timer, Error) << "Timer can't be stopped from another thread";
> > +		LOG(Timer, Error) << "Timer " << this << " can't be stopped from another thread";
> >  		return;
> >  	}
> >
>
> --
> Regards,
>
> Laurent Pinchart


More information about the libcamera-devel mailing list