Tunnel Message Componentize (splitting signatures)
Componentize is an optional feature in the Tunnel, where it can automatically split error messages on Component name, using regular expression matching.
This is useful when you have generic Signatures, which are more easily triaged when split by Component name.
Often this is related to infrastructure or environment errors, like compile, OS, disk, machine, license problems, or timeouts.
Example Generic Error
This is an example make
error:
make: *** No rule to make target /work/2023_12_06/out/pub/src/rtl/abc_block.v, needed by from_external_defines.xf. Stop
Simscope normally bucketizes this as a generic Signature:
make No rule to make target ... needed by [HIER]. Stop
Componentize
Componentize is a feature to automatically prefix the component name into the error.
Then Simscope would split into separate Signatures, for each component:
abc_block
:
abc_block make No rule to make target ... needed by [HIER]. Stop
xyzzy_block
:
xyzzy_block make No rule to make target ... needed by [HIER]. Stop
Enabling Componentize
To componentize errors:
- Edit your
tunnel.config
file. - Add one or more text patterns or Regular Expressions, to match errors you want componentized.
- Restart the Tunnel.
The next time a job is published through the tunnel, if it matches any of the componentize
patterns, its message will be automatically prefixed by its component name.
Example Config
This tunnel.config
example auto-prefixes timeout
, logfile
, and No rule to make target
errors:
[tunnel]
# Componentize
#
# This lets you automatically split a common/shared signature into unique signatures prefixed
# by component name, so each component has a unique instance of the signature.
# For example, you can split a "wallclock timeout" signature into "[block1] wallclock timeout"
componentize = "wallclock timeout"
componentize = "cycle timeout"
componentize = "missing logfile"
componentize = "No rule to make target"
Note: this feature also allows Regular Expressions (e.g.
foo|bar
).