Bug 13847 - reduce gcc time/space for demanding scripts
Summary: reduce gcc time/space for demanding scripts
Status: NEW
Alias: None
Product: systemtap
Classification: Unclassified
Component: translator (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-14 16:29 UTC by Frank Ch. Eigler
Modified: 2012-04-12 21:31 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
some artefacts from a script compilation that went bad, bad, so terribly bad (8.37 MB, application/octet-stream)
2012-04-03 17:24 UTC, Frank Ch. Eigler
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Frank Ch. Eigler 2012-03-14 16:29:10 UTC
For a script with thousands of probes, with lots of automated $$vars pretty-printing, it is possible to generate an amazing quantity of C / object code.  We should make it less bad.
Comment 1 Frank Ch. Eigler 2012-04-03 17:24:55 UTC
Created attachment 6314 [details]
some artefacts from a script compilation that went bad, bad, so terribly bad
Comment 2 Josh Stone 2012-04-12 21:31:44 UTC
Regarding commit 8f12266 "PR13847: simplify compiled-printf functions", which undid commit 0a4d3238 "PR3217: Make compiled-printf functions noinline".

I didn't document well my motivation for noinline, especially which platforms reproduce the issue.  I've just found again this frame size issue though, and reverting 8f12266 fixes it.

$ stap ../testsuite/systemtap.printf/int1.stp 
/tmp/stapH5c5hz/stap_efb73b1930e23fc0d9274ea48c731d59_2359_src.c: In function ‘probe_2001’:
/tmp/stapH5c5hz/stap_efb73b1930e23fc0d9274ea48c731d59_2359_src.c:3339:1: error: the frame size of 740 bytes is larger than 256 bytes [-Werror=frame-larger-than=]
cc1: all warnings being treated as errors
make[1]: *** [/tmp/stapH5c5hz/stap_efb73b1930e23fc0d9274ea48c731d59_2359_src.o] Error 1
make: *** [_module_/tmp/stapH5c5hz] Error 2
WARNING: make exited with status: 2
Pass 4: compilation failed.  Try again with another '--vp 0001' option.

$ stap -V
Systemtap translator/driver (version 1.8/0.153 commit release-1.7-157-gcc0901e)
Copyright (C) 2005-2012 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBRPM LIBSQLITE3 NSS BOOST_SHARED_PTR TR1_UNORDERED_MAP NLS

$ uname -r
3.3.1-3.fc16.i686.PAE
$ rpm -q gcc kernel-PAE
gcc-4.6.3-2.fc16.i686

Another details worth noting?

There are a few other testcases that also fail this way, but not quite so horribly.

  systemtap.base/warn_overflow.exp    352 bytes
  systemtap.examples/process/syscalls_by_pid    348 bytes
  systemtap.examples/process/syscalls_by_proc    340 bytes
  systemtap.examples/profiling/topsys    352 bytes
  buildok/aux_syscalls-embedded.stp    308 bytes
  buildok/nd_syscalls2-detailed.stp    352 bytes