|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH 2/2] lib/uklock: Disable debug logging for semaphores
Hi,
I will just add a few lines, to the commit message saying that our
per-module debug message enabling does not work here because most of the
prints are in the header files. If you do not mind.
Reviewed-by: Yuri Volchkov <yuri.volchkov@xxxxxxxxx>
Cheers, Yuri.
Costin Lupu <costin.lupu@xxxxxxxxx> writes:
> When debug logging is enabled, semaphores messages logging can get very
> aggressive and flood the output, therefore we leave them disabled by
> default. One has to explicitly enable logging again by defining
> UK_SEMAPHORE_DEBUG when investigating issues like deadlocks.
>
> Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
> ---
> lib/uklock/include/uk/semaphore.h | 10 ++++++++++
> lib/uklock/semaphore.c | 2 ++
> 2 files changed, 12 insertions(+)
>
> diff --git a/lib/uklock/include/uk/semaphore.h
> b/lib/uklock/include/uk/semaphore.h
> index 2513d441..2e82b10f 100644
> --- a/lib/uklock/include/uk/semaphore.h
> +++ b/lib/uklock/include/uk/semaphore.h
> @@ -65,7 +65,9 @@ static inline void uk_semaphore_down(struct uk_semaphore *s)
> ukplat_lcpu_restore_irqf(irqf);
> }
> --s->count;
> +#ifdef UK_SEMAPHORE_DEBUG
> uk_pr_debug("Decreased semaphore %p to %ld\n", s, s->count);
> +#endif
> ukplat_lcpu_restore_irqf(irqf);
> }
>
> @@ -80,8 +82,10 @@ static inline int uk_semaphore_down_try(struct
> uk_semaphore *s)
> if (s->count > 0) {
> ret = 1;
> --s->count;
> +#ifdef UK_SEMAPHORE_DEBUG
> uk_pr_debug("Decreased semaphore %p to %ld\n",
> s, s->count);
> +#endif
> }
> ukplat_lcpu_restore_irqf(irqf);
> return ret;
> @@ -109,14 +113,18 @@ static inline __nsec uk_semaphore_down_to(struct
> uk_semaphore *s,
> }
> if (s->count > 0) {
> s->count--;
> +#ifdef UK_SEMAPHORE_DEBUG
> uk_pr_debug("Decreased semaphore %p to %ld\n",
> s, s->count);
> +#endif
> ukplat_lcpu_restore_irqf(irqf);
> return ukplat_monotonic_clock() - then;
> }
>
> ukplat_lcpu_restore_irqf(irqf);
> +#ifdef UK_SEMAPHORE_DEBUG
> uk_pr_debug("Timed out while waiting for semaphore %p\n", s);
> +#endif
> return __NSEC_MAX;
> }
>
> @@ -128,8 +136,10 @@ static inline void uk_semaphore_up(struct uk_semaphore
> *s)
>
> irqf = ukplat_lcpu_save_irqf();
> ++s->count;
> +#ifdef UK_SEMAPHORE_DEBUG
> uk_pr_debug("Increased semaphore %p to %ld\n",
> s, s->count);
> +#endif
> uk_waitq_wake_up(&s->wait);
> ukplat_lcpu_restore_irqf(irqf);
> }
> diff --git a/lib/uklock/semaphore.c b/lib/uklock/semaphore.c
> index c9747100..5b182359 100644
> --- a/lib/uklock/semaphore.c
> +++ b/lib/uklock/semaphore.c
> @@ -5,6 +5,8 @@ void uk_semaphore_init(struct uk_semaphore *s, long count)
> s->count = count;
> uk_waitq_init(&s->wait);
>
> +#ifdef UK_SEMAPHORE_DEBUG
> uk_pr_debug("Initialized semaphore %p with %ld\n",
> s, s->count);
> +#endif
> }
> --
> 2.11.0
>
--
Yuri Volchkov
Software Specialist
NEC Europe Ltd
Kurfürsten-Anlage 36
D-69115 Heidelberg
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |