All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steffen Klassert <steffen.klassert@secunet.com>
To: Dave Hansen <dave.hansen@intel.com>
Cc: syzbot <syzbot+b6ae1c4eede4e0ea287f@syzkaller.appspotmail.com>,
	<ajay.kaher@broadcom.com>, <alexey.makhalov@broadcom.com>,
	<bcm-kernel-feedback-list@broadcom.com>, <bp@alien8.de>,
	<dave.hansen@linux.intel.com>, <hpa@zytor.com>, <jgross@suse.com>,
	<linux-kernel@vger.kernel.org>, <mingo@redhat.com>,
	<syzkaller-bugs@googlegroups.com>, <tglx@linutronix.de>,
	<virtualization@lists.linux.dev>, <x86@kernel.org>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>,
	Aakash Kumar S <saakashkumar@marvell.com>
Subject: Re: [syzbot] [x86?] BUG: soft lockup in xfrm_timer_handler
Date: Thu, 21 Aug 2025 16:21:41 +0200	[thread overview]
Message-ID: <aKcrddsfOz5G1yVW@secunet.com> (raw)
In-Reply-To: <95833405-18aa-48ad-a5d6-4f659dfbf08a@intel.com>

On Tue, Aug 19, 2025 at 07:46:35AM -0700, Dave Hansen wrote:
> On 8/18/25 00:59, syzbot wrote:
> > Call Trace:
> >  <IRQ>
> ...
> >  spin_lock include/linux/spinlock.h:351 [inline]
> >  __xfrm_state_delete+0xba/0xca0 net/xfrm/xfrm_state.c:818
> >  xfrm_timer_handler+0x18f/0xa00 net/xfrm/xfrm_state.c:716
> >  __run_hrtimer kernel/time/hrtimer.c:1761 [inline]
> >  __hrtimer_run_queues+0x52c/0xc60 kernel/time/hrtimer.c:1825
> >  hrtimer_run_softirq+0x187/0x2b0 kernel/time/hrtimer.c:1842
> >  handle_softirqs+0x283/0x870 kernel/softirq.c:579
> >  __do_softirq kernel/softirq.c:613 [inline]
> >  invoke_softirq kernel/softirq.c:453 [inline]
> >  __irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:680
> >  irq_exit_rcu+0x9/0x30 kernel/softirq.c:696
> >  instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline]
> >  sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1050
> 
> >From that call trace, I'd suspect a deadlock from the xfrm code not
> releasing the lock somewhere, not x86 code.
> 
> One thing that stands out is that of the ~20 or so uses of
> '->xfrm.xfrm_state_lock', the call site in the trace is the only one
> that uses spin_lock() instead of spin_lock_bh(). I didn't look at it for
> long, so maybe there's a good reason for it. But it did catch my eye.

That's the one in __xfrm_state_delete. This function has 3 callers,
one ist xfrm_timer_handler itself and two others that disabled
bottom halves bevore calling. That should be save.

We had a recent patch that changed xfrm_alloc_spi, this function
changed the locking behaviour and shows up in the trace:

commit 94f39804d891 ("xfrm: Duplicate SPI Handling")

I don't see an obvious problem, but it changed the locking
used here.

I've Cced the author.

      reply	other threads:[~2025-08-21 14:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-18  7:59 [syzbot] [x86?] BUG: soft lockup in xfrm_timer_handler syzbot
2025-08-19 14:46 ` Dave Hansen
2025-08-21 14:21   ` Steffen Klassert [this message]

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=aKcrddsfOz5G1yVW@secunet.com \
    --to=steffen.klassert@secunet.com \
    --cc=ajay.kaher@broadcom.com \
    --cc=alexey.makhalov@broadcom.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=hpa@zytor.com \
    --cc=jgross@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=saakashkumar@marvell.com \
    --cc=syzbot+b6ae1c4eede4e0ea287f@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.com \
    --cc=tglx@linutronix.de \
    --cc=virtualization@lists.linux.dev \
    --cc=x86@kernel.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.