From: Philippe Gerum <rpm@xenomai.org>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Xenomai <xenomai@xenomai.org>
Subject: Re: dovetail: DEBUG_LOCKS_WARN_ON(!lockdep_stage_disabled())
Date: Wed, 09 Jun 2021 18:03:47 +0200 [thread overview]
Message-ID: <87bl8f6n4s.fsf@xenomai.org> (raw)
In-Reply-To: <87eedb6n9q.fsf@xenomai.org>
Philippe Gerum <rpm@xenomai.org> writes:
> Jan Kiszka <jan.kiszka@siemens.com> writes:
>
>> Hi Philippe,
>>
>> currently trying to understand [1]: The check in
>> lockdep_hardirqs_on_prepare triggers, e.g. over exc_int3 ->
>> do_int3_user, and then on cond_local_irq_enable().
>>
>> Where should have the current stage be stalled after exc_int3 so that
>> lockdep is happy?
>>
>
> Nowhere. v5.8 introduced irqentry_enter_from_user_mode() which raw
> (debug) traps invoke directly, and this one does not reconcile the hard
> irq state with the stall bit.
>
>> Interestingly, I do not get this with my local .config, and I still
>> didn't find the switches that make the difference.
>>
>> Jan
>>
>> [1] https://source.denx.de/Xenomai/xenomai-images/-/jobs/276895#L946
Something like this may help:
diff --git a/kernel/entry/common.c b/kernel/entry/common.c
index 4e81c0c03e5726a..b52f4ac50fd04bb 100644
--- a/kernel/entry/common.c
+++ b/kernel/entry/common.c
@@ -343,6 +343,8 @@ __visible noinstr void syscall_exit_to_user_mode(struct pt_regs *regs)
noinstr void irqentry_enter_from_user_mode(struct pt_regs *regs)
{
+ WARN_ON_ONCE(irq_pipeline_debug() && irqs_disabled());
+ stall_inband_nocheck();
enter_from_user_mode(regs);
}
@@ -373,8 +375,6 @@ noinstr irqentry_state_t irqentry_enter(struct pt_regs *regs)
if (user_mode(regs)) {
#ifdef CONFIG_IRQ_PIPELINE
- WARN_ON_ONCE(irq_pipeline_debug() && irqs_disabled());
- stall_inband_nocheck();
ret.stage_info = IRQENTRY_INBAND_UNSTALLED;
#endif
irqentry_enter_from_user_mode(regs);
--
Philippe.
next prev parent reply other threads:[~2021-06-09 16:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-09 12:27 dovetail: DEBUG_LOCKS_WARN_ON(!lockdep_stage_disabled()) Jan Kiszka
2021-06-09 16:00 ` Philippe Gerum
2021-06-09 16:03 ` Philippe Gerum [this message]
2021-06-09 16:05 ` Philippe Gerum
2021-06-09 16:07 ` Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87bl8f6n4s.fsf@xenomai.org \
--to=rpm@xenomai.org \
--cc=jan.kiszka@siemens.com \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.