diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_trace.h')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_trace.h | 233 |
1 files changed, 202 insertions, 31 deletions
diff --git a/fs/xfs/linux-2.6/xfs_trace.h b/fs/xfs/linux-2.6/xfs_trace.h index fcaa62f0799e..ff6bc797baf2 100644 --- a/fs/xfs/linux-2.6/xfs_trace.h +++ b/fs/xfs/linux-2.6/xfs_trace.h | |||
@@ -32,6 +32,10 @@ struct xfs_da_node_entry; | |||
32 | struct xfs_dquot; | 32 | struct xfs_dquot; |
33 | struct xlog_ticket; | 33 | struct xlog_ticket; |
34 | struct log; | 34 | struct log; |
35 | struct xlog_recover; | ||
36 | struct xlog_recover_item; | ||
37 | struct xfs_buf_log_format; | ||
38 | struct xfs_inode_log_format; | ||
35 | 39 | ||
36 | DECLARE_EVENT_CLASS(xfs_attr_list_class, | 40 | DECLARE_EVENT_CLASS(xfs_attr_list_class, |
37 | TP_PROTO(struct xfs_attr_list_context *ctx), | 41 | TP_PROTO(struct xfs_attr_list_context *ctx), |
@@ -562,18 +566,21 @@ DECLARE_EVENT_CLASS(xfs_inode_class, | |||
562 | __field(dev_t, dev) | 566 | __field(dev_t, dev) |
563 | __field(xfs_ino_t, ino) | 567 | __field(xfs_ino_t, ino) |
564 | __field(int, count) | 568 | __field(int, count) |
569 | __field(int, pincount) | ||
565 | __field(unsigned long, caller_ip) | 570 | __field(unsigned long, caller_ip) |
566 | ), | 571 | ), |
567 | TP_fast_assign( | 572 | TP_fast_assign( |
568 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | 573 | __entry->dev = VFS_I(ip)->i_sb->s_dev; |
569 | __entry->ino = ip->i_ino; | 574 | __entry->ino = ip->i_ino; |
570 | __entry->count = atomic_read(&VFS_I(ip)->i_count); | 575 | __entry->count = atomic_read(&VFS_I(ip)->i_count); |
576 | __entry->pincount = atomic_read(&ip->i_pincount); | ||
571 | __entry->caller_ip = caller_ip; | 577 | __entry->caller_ip = caller_ip; |
572 | ), | 578 | ), |
573 | TP_printk("dev %d:%d ino 0x%llx count %d caller %pf", | 579 | TP_printk("dev %d:%d ino 0x%llx count %d pincount %d caller %pf", |
574 | MAJOR(__entry->dev), MINOR(__entry->dev), | 580 | MAJOR(__entry->dev), MINOR(__entry->dev), |
575 | __entry->ino, | 581 | __entry->ino, |
576 | __entry->count, | 582 | __entry->count, |
583 | __entry->pincount, | ||
577 | (char *)__entry->caller_ip) | 584 | (char *)__entry->caller_ip) |
578 | ) | 585 | ) |
579 | 586 | ||
@@ -583,6 +590,10 @@ DEFINE_EVENT(xfs_inode_class, name, \ | |||
583 | TP_ARGS(ip, caller_ip)) | 590 | TP_ARGS(ip, caller_ip)) |
584 | DEFINE_INODE_EVENT(xfs_ihold); | 591 | DEFINE_INODE_EVENT(xfs_ihold); |
585 | DEFINE_INODE_EVENT(xfs_irele); | 592 | DEFINE_INODE_EVENT(xfs_irele); |
593 | DEFINE_INODE_EVENT(xfs_inode_pin); | ||
594 | DEFINE_INODE_EVENT(xfs_inode_unpin); | ||
595 | DEFINE_INODE_EVENT(xfs_inode_unpin_nowait); | ||
596 | |||
586 | /* the old xfs_itrace_entry tracer - to be replaced by s.th. in the VFS */ | 597 | /* the old xfs_itrace_entry tracer - to be replaced by s.th. in the VFS */ |
587 | DEFINE_INODE_EVENT(xfs_inode); | 598 | DEFINE_INODE_EVENT(xfs_inode); |
588 | #define xfs_itrace_entry(ip) \ | 599 | #define xfs_itrace_entry(ip) \ |
@@ -642,8 +653,6 @@ DEFINE_EVENT(xfs_dquot_class, name, \ | |||
642 | TP_PROTO(struct xfs_dquot *dqp), \ | 653 | TP_PROTO(struct xfs_dquot *dqp), \ |
643 | TP_ARGS(dqp)) | 654 | TP_ARGS(dqp)) |
644 | DEFINE_DQUOT_EVENT(xfs_dqadjust); | 655 | DEFINE_DQUOT_EVENT(xfs_dqadjust); |
645 | DEFINE_DQUOT_EVENT(xfs_dqshake_dirty); | ||
646 | DEFINE_DQUOT_EVENT(xfs_dqshake_unlink); | ||
647 | DEFINE_DQUOT_EVENT(xfs_dqreclaim_want); | 656 | DEFINE_DQUOT_EVENT(xfs_dqreclaim_want); |
648 | DEFINE_DQUOT_EVENT(xfs_dqreclaim_dirty); | 657 | DEFINE_DQUOT_EVENT(xfs_dqreclaim_dirty); |
649 | DEFINE_DQUOT_EVENT(xfs_dqreclaim_unlink); | 658 | DEFINE_DQUOT_EVENT(xfs_dqreclaim_unlink); |
@@ -658,7 +667,6 @@ DEFINE_DQUOT_EVENT(xfs_dqread_fail); | |||
658 | DEFINE_DQUOT_EVENT(xfs_dqlookup_found); | 667 | DEFINE_DQUOT_EVENT(xfs_dqlookup_found); |
659 | DEFINE_DQUOT_EVENT(xfs_dqlookup_want); | 668 | DEFINE_DQUOT_EVENT(xfs_dqlookup_want); |
660 | DEFINE_DQUOT_EVENT(xfs_dqlookup_freelist); | 669 | DEFINE_DQUOT_EVENT(xfs_dqlookup_freelist); |
661 | DEFINE_DQUOT_EVENT(xfs_dqlookup_move); | ||
662 | DEFINE_DQUOT_EVENT(xfs_dqlookup_done); | 670 | DEFINE_DQUOT_EVENT(xfs_dqlookup_done); |
663 | DEFINE_DQUOT_EVENT(xfs_dqget_hit); | 671 | DEFINE_DQUOT_EVENT(xfs_dqget_hit); |
664 | DEFINE_DQUOT_EVENT(xfs_dqget_miss); | 672 | DEFINE_DQUOT_EVENT(xfs_dqget_miss); |
@@ -1051,83 +1059,112 @@ TRACE_EVENT(xfs_bunmap, | |||
1051 | 1059 | ||
1052 | ); | 1060 | ); |
1053 | 1061 | ||
1062 | #define XFS_BUSY_SYNC \ | ||
1063 | { 0, "async" }, \ | ||
1064 | { 1, "sync" } | ||
1065 | |||
1054 | TRACE_EVENT(xfs_alloc_busy, | 1066 | TRACE_EVENT(xfs_alloc_busy, |
1055 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, | 1067 | TP_PROTO(struct xfs_trans *trans, xfs_agnumber_t agno, |
1056 | xfs_extlen_t len, int slot), | 1068 | xfs_agblock_t agbno, xfs_extlen_t len, int sync), |
1057 | TP_ARGS(mp, agno, agbno, len, slot), | 1069 | TP_ARGS(trans, agno, agbno, len, sync), |
1058 | TP_STRUCT__entry( | 1070 | TP_STRUCT__entry( |
1059 | __field(dev_t, dev) | 1071 | __field(dev_t, dev) |
1072 | __field(struct xfs_trans *, tp) | ||
1073 | __field(int, tid) | ||
1060 | __field(xfs_agnumber_t, agno) | 1074 | __field(xfs_agnumber_t, agno) |
1061 | __field(xfs_agblock_t, agbno) | 1075 | __field(xfs_agblock_t, agbno) |
1062 | __field(xfs_extlen_t, len) | 1076 | __field(xfs_extlen_t, len) |
1063 | __field(int, slot) | 1077 | __field(int, sync) |
1064 | ), | 1078 | ), |
1065 | TP_fast_assign( | 1079 | TP_fast_assign( |
1066 | __entry->dev = mp->m_super->s_dev; | 1080 | __entry->dev = trans->t_mountp->m_super->s_dev; |
1081 | __entry->tp = trans; | ||
1082 | __entry->tid = trans->t_ticket->t_tid; | ||
1067 | __entry->agno = agno; | 1083 | __entry->agno = agno; |
1068 | __entry->agbno = agbno; | 1084 | __entry->agbno = agbno; |
1069 | __entry->len = len; | 1085 | __entry->len = len; |
1070 | __entry->slot = slot; | 1086 | __entry->sync = sync; |
1071 | ), | 1087 | ), |
1072 | TP_printk("dev %d:%d agno %u agbno %u len %u slot %d", | 1088 | TP_printk("dev %d:%d trans 0x%p tid 0x%x agno %u agbno %u len %u %s", |
1073 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1089 | MAJOR(__entry->dev), MINOR(__entry->dev), |
1090 | __entry->tp, | ||
1091 | __entry->tid, | ||
1074 | __entry->agno, | 1092 | __entry->agno, |
1075 | __entry->agbno, | 1093 | __entry->agbno, |
1076 | __entry->len, | 1094 | __entry->len, |
1077 | __entry->slot) | 1095 | __print_symbolic(__entry->sync, XFS_BUSY_SYNC)) |
1078 | 1096 | ||
1079 | ); | 1097 | ); |
1080 | 1098 | ||
1081 | #define XFS_BUSY_STATES \ | ||
1082 | { 0, "found" }, \ | ||
1083 | { 1, "missing" } | ||
1084 | |||
1085 | TRACE_EVENT(xfs_alloc_unbusy, | 1099 | TRACE_EVENT(xfs_alloc_unbusy, |
1086 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, | 1100 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, |
1087 | int slot, int found), | 1101 | xfs_agblock_t agbno, xfs_extlen_t len), |
1088 | TP_ARGS(mp, agno, slot, found), | 1102 | TP_ARGS(mp, agno, agbno, len), |
1089 | TP_STRUCT__entry( | 1103 | TP_STRUCT__entry( |
1090 | __field(dev_t, dev) | 1104 | __field(dev_t, dev) |
1091 | __field(xfs_agnumber_t, agno) | 1105 | __field(xfs_agnumber_t, agno) |
1092 | __field(int, slot) | 1106 | __field(xfs_agblock_t, agbno) |
1093 | __field(int, found) | 1107 | __field(xfs_extlen_t, len) |
1094 | ), | 1108 | ), |
1095 | TP_fast_assign( | 1109 | TP_fast_assign( |
1096 | __entry->dev = mp->m_super->s_dev; | 1110 | __entry->dev = mp->m_super->s_dev; |
1097 | __entry->agno = agno; | 1111 | __entry->agno = agno; |
1098 | __entry->slot = slot; | 1112 | __entry->agbno = agbno; |
1099 | __entry->found = found; | 1113 | __entry->len = len; |
1100 | ), | 1114 | ), |
1101 | TP_printk("dev %d:%d agno %u slot %d %s", | 1115 | TP_printk("dev %d:%d agno %u agbno %u len %u", |
1102 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1116 | MAJOR(__entry->dev), MINOR(__entry->dev), |
1103 | __entry->agno, | 1117 | __entry->agno, |
1104 | __entry->slot, | 1118 | __entry->agbno, |
1105 | __print_symbolic(__entry->found, XFS_BUSY_STATES)) | 1119 | __entry->len) |
1106 | ); | 1120 | ); |
1107 | 1121 | ||
1122 | #define XFS_BUSY_STATES \ | ||
1123 | { 0, "missing" }, \ | ||
1124 | { 1, "found" } | ||
1125 | |||
1108 | TRACE_EVENT(xfs_alloc_busysearch, | 1126 | TRACE_EVENT(xfs_alloc_busysearch, |
1109 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, | 1127 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, |
1110 | xfs_extlen_t len, xfs_lsn_t lsn), | 1128 | xfs_agblock_t agbno, xfs_extlen_t len, int found), |
1111 | TP_ARGS(mp, agno, agbno, len, lsn), | 1129 | TP_ARGS(mp, agno, agbno, len, found), |
1112 | TP_STRUCT__entry( | 1130 | TP_STRUCT__entry( |
1113 | __field(dev_t, dev) | 1131 | __field(dev_t, dev) |
1114 | __field(xfs_agnumber_t, agno) | 1132 | __field(xfs_agnumber_t, agno) |
1115 | __field(xfs_agblock_t, agbno) | 1133 | __field(xfs_agblock_t, agbno) |
1116 | __field(xfs_extlen_t, len) | 1134 | __field(xfs_extlen_t, len) |
1117 | __field(xfs_lsn_t, lsn) | 1135 | __field(int, found) |
1118 | ), | 1136 | ), |
1119 | TP_fast_assign( | 1137 | TP_fast_assign( |
1120 | __entry->dev = mp->m_super->s_dev; | 1138 | __entry->dev = mp->m_super->s_dev; |
1121 | __entry->agno = agno; | 1139 | __entry->agno = agno; |
1122 | __entry->agbno = agbno; | 1140 | __entry->agbno = agbno; |
1123 | __entry->len = len; | 1141 | __entry->len = len; |
1124 | __entry->lsn = lsn; | 1142 | __entry->found = found; |
1125 | ), | 1143 | ), |
1126 | TP_printk("dev %d:%d agno %u agbno %u len %u force lsn 0x%llx", | 1144 | TP_printk("dev %d:%d agno %u agbno %u len %u %s", |
1127 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1145 | MAJOR(__entry->dev), MINOR(__entry->dev), |
1128 | __entry->agno, | 1146 | __entry->agno, |
1129 | __entry->agbno, | 1147 | __entry->agbno, |
1130 | __entry->len, | 1148 | __entry->len, |
1149 | __print_symbolic(__entry->found, XFS_BUSY_STATES)) | ||
1150 | ); | ||
1151 | |||
1152 | TRACE_EVENT(xfs_trans_commit_lsn, | ||
1153 | TP_PROTO(struct xfs_trans *trans), | ||
1154 | TP_ARGS(trans), | ||
1155 | TP_STRUCT__entry( | ||
1156 | __field(dev_t, dev) | ||
1157 | __field(struct xfs_trans *, tp) | ||
1158 | __field(xfs_lsn_t, lsn) | ||
1159 | ), | ||
1160 | TP_fast_assign( | ||
1161 | __entry->dev = trans->t_mountp->m_super->s_dev; | ||
1162 | __entry->tp = trans; | ||
1163 | __entry->lsn = trans->t_commit_lsn; | ||
1164 | ), | ||
1165 | TP_printk("dev %d:%d trans 0x%p commit_lsn 0x%llx", | ||
1166 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
1167 | __entry->tp, | ||
1131 | __entry->lsn) | 1168 | __entry->lsn) |
1132 | ); | 1169 | ); |
1133 | 1170 | ||
@@ -1495,6 +1532,140 @@ DEFINE_EVENT(xfs_swap_extent_class, name, \ | |||
1495 | DEFINE_SWAPEXT_EVENT(xfs_swap_extent_before); | 1532 | DEFINE_SWAPEXT_EVENT(xfs_swap_extent_before); |
1496 | DEFINE_SWAPEXT_EVENT(xfs_swap_extent_after); | 1533 | DEFINE_SWAPEXT_EVENT(xfs_swap_extent_after); |
1497 | 1534 | ||
1535 | DECLARE_EVENT_CLASS(xfs_log_recover_item_class, | ||
1536 | TP_PROTO(struct log *log, struct xlog_recover *trans, | ||
1537 | struct xlog_recover_item *item, int pass), | ||
1538 | TP_ARGS(log, trans, item, pass), | ||
1539 | TP_STRUCT__entry( | ||
1540 | __field(dev_t, dev) | ||
1541 | __field(unsigned long, item) | ||
1542 | __field(xlog_tid_t, tid) | ||
1543 | __field(int, type) | ||
1544 | __field(int, pass) | ||
1545 | __field(int, count) | ||
1546 | __field(int, total) | ||
1547 | ), | ||
1548 | TP_fast_assign( | ||
1549 | __entry->dev = log->l_mp->m_super->s_dev; | ||
1550 | __entry->item = (unsigned long)item; | ||
1551 | __entry->tid = trans->r_log_tid; | ||
1552 | __entry->type = ITEM_TYPE(item); | ||
1553 | __entry->pass = pass; | ||
1554 | __entry->count = item->ri_cnt; | ||
1555 | __entry->total = item->ri_total; | ||
1556 | ), | ||
1557 | TP_printk("dev %d:%d trans 0x%x, pass %d, item 0x%p, item type %s " | ||
1558 | "item region count/total %d/%d", | ||
1559 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
1560 | __entry->tid, | ||
1561 | __entry->pass, | ||
1562 | (void *)__entry->item, | ||
1563 | __print_symbolic(__entry->type, XFS_LI_TYPE_DESC), | ||
1564 | __entry->count, | ||
1565 | __entry->total) | ||
1566 | ) | ||
1567 | |||
1568 | #define DEFINE_LOG_RECOVER_ITEM(name) \ | ||
1569 | DEFINE_EVENT(xfs_log_recover_item_class, name, \ | ||
1570 | TP_PROTO(struct log *log, struct xlog_recover *trans, \ | ||
1571 | struct xlog_recover_item *item, int pass), \ | ||
1572 | TP_ARGS(log, trans, item, pass)) | ||
1573 | |||
1574 | DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_add); | ||
1575 | DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_add_cont); | ||
1576 | DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_reorder_head); | ||
1577 | DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_reorder_tail); | ||
1578 | DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_recover); | ||
1579 | |||
1580 | DECLARE_EVENT_CLASS(xfs_log_recover_buf_item_class, | ||
1581 | TP_PROTO(struct log *log, struct xfs_buf_log_format *buf_f), | ||
1582 | TP_ARGS(log, buf_f), | ||
1583 | TP_STRUCT__entry( | ||
1584 | __field(dev_t, dev) | ||
1585 | __field(__int64_t, blkno) | ||
1586 | __field(unsigned short, len) | ||
1587 | __field(unsigned short, flags) | ||
1588 | __field(unsigned short, size) | ||
1589 | __field(unsigned int, map_size) | ||
1590 | ), | ||
1591 | TP_fast_assign( | ||
1592 | __entry->dev = log->l_mp->m_super->s_dev; | ||
1593 | __entry->blkno = buf_f->blf_blkno; | ||
1594 | __entry->len = buf_f->blf_len; | ||
1595 | __entry->flags = buf_f->blf_flags; | ||
1596 | __entry->size = buf_f->blf_size; | ||
1597 | __entry->map_size = buf_f->blf_map_size; | ||
1598 | ), | ||
1599 | TP_printk("dev %d:%d blkno 0x%llx, len %u, flags 0x%x, size %d, " | ||
1600 | "map_size %d", | ||
1601 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
1602 | __entry->blkno, | ||
1603 | __entry->len, | ||
1604 | __entry->flags, | ||
1605 | __entry->size, | ||
1606 | __entry->map_size) | ||
1607 | ) | ||
1608 | |||
1609 | #define DEFINE_LOG_RECOVER_BUF_ITEM(name) \ | ||
1610 | DEFINE_EVENT(xfs_log_recover_buf_item_class, name, \ | ||
1611 | TP_PROTO(struct log *log, struct xfs_buf_log_format *buf_f), \ | ||
1612 | TP_ARGS(log, buf_f)) | ||
1613 | |||
1614 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_not_cancel); | ||
1615 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel); | ||
1616 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel_add); | ||
1617 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel_ref_inc); | ||
1618 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_recover); | ||
1619 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_inode_buf); | ||
1620 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_reg_buf); | ||
1621 | DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_dquot_buf); | ||
1622 | |||
1623 | DECLARE_EVENT_CLASS(xfs_log_recover_ino_item_class, | ||
1624 | TP_PROTO(struct log *log, struct xfs_inode_log_format *in_f), | ||
1625 | TP_ARGS(log, in_f), | ||
1626 | TP_STRUCT__entry( | ||
1627 | __field(dev_t, dev) | ||
1628 | __field(xfs_ino_t, ino) | ||
1629 | __field(unsigned short, size) | ||
1630 | __field(int, fields) | ||
1631 | __field(unsigned short, asize) | ||
1632 | __field(unsigned short, dsize) | ||
1633 | __field(__int64_t, blkno) | ||
1634 | __field(int, len) | ||
1635 | __field(int, boffset) | ||
1636 | ), | ||
1637 | TP_fast_assign( | ||
1638 | __entry->dev = log->l_mp->m_super->s_dev; | ||
1639 | __entry->ino = in_f->ilf_ino; | ||
1640 | __entry->size = in_f->ilf_size; | ||
1641 | __entry->fields = in_f->ilf_fields; | ||
1642 | __entry->asize = in_f->ilf_asize; | ||
1643 | __entry->dsize = in_f->ilf_dsize; | ||
1644 | __entry->blkno = in_f->ilf_blkno; | ||
1645 | __entry->len = in_f->ilf_len; | ||
1646 | __entry->boffset = in_f->ilf_boffset; | ||
1647 | ), | ||
1648 | TP_printk("dev %d:%d ino 0x%llx, size %u, fields 0x%x, asize %d, " | ||
1649 | "dsize %d, blkno 0x%llx, len %d, boffset %d", | ||
1650 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
1651 | __entry->ino, | ||
1652 | __entry->size, | ||
1653 | __entry->fields, | ||
1654 | __entry->asize, | ||
1655 | __entry->dsize, | ||
1656 | __entry->blkno, | ||
1657 | __entry->len, | ||
1658 | __entry->boffset) | ||
1659 | ) | ||
1660 | #define DEFINE_LOG_RECOVER_INO_ITEM(name) \ | ||
1661 | DEFINE_EVENT(xfs_log_recover_ino_item_class, name, \ | ||
1662 | TP_PROTO(struct log *log, struct xfs_inode_log_format *in_f), \ | ||
1663 | TP_ARGS(log, in_f)) | ||
1664 | |||
1665 | DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_recover); | ||
1666 | DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_cancel); | ||
1667 | DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_skip); | ||
1668 | |||
1498 | #endif /* _TRACE_XFS_H */ | 1669 | #endif /* _TRACE_XFS_H */ |
1499 | 1670 | ||
1500 | #undef TRACE_INCLUDE_PATH | 1671 | #undef TRACE_INCLUDE_PATH |