Lines Matching defs:emitter

6 #include "jemalloc/internal/emitter.h"
242 mutex_stats_emit(emitter_t *emitter, emitter_row_t *row,
246 emitter_table_row(emitter, row);
260 emitter_json_kv(emitter, #counter, EMITTER_TYPE_##type, \
303 stats_arena_bins_print(emitter_t *emitter, bool mutex, unsigned i,
380 emitter_table_printf(emitter, "bins:");
381 emitter_table_row(emitter, &header_row);
382 emitter_json_array_kv_begin(emitter, "bins");
429 emitter_table_printf(emitter,
433 if (in_gap && !emitter_outputs_json(emitter)) {
458 emitter_json_object_begin(emitter);
459 emitter_json_kv(emitter, "nmalloc", emitter_type_uint64,
461 emitter_json_kv(emitter, "ndalloc", emitter_type_uint64,
463 emitter_json_kv(emitter, "curregs", emitter_type_size,
465 emitter_json_kv(emitter, "nrequests", emitter_type_uint64,
468 emitter_json_kv(emitter, "prof_live_requested",
470 emitter_json_kv(emitter, "prof_live_count",
472 emitter_json_kv(emitter, "prof_accum_requested",
474 emitter_json_kv(emitter, "prof_accum_count",
477 emitter_json_kv(emitter, "nfills", emitter_type_uint64,
479 emitter_json_kv(emitter, "nflushes", emitter_type_uint64,
481 emitter_json_kv(emitter, "nreslabs", emitter_type_uint64,
483 emitter_json_kv(emitter, "curslabs", emitter_type_size,
485 emitter_json_kv(emitter, "nonfull_slabs", emitter_type_size,
488 emitter_json_object_kv_begin(emitter, "mutex");
489 mutex_stats_emit(emitter, NULL, col_mutex64,
491 emitter_json_object_end(emitter);
493 emitter_json_object_end(emitter);
550 emitter_table_row(emitter, &row);
552 emitter_json_array_end(emitter); /* Close "bins". */
555 emitter_table_printf(emitter, " ---\n");
561 stats_arena_lextents_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
599 emitter_table_printf(emitter, "large:");
600 emitter_table_row(emitter, &header_row);
601 emitter_json_array_kv_begin(emitter, "lextents");
634 emitter_table_printf(emitter,
650 emitter_json_object_begin(emitter);
652 emitter_json_kv(emitter, "prof_live_requested",
654 emitter_json_kv(emitter, "prof_live_count",
656 emitter_json_kv(emitter, "prof_accum_requested",
658 emitter_json_kv(emitter, "prof_accum_count",
661 emitter_json_kv(emitter, "curlextents", emitter_type_size,
663 emitter_json_object_end(emitter);
684 emitter_table_row(emitter, &row);
687 emitter_json_array_end(emitter); /* Close "lextents". */
689 emitter_table_printf(emitter, " ---\n");
695 stats_arena_extents_print(emitter_t *emitter, unsigned i) {
716 emitter_table_printf(emitter, "extents:");
717 emitter_table_row(emitter, &header_row);
718 emitter_json_array_kv_begin(emitter, "extents");
748 emitter_table_printf(emitter,
752 emitter_json_object_begin(emitter);
753 emitter_json_kv(emitter, "ndirty", emitter_type_size, &ndirty);
754 emitter_json_kv(emitter, "nmuzzy", emitter_type_size, &nmuzzy);
755 emitter_json_kv(emitter, "nretained", emitter_type_size,
758 emitter_json_kv(emitter, "dirty_bytes", emitter_type_size,
760 emitter_json_kv(emitter, "muzzy_bytes", emitter_type_size,
762 emitter_json_kv(emitter, "retained_bytes", emitter_type_size,
764 emitter_json_object_end(emitter);
778 emitter_table_row(emitter, &row);
781 emitter_json_array_end(emitter); /* Close "extents". */
783 emitter_table_printf(emitter, " ---\n");
788 stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
819 emitter_kv(emitter, "sec_bytes", "Bytes in small extent cache",
823 emitter_table_printf(emitter,
835 emitter_json_object_kv_begin(emitter, "hpa_shard");
836 emitter_json_kv(emitter, "npurge_passes", emitter_type_uint64,
838 emitter_json_kv(emitter, "npurges", emitter_type_uint64,
840 emitter_json_kv(emitter, "nhugifies", emitter_type_uint64,
842 emitter_json_kv(emitter, "ndehugifies", emitter_type_uint64,
862 emitter_table_printf(emitter,
873 emitter_json_object_kv_begin(emitter, "full_slabs");
874 emitter_json_kv(emitter, "npageslabs_huge", emitter_type_size,
876 emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
878 emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
880 emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
882 emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
884 emitter_json_kv(emitter, "ndirty_nonhuge", emitter_type_size,
886 emitter_json_object_end(emitter); /* End "full_slabs" */
905 emitter_table_printf(emitter,
917 emitter_json_object_kv_begin(emitter, "empty_slabs");
918 emitter_json_kv(emitter, "npageslabs_huge", emitter_type_size,
920 emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
922 emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
924 emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
926 emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
928 emitter_json_kv(emitter, "ndirty_nonhuge", emitter_type_size,
930 emitter_json_object_end(emitter); /* End "empty_slabs" */
947 emitter_table_row(emitter, &header_row);
948 emitter_json_array_kv_begin(emitter, "nonfull_slabs");
972 emitter_table_printf(emitter,
986 emitter_table_row(emitter, &row);
989 emitter_json_object_begin(emitter);
990 emitter_json_kv(emitter, "npageslabs_huge", emitter_type_size,
992 emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
994 emitter_json_kv(emitter, "ndirty_huge", emitter_type_size,
996 emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
998 emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
1000 emitter_json_kv(emitter, "ndirty_nonhuge", emitter_type_size,
1002 emitter_json_object_end(emitter);
1004 emitter_json_array_end(emitter); /* End "nonfull_slabs" */
1005 emitter_json_object_end(emitter); /* End "hpa_shard" */
1007 emitter_table_printf(emitter, " ---\n");
1012 stats_arena_mutexes_print(emitter_t *emitter, unsigned arena_ind, uint64_t uptime) {
1021 emitter_json_object_kv_begin(emitter, "mutexes");
1022 emitter_table_row(emitter, &row);
1032 emitter_json_object_kv_begin(emitter, name);
1035 mutex_stats_emit(emitter, &row, col64, col32);
1036 emitter_json_object_end(emitter); /* Close the mutex dict. */
1038 emitter_json_object_end(emitter); /* End "mutexes". */
1043 stats_arena_print(emitter_t *emitter, unsigned i, bool bins, bool large,
1064 emitter_kv(emitter, "nthreads", "assigned threads",
1068 emitter_kv(emitter, "uptime_ns", "uptime", emitter_type_uint64,
1072 emitter_kv(emitter, "dss", "dss allocation precedence",
1095 emitter_json_kv(emitter, "dirty_decay_ms", emitter_type_ssize,
1097 emitter_json_kv(emitter, "muzzy_decay_ms", emitter_type_ssize,
1100 emitter_json_kv(emitter, "pactive", emitter_type_size, &pactive);
1101 emitter_json_kv(emitter, "pdirty", emitter_type_size, &pdirty);
1102 emitter_json_kv(emitter, "pmuzzy", emitter_type_size, &pmuzzy);
1104 emitter_json_kv(emitter, "dirty_npurge", emitter_type_uint64,
1106 emitter_json_kv(emitter, "dirty_nmadvise", emitter_type_uint64,
1108 emitter_json_kv(emitter, "dirty_purged", emitter_type_uint64,
1111 emitter_json_kv(emitter, "muzzy_npurge", emitter_type_uint64,
1113 emitter_json_kv(emitter, "muzzy_nmadvise", emitter_type_uint64,
1115 emitter_json_kv(emitter, "muzzy_purged", emitter_type_uint64,
1138 emitter_table_row(emitter, &decay_row);
1163 emitter_table_row(emitter, &decay_row);
1188 emitter_table_row(emitter, &decay_row);
1225 emitter_table_row(emitter, &alloc_count_row);
1236 emitter_json_kv(emitter, #name, emitter_type_##valtype, \
1241 emitter_json_object_kv_begin(emitter, "small");
1261 emitter_table_row(emitter, &alloc_count_row);
1262 emitter_json_object_end(emitter); /* Close "small". */
1264 emitter_json_object_kv_begin(emitter, "large");
1284 emitter_table_row(emitter, &alloc_count_row);
1285 emitter_json_object_end(emitter); /* Close "large". */
1289 /* Aggregated small + large stats are emitter only in table mode. */
1307 emitter_table_row(emitter, &alloc_count_row);
1326 emitter_table_row(emitter, &mem_count_row);
1332 emitter_table_row(emitter, &mem_count_row);
1336 emitter_json_kv(emitter, #stat, emitter_type_size, &stat); \
1339 emitter_table_row(emitter, &mem_count_row);
1354 stats_arena_mutexes_print(emitter, i, uptime);
1357 stats_arena_bins_print(emitter, mutex, i, uptime);
1360 stats_arena_lextents_print(emitter, i, uptime);
1363 stats_arena_extents_print(emitter, i);
1366 stats_arena_hpa_shard_print(emitter, i, uptime);
1372 stats_general_print(emitter_t *emitter) {
1392 emitter_kv(emitter, "version", "Version", emitter_type_string, &cpv);
1395 emitter_dict_begin(emitter, "config", "Build-time option settings");
1399 emitter_kv(emitter, #name, "config."#name, \
1407 emitter_kv(emitter, "malloc_conf", "config.malloc_conf",
1418 emitter_dict_end(emitter); /* Close "config" dict. */
1424 emitter_kv(emitter, name, "opt."name, emitter_type, \
1433 emitter_kv_note(emitter, name, "opt."name, \
1461 emitter_dict_begin(emitter, "opt", "Run-time option settings");
1485 emitter_kv(emitter, "hpa_dirty_mult",
1491 emitter_kv(emitter, "hpa_dirty_mult",
1542 emitter_dict_end(emitter);
1555 emitter_dict_begin(emitter, "prof", "Profiling settings");
1558 emitter_kv(emitter, "thread_active_init",
1562 emitter_kv(emitter, "active", "prof.active", emitter_type_bool,
1566 emitter_kv(emitter, "gdump", "prof.gdump", emitter_type_bool,
1570 emitter_kv(emitter, "interval", "prof.interval",
1574 emitter_kv(emitter, "lg_sample", "prof.lg_sample",
1577 emitter_dict_end(emitter); /* Close "prof". */
1585 emitter_json_object_kv_begin(emitter, "arenas");
1588 emitter_kv(emitter, "narenas", "Arenas", emitter_type_unsigned, &uv);
1595 emitter_json_kv(emitter, "dirty_decay_ms", emitter_type_ssize, &ssv);
1598 emitter_json_kv(emitter, "muzzy_decay_ms", emitter_type_ssize, &ssv);
1601 emitter_kv(emitter, "quantum", "Quantum size", emitter_type_size, &sv);
1604 emitter_kv(emitter, "page", "Page size", emitter_type_size, &sv);
1607 emitter_kv(emitter, "tcache_max",
1613 emitter_kv(emitter, "nbins", "Number of bin size classes",
1618 emitter_kv(emitter, "nhbins", "Number of thread-cache bin size classes",
1625 if (emitter_outputs_json(emitter)) {
1626 emitter_json_array_kv_begin(emitter, "bin");
1631 emitter_json_object_begin(emitter);
1634 emitter_json_kv(emitter, "size", emitter_type_size,
1638 emitter_json_kv(emitter, "nregs", emitter_type_uint32,
1642 emitter_json_kv(emitter, "slab_size", emitter_type_size,
1646 emitter_json_kv(emitter, "nshards", emitter_type_uint32,
1649 emitter_json_object_end(emitter);
1651 emitter_json_array_end(emitter); /* Close "bin". */
1656 emitter_kv(emitter, "nlextents", "Number of large size classes",
1659 if (emitter_outputs_json(emitter)) {
1660 emitter_json_array_kv_begin(emitter, "lextent");
1665 emitter_json_object_begin(emitter);
1668 emitter_json_kv(emitter, "size", emitter_type_size,
1671 emitter_json_object_end(emitter);
1673 emitter_json_array_end(emitter); /* Close "lextent". */
1676 emitter_json_object_end(emitter); /* Close "arenas" */
1681 stats_print_helper(emitter_t *emitter, bool merged, bool destroyed,
1685 * the transition to the emitter code.
1717 emitter_json_object_kv_begin(emitter, "stats");
1718 emitter_json_kv(emitter, "allocated", emitter_type_size, &allocated);
1719 emitter_json_kv(emitter, "active", emitter_type_size, &active);
1720 emitter_json_kv(emitter, "metadata", emitter_type_size, &metadata);
1721 emitter_json_kv(emitter, "metadata_thp", emitter_type_size,
1723 emitter_json_kv(emitter, "resident", emitter_type_size, &resident);
1724 emitter_json_kv(emitter, "mapped", emitter_type_size, &mapped);
1725 emitter_json_kv(emitter, "retained", emitter_type_size, &retained);
1726 emitter_json_kv(emitter, "zero_reallocs", emitter_type_size,
1729 emitter_table_printf(emitter, "Allocated: %zu, active: %zu, "
1735 emitter_table_printf(emitter,
1739 emitter_json_object_kv_begin(emitter, "background_thread");
1740 emitter_json_kv(emitter, "num_threads", emitter_type_size,
1742 emitter_json_kv(emitter, "num_runs", emitter_type_uint64,
1744 emitter_json_kv(emitter, "run_interval", emitter_type_uint64,
1746 emitter_json_object_end(emitter); /* Close "background_thread". */
1748 emitter_table_printf(emitter, "Background threads: %zu, "
1763 emitter_table_row(emitter, &row);
1764 emitter_json_object_kv_begin(emitter, "mutexes");
1773 emitter_json_object_kv_begin(emitter, global_mutex_names[i]);
1774 mutex_stats_emit(emitter, &row, col64, col32);
1775 emitter_json_object_end(emitter);
1778 emitter_json_object_end(emitter); /* Close "mutexes". */
1781 emitter_json_object_end(emitter); /* Close "stats". */
1786 emitter_json_object_kv_begin(emitter, "stats.arenas");
1814 emitter_table_printf(emitter, "Merged arenas stats:\n");
1815 emitter_json_object_kv_begin(emitter, "merged");
1816 stats_arena_print(emitter, MALLCTL_ARENAS_ALL, bins,
1818 emitter_json_object_end(emitter); /* Close "merged". */
1824 emitter_table_printf(emitter,
1826 emitter_json_object_kv_begin(emitter, "destroyed");
1827 stats_arena_print(emitter, MALLCTL_ARENAS_DESTROYED,
1829 emitter_json_object_end(emitter); /* Close "destroyed". */
1839 emitter_json_object_kv_begin(emitter,
1841 emitter_table_printf(emitter,
1843 stats_arena_print(emitter, i, bins,
1846 emitter_json_object_end(emitter);
1850 emitter_json_object_end(emitter); /* Close "stats.arenas". */
1896 emitter_t emitter;
1897 emitter_init(&emitter,
1900 emitter_begin(&emitter);
1901 emitter_table_printf(&emitter, "___ Begin jemalloc statistics ___\n");
1902 emitter_json_object_kv_begin(&emitter, "jemalloc");
1905 stats_general_print(&emitter);
1908 stats_print_helper(&emitter, merged, destroyed, unmerged,
1912 emitter_json_object_end(&emitter); /* Closes the "jemalloc" dict. */
1913 emitter_table_printf(&emitter, "--- End jemalloc statistics ---\n");
1914 emitter_end(&emitter);