public inbox for linux-audit@redhat.com
 help / color / mirror / Atom feed
* libaudit large stack requirement in audit_send()
@ 2013-04-29 16:15 Luciano Chavez
  2013-04-29 16:48 ` Steve Grubb
  0 siblings, 1 reply; 4+ messages in thread
From: Luciano Chavez @ 2013-04-29 16:15 UTC (permalink / raw)
  To: linux-audit

Hello,

I am working with a development team developing a J2EE application. They
reported a problem with a crash in audit_send(). The crash occurred in a
ppc64 architecture environment early on in the invocation to audit send.

The crash occurs in this instruction which is establishing the size of
the local stack:

=> 0xfff73237994 <audit_send+52>:	stdu    r1,-27232(r1)

I found one large struct defined to a local variable

(gdb) print sizeof(struct audit_message)
$4 = 8988

but you will note that it asks for much more than that and after looking
at the audit_send() routine, it calls a function called check_ack()
which appears to be inlined and it contains two even larger definitions
on the stack for the following structure:

struct audit_reply

(gdb) print sizeof(struct audit_reply)
$3 = 9016

So, the combination of the three is what requires almost 26.5K of local
stack usage in this frame alone.

Is there a requirement for libaudit to have the structs on the stack
versus allocated from heap? Is so, is this requirement documented
somewhere?

To be fair, the Java application has some heavy stack usage as it is
since it is deployed in a web application server and there is a JNI
function that is somewhere in the call stack as well. However, the stack
usage in the audit_send() function seems ... excessive.

Originally the thread stacksize size was set to 256K and that did not
help but once we raised it to 1MB it did but I think that is probably
more than we really need.

I have looked at the source for the audit 2.2.3 release from March and
don't see a difference in how the structs are allocated. So once again,
if there is not a requirement that the structs be on the stack, should
they not be allocated off the heap?

regards,
-- 
Luciano Chavez <lnx1138@linux.vnet.ibm.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-04-29 21:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-29 16:15 libaudit large stack requirement in audit_send() Luciano Chavez
2013-04-29 16:48 ` Steve Grubb
2013-04-29 18:35   ` Steve Grubb
2013-04-29 21:02   ` Luciano Chavez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox