Hi all,

Odd behavior here: I'm using the profile probe to sample stack traces in my app, 100+ threads banging hard on a T5440. The script exits after 30 seconds of profiling and seg faults while trying to print the aggregated stack trace counts on exit:
$ dbx - core
Corefile specified executable: "/usr/sbin/sparcv9/dtrace"
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.8' in your .dbxrc
Reading /usr/sbin/sparcv9/dtrace
core file header read successfully
<snipped long list of .so files>
program terminated by signal SEGV (no mapping at the fault address)
0xffffffff7e8a8ff0: _ndoprnt+0x0004:    stx      %i2, [%sp + 2223]
(dbx) bt
=>[1] _ndoprnt()
  [2] snprintf()
  [3] dtrace_uaddr2str()
  [4] pfprint_uaddr()
  [5] dt_printf_format()
  [6] dt_fprinta()
  [7] dt_aggregate_walk_sorted()
  [8] dtrace_fprinta()
  [9] dt_consume_cpu()
  [10] dtrace_consume()
  [11] dtrace_work()
  [12] main()

The problem seems related to the fact that I had specified 'dtrace -x aggsize=256k' -- rerunning with aggsize=2048k makes the problem go away. Note that I didn't see any messages from dtrace about drops, so I can't say whether 256k should have been enough or not. However, the app has a lot of code and deep call stacks, so I could easily imagine 256k not being enough.

Ideas? Should I file a bug report?

Ryan

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to