Re: [PATCH] audit: speedup for syscalls when auditing is disabled

From: Eric Paris
Date: Mon Aug 23 2010 - 23:51:27 EST


On Tue, 2010-08-24 at 12:16 +1000, Anton Blanchard wrote:
> Hi Eric,
>
> > I don't think this works at all. I don't see how syscall audit'ing can
> > work. What if I have nothing in the AUDIT_FILTER_TASK list but I want
> > to audit all 'open(2)' syscalls? This patch is going to leave the task
> > in the DISABLED state and we won't ever be able to match on the syscall
> > rules.
>
> That's a good point. What if we went through and created an audit context
> for each thread at the point where we add a rule to the audit subsystem?
>
> That would make the common case where no one touches audit go fast. It's
> only once you add a rule that you get the syscall entry/exit overhead of
> audit.
>
> Anton

It might be viable but I certainly couldn't say. I'm a bit scared of
allocating and attaching a struct audit_context to a running task as we
have no idea if that task is about to exit a syscall with an unfilled
out audit_context struct nor do I personally off the top of my head know
the task flag setting rules (especially when you want to set other
people's flags)

Maybe another approach would be to move audit_alloc() into the syscall
entry path rather than only at fork().

I think the best solution is going to be some better way of
setting/clearing TIF_SYSCALL_AUDIT. (notice the thing is never cleared,
ever, today)

-Eric

--
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/