|
[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
It's fine with me. Thanks for the reviews!
Costin
On 3/13/19 1:16 PM, Yuri Volchkov wrote:
> 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
>>
>
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |