Changeset View
Standalone View
sys/sys/ktr_class.h
Show First 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | |||||
#define KTR_CONTENTION 0x00800000 /* Lock contention */ | #define KTR_CONTENTION 0x00800000 /* Lock contention */ | ||||
#define KTR_UMA 0x01000000 /* UMA slab allocator */ | #define KTR_UMA 0x01000000 /* UMA slab allocator */ | ||||
#define KTR_CALLOUT 0x02000000 /* Callouts and timeouts */ | #define KTR_CALLOUT 0x02000000 /* Callouts and timeouts */ | ||||
#define KTR_GEOM 0x04000000 /* GEOM I/O events */ | #define KTR_GEOM 0x04000000 /* GEOM I/O events */ | ||||
#define KTR_BUSDMA 0x08000000 /* busdma(9) events */ | #define KTR_BUSDMA 0x08000000 /* busdma(9) events */ | ||||
#define KTR_INET6 0x10000000 /* IPv6 stack */ | #define KTR_INET6 0x10000000 /* IPv6 stack */ | ||||
#define KTR_SCHED 0x20000000 /* Machine parsed sched info. */ | #define KTR_SCHED 0x20000000 /* Machine parsed sched info. */ | ||||
#define KTR_BUF 0x40000000 /* Buffer cache */ | #define KTR_BUF 0x40000000 /* Buffer cache */ | ||||
#define KTR_ALL 0x7fffffff | #define KTR_PAX 0x80000000 /* PaX */ | ||||
#define KTR_ALL 0xffffffff | |||||
rwatson: These bits are a scarce resource: how necessary is the PaX bit here in terms of future… | |||||
Not Done Inline ActionsIt's necessary because I / we plan to implement more feature, e.g. KERNEXEC (W^X solution for kernel). These required a lot of debugging, and I not really like to enucleate the PaX related stuff from other X csillion debug log. (Btw, previously we suggested to change our debugging stuff to CTF method.) op: It's necessary because I / we plan to implement more feature, e.g. KERNEXEC (W^X solution for… | |||||
Not Done Inline ActionsTo me, using DTrace for this would make more sense. Although there are noteworthy exceptions above, KTR seems to find its most use in areas that are awkward for DTrace to profile due to mechanism or overhead limitations -- e.g., internals of the scheduler, locking, etc. rwatson: To me, using DTrace for this would make more sense. Although there are noteworthy exceptions… | |||||
Not Done Inline ActionsI have requested at least once that you shift debugging traces from KTR to DTrace -- KTR should be reserved, at this point, for low-level trace events where DTrace would be too disruptive, with higher-level tracing types above being legacy types (e.g., GEOM tracing). rwatson: I have requested at least once that you shift debugging traces from KTR to DTrace -- KTR should… | |||||
Not Done Inline ActionsSee my previous comment about losing the ability to do post-mortem analysis of ASLR in the case of kernel panic. lattera-gmail.com: See my previous comment about losing the ability to do post-mortem analysis of ASLR in the case… | |||||
Not Done Inline ActionsThis issue has "fixed" by jhb. They extended the 32 bit ktr_class to 64 bit. op: This issue has "fixed" by jhb. They extended the 32 bit ktr_class to 64 bit. | |||||
/* KTR trace classes to compile in */ | /* KTR trace classes to compile in */ | ||||
#ifdef KTR | #ifdef KTR | ||||
#ifndef KTR_COMPILE | #ifndef KTR_COMPILE | ||||
#define KTR_COMPILE (KTR_ALL) | #define KTR_COMPILE (KTR_ALL) | ||||
#endif | #endif | ||||
#else /* !KTR */ | #else /* !KTR */ | ||||
#undef KTR_COMPILE | #undef KTR_COMPILE | ||||
#define KTR_COMPILE 0 | #define KTR_COMPILE 0 | ||||
#endif /* KTR */ | #endif /* KTR */ | ||||
#endif /* !_SYS_KTR_CLASS_H_ */ | #endif /* !_SYS_KTR_CLASS_H_ */ |
These bits are a scarce resource: how necessary is the PaX bit here in terms of future debugging rather than feature-bootstrap debugging?