This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/20820] another "soft lockup" BUG on RHEL7 ppc64
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 01 Dec 2016 20:38:31 +0000
- Subject: [Bug runtime/20820] another "soft lockup" BUG on RHEL7 ppc64
- Auto-submitted: auto-generated
- References: <bug-20820-6586@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=20820
--- Comment #15 from David Smith <dsmith at redhat dot com> ---
(In reply to Josh Stone from comment #14)
> Comment on attachment 9682 [details]
> proposed __stp_init_time() patch
>
> > - write_seqlock(&time->lock);
> > + write_seqlock_irqsave(&time->lock, flags2);
> > time->base_ns = ns;
> > time->base_cycles = cycles;
> > - write_sequnlock(&time->lock);
> > + write_sequnlock_irqrestore(&time->lock, flags2);
> >
> > local_irq_restore(flags);
>
> Why do you need to save irq if it's already in a local_irq_save section?
Good question. Everywhere I can find in the kernel that uses *_irqsave() on 2
different locking items in the same function, that code uses *_irqsave() on
both locking items. Several months back I looked at the source of
write_seqlock() vs. write_seqlock_irqsave(), and if I remember correctly the
waiting method was different between the two. So, we're not using the 2nd
write_seqlock_irqsave() call to disable interrupts again, but to wait in the
most appropriate way once interrupts are disabled.
--
You are receiving this mail because:
You are the assignee for the bug.