Summary: | dtrace is unable to run on head since ipsec import | ||
---|---|---|---|
Product: | Base System | Reporter: | Sean Bruno <sbruno> |
Component: | kern | Assignee: | Mark Johnston <markj> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | CC: | gnn, markj |
Priority: | --- | ||
Version: | CURRENT | ||
Hardware: | amd64 | ||
OS: | Any |
Description
Sean Bruno
2015-07-16 17:01:27 UTC
# ctfdump -S /boot/kernel/kernel - CTF Statistics ------------------------------------------------------------- total number of data objects = 27090 total number of functions = 27781 total number of function arguments = 64171 maximum argument list length = 19 average argument list length = 2.31 total number of types = 35195 total number of integers = 80 total number of floats = 0 total number of pointers = 10742 total number of arrays = 1491 total number of func types = 4137 total number of structs = 11327 total number of unions = 625 total number of enums = 650 total number of forward tags = 38 total number of typedefs = 5410 total number of volatile types = 45 total number of const types = 541 total number of restrict types = 0 total number of unknowns (holes) = 109 total number of struct members = 89882 maximum number of struct members = 248 total size of all structs = 14260270 maximum size of a struct = 2968576 average number of struct members = 7.94 average size of a struct = 1258.96 total number of union members = 2096 maximum number of union members = 33 total size of all unions = 94697 maximum size of a union = 14280 average number of union members = 3.35 average size of a union = 151.52 total number of enum members = 6933 maximum number of enum members = 1023 average number of enum members = 10.67 total number of unique strings = 54992 bytes of string data = 779435 maximum string length = 81 average string length = 14.17 Removing all sound, wireless and raid controllers lowers the number of symbols for CTF down to an amount that allows dtrace scripts to run again. The problem is that we're running into CTF's typeid limit with amd64 GENERIC now. I'm somewhat confused: when building a GENERIC amd64 kernel, I get substantially fewer types than you: markj@wkstn-mjohnston: /usr/obj/usr/home/markj/src/freebsd-dev/sys/GENERIC $ ctfdump -S kernel ... total number of types = 30904 ... In particular, this is below the typeid limit, though it is still quite close. It looks like I really need to reapply r274569. It was reverted in r276848 because it was causing a crash in i386 builds, but I never really got to the bottom of that. However, it fixes a large amount of incorrect duplication in the type graph; a GENERIC kernel build with this change reapplied has substantially fewer types: markj@wkstn-mjohnston: /usr/obj/usr/home/markj/src/freebsd-dev/sys/GENERIC $ ctfdump -S kernel ... total number of types = 24831 ... I'm working on figuring out the root cause of the crash. Once that's done, I'm going to re-commit r274569, and that will handle the problem for a while without any need to change the CTF format. seems to work fine here on my laptop today. Thanks! |