This let tracers know to which hierarchy a CPU belongs to.
Unified · Split
| @@ -33,15 +33,16 @@ TRACE_EVENT(tmigr_group_set, · 32 unmodified lines | |||
| 33 | 33 | ||
| 34 | TRACE_EVENT(tmigr_connect_child_parent, | 34 | TRACE_EVENT(tmigr_connect_child_parent, |
| 35 | 35 | ||
| 36 | TP_PROTO(struct tmigr_group *child), | 36 | TP_PROTO(struct tmigr_hierarchy *hier, struct tmigr_group *child), |
| 37 | 37 | ||
| 38 | TP_ARGS(child), | 38 | TP_ARGS(hier, child), |
| 39 | 39 | ||
| 40 | TP_STRUCT__entry( | 40 | TP_STRUCT__entry( |
| 41 | __field( void *, child ) | 41 | __field( void *, child ) |
| 42 | __field( void *, parent ) | 42 | __field( void *, parent ) |
| 43 | __field( unsigned int, lvl ) | 43 | __field( unsigned int, lvl ) |
| 44 | __field( unsigned int, numa_node ) | 44 | __field( unsigned int, numa_node ) |
| 45 | __field( unsigned int, capacity ) | ||
| 45 | __field( unsigned int, num_children ) | 46 | __field( unsigned int, num_children ) |
| 46 | __field( u32, groupmask ) | 47 | __field( u32, groupmask ) |
| 47 | ), | 48 | ), |
| @@ -51,26 +52,28 @@ TRACE_EVENT(tmigr_connect_child_parent, · 3 unmodified lines | |||
| 51 | __entry->parent = child->parent; | 52 | __entry->parent = child->parent; |
| 52 | __entry->lvl = child->parent->level; | 53 | __entry->lvl = child->parent->level; |
| 53 | __entry->numa_node = child->parent->numa_node; | 54 | __entry->numa_node = child->parent->numa_node; |
| 55 | __entry->capacity = hier->capacity; | ||
| 54 | __entry->num_children = child->parent->num_children; | 56 | __entry->num_children = child->parent->num_children; |
| 55 | __entry->groupmask = child->groupmask; | 57 | __entry->groupmask = child->groupmask; |
| 56 | ), | 58 | ), |
| 57 | 59 | ||
| 58 | TP_printk("group=%p groupmask=%0x parent=%p lvl=%d numa=%d num_children=%d", | 60 | TP_printk("group=%p groupmask=%0x parent=%p lvl=%d numa=%d capacity=%d num_children=%d", |
| 59 | __entry->child, __entry->groupmask, __entry->parent, | 61 | __entry->child, __entry->groupmask, __entry->parent, __entry->lvl, |
| 60 | __entry->lvl, __entry->numa_node, __entry->num_children) | 62 | __entry->numa_node, __entry->capacity, __entry->num_children) |
| 61 | ); | 63 | ); |
| 62 | 64 | ||
| 63 | TRACE_EVENT(tmigr_connect_cpu_parent, | 65 | TRACE_EVENT(tmigr_connect_cpu_parent, |
| 64 | 66 | ||
| 65 | TP_PROTO(struct tmigr_cpu *tmc), | 67 | TP_PROTO(struct tmigr_hierarchy *hier, struct tmigr_cpu *tmc), |
| 66 | 68 | ||
| 67 | TP_ARGS(tmc), | 69 | TP_ARGS(hier, tmc), |
| 68 | 70 | ||
| 69 | TP_STRUCT__entry( | 71 | TP_STRUCT__entry( |
| 70 | __field( void *, parent ) | 72 | __field( void *, parent ) |
| 71 | __field( unsigned int, cpu ) | 73 | __field( unsigned int, cpu ) |
| 72 | __field( unsigned int, lvl ) | 74 | __field( unsigned int, lvl ) |
| 73 | __field( unsigned int, numa_node ) | 75 | __field( unsigned int, numa_node ) |
| 76 | __field( unsigned int, capacity ) | ||
| 74 | __field( unsigned int, num_children ) | 77 | __field( unsigned int, num_children ) |
| 75 | __field( u32, groupmask ) | 78 | __field( u32, groupmask ) |
| 76 | ), | 79 | ), |
| @@ -80,13 +83,14 @@ TRACE_EVENT(tmigr_connect_cpu_parent, · 3 unmodified lines | |||
| 80 | __entry->cpu = tmc->cpuevt.cpu; | 83 | __entry->cpu = tmc->cpuevt.cpu; |
| 81 | __entry->lvl = tmc->tmgroup->level; | 84 | __entry->lvl = tmc->tmgroup->level; |
| 82 | __entry->numa_node = tmc->tmgroup->numa_node; | 85 | __entry->numa_node = tmc->tmgroup->numa_node; |
| 86 | __entry->capacity = hier->capacity; | ||
| 83 | __entry->num_children = tmc->tmgroup->num_children; | 87 | __entry->num_children = tmc->tmgroup->num_children; |
| 84 | __entry->groupmask = tmc->groupmask; | 88 | __entry->groupmask = tmc->groupmask; |
| 85 | ), | 89 | ), |
| 86 | 90 | ||
| 87 | TP_printk("cpu=%d groupmask=%0x parent=%p lvl=%d numa=%d num_children=%d", | 91 | TP_printk("cpu=%d groupmask=%0x parent=%p lvl=%d numa=%d capacity=%d num_children=%d", |
| 88 | __entry->cpu, __entry->groupmask, __entry->parent, | 92 | __entry->cpu, __entry->groupmask, __entry->parent, __entry->lvl, |
| 89 | __entry->lvl, __entry->numa_node, __entry->num_children) | 93 | __entry->numa_node, __entry->capacity, __entry->num_children) |
| 90 | ); | 94 | ); |
| 91 | 95 | ||
| 92 | DECLARE_EVENT_CLASS(tmigr_group_and_cpu, | 96 | DECLARE_EVENT_CLASS(tmigr_group_and_cpu, |
| @@ -1752,7 +1752,7 @@ static void tmigr_connect_child_parent(struct tmigr_hierarchy *hier, struct tmig · 1751 unmodified lines | |||
| 1752 | */ | 1752 | */ |
| 1753 | smp_store_release(&child->parent, parent); | 1753 | smp_store_release(&child->parent, parent); |
| 1754 | 1754 | ||
| 1755 | trace_tmigr_connect_child_parent(child); | 1755 | trace_tmigr_connect_child_parent(hier, child); |
| 1756 | } | 1756 | } |
| 1757 | 1757 | ||
| 1758 | static int tmigr_setup_groups(struct tmigr_hierarchy *hier, unsigned int cpu, | 1758 | static int tmigr_setup_groups(struct tmigr_hierarchy *hier, unsigned int cpu, |
| @@ -1827,7 +1827,7 @@ static int tmigr_setup_groups(struct tmigr_hierarchy *hier, unsigned int cpu, · 68 unmodified lines | |||
| 1827 | 1827 | ||
| 1828 | tmigr_init_root(hier, group, activate); | 1828 | tmigr_init_root(hier, group, activate); |
| 1829 | 1829 | ||
| 1830 | trace_tmigr_connect_cpu_parent(tmc); | 1830 | trace_tmigr_connect_cpu_parent(hier, tmc); |
| 1831 | 1831 | ||
| 1832 | /* There are no children that need to be connected */ | 1832 | /* There are no children that need to be connected */ |
| 1833 | continue; | 1833 | continue; |