Re: [RFC] audit: avoid soft lockup in audit_log_start()

From: Andrew Morton
Date: Tue Sep 17 2013 - 18:28:47 EST


On Tue, 10 Sep 2013 12:03:25 -0400 Eric Paris <eparis@xxxxxxxxxx> wrote:

> > --- a/kernel/audit.c
> > +++ b/kernel/audit.c
> > @@ -1215,9 +1215,10 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask,
> >
> > sleep_time = timeout_start + audit_backlog_wait_time -
> > jiffies;
> > - if ((long)sleep_time > 0)
> > + if ((long)sleep_time > 0) {
> > wait_for_auditd(sleep_time);
> > - continue;
> > + continue;
> > + }
> > }
> > if (audit_rate_check() && printk_ratelimit())
> > printk(KERN_WARNING
>
> I think this is the right(ish) fix, at least it gets at the real bug.
> 829199197a430dade2519d54f5545c4a094393b8 definitely is the problem.

um, which idiot wrote that?


Thngs are somewhat foggy at present. I have two patches from
Dan/Chuck:

Subject: audit: fix soft lockups due to loop in audit_log_start() wh,en audit_backlog_limit exceeded
Subject: audit: two efficiency fixes for audit mechanism

and two from Luiz:

Subject: audit: flush_hold_queue(): don't drop queued SKBs
Subject: audit: kaudit_send_skb(): make non-blocking call to netlink_unicast()

and now a protopatch from Konstantin which eparis likes.

So, umm, guys, can you please devote a bit of time to working out what
we should do here?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/