numam-spdk/scripts
Konrad Sztyber 597688b2b1 scripts/trace: use ijson to parse the traces
Since the trace files can get very large (several GBs), parsing them
using python's json module might require an unfeasible amount of memory,
as it needs to load the whole file first.  The ijson [1] library
provides interfaces for parsing files iteratively, only loading a small
portion of a file at a time.

It requires the input JSON to have the tsc_rate and the definitions of
the tracepoints listed before the tracepoint entries.  It's not a big
deal, as this is the way `spdk_trace` generates it, but it's worth
noting, as passing that file through something like `jq -S` might make
it unreadable to the trace script.

[1] https://pypi.org/project/ijson

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I03c0c3fb47091da615a3978b8d63edf4d876b811
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8275
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Monica Kenguva <monica.kenguva@intel.com>
2021-07-07 09:43:37 +00:00
..
bash-completion event: replace master_core with main_core in spdk_app_opts 2020-12-03 09:41:07 +00:00
bpf scripts/trace: use ijson to parse the traces 2021-07-07 09:43:37 +00:00
ceph scripts/ceph: load loop module explicitly 2021-03-26 18:46:13 +00:00
perf scripts/nvmf_perf: make rate_iops actually optional 2021-05-28 14:25:54 +00:00
pkgdep scripts/trace: use ijson to parse the traces 2021-07-07 09:43:37 +00:00
rpc iscsi: Set resource pool size to the predetermined values to run with little memory 2021-06-17 08:59:18 +00:00
spdkcli nvmf: remove usage of "whitelist" 2020-12-03 09:41:07 +00:00
vagrant scripts/vagrant: add fedora34 2021-07-05 14:36:34 +00:00
bpftrace.sh nvmf: add USDT probes for subsystem state changes 2021-06-08 08:27:15 +00:00
check_format.sh check_format: Fix git-grep pattern 2021-07-05 14:35:50 +00:00
common.sh scripts: add autotest support for Windows 2021-06-08 08:19:32 +00:00
config_converter.py scripts/config_converter: skip sections not present in legacy config 2021-01-15 08:32:10 +00:00
core-collector.sh scripts: Use core dump collector 2021-01-06 00:01:05 +00:00
detect_cc.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
dpdk_mem_info.py scripts: add a parser for the dpdk memory stats. 2020-01-24 05:46:43 +00:00
eofnl scripts/check_format: check trailing whitespace 2017-10-24 17:35:23 -04:00
fio-wrapper scripts/fio-wrapper: Move devices sync to configure_devices() 2021-05-27 07:35:29 +00:00
gdb_macros.py scripts: Use range instead of xrange 2019-02-13 22:54:15 +00:00
gen_ftl.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
gen_nvme.sh script/gen_nvme: do not generate legacy configuration 2020-10-22 17:08:41 +00:00
genconfig.py genconfig.py: allow numbers in config option names 2020-02-20 14:40:19 +00:00
get-pmr pkgdep/git: Bump vanilla qemu to v6.0.0 2021-05-11 11:51:01 +00:00
histogram.py histograms: add script for parsing histogram data 2019-01-24 14:14:32 +00:00
iostat.py iostat : add -x to display extended statistics 2021-06-04 22:47:44 +00:00
pc_libs.sh build: generate pkg-config files for SPDK 2021-01-21 09:46:32 +00:00
pc_modules.sh build: generate pkg-config files for SPDK 2021-01-21 09:46:32 +00:00
pc.sh build: install generated pkg-config files 2021-03-17 11:10:45 +00:00
pkgdep.sh scripts/pkgdep: Move distro independent parts to a common place 2020-08-10 11:28:20 +00:00
posix.txt build: Automatically detect use of POSIX includes 2017-05-08 13:20:37 -07:00
prep_benchmarks.sh check_format: Reformat the Bash code in compliance with shfmt 2020-05-07 20:52:21 +00:00
qat_setup.sh configure: remove --with-igb-uio-driver option 2021-01-22 08:47:48 +00:00
rpc_http_proxy.py scripts: Add SSL certificate option in rpc_http_proxy 2020-05-05 08:04:00 +00:00
rpc.py rpc: Fix raid strip size method not consistent. 2021-06-24 17:30:19 +00:00
rxe_cfg_small.sh test/nvmf: Use rxe_cfg to get rxe-enabled net devices 2021-04-12 09:41:20 +00:00
setup.sh check_format: Fixes for shellcheck's SC2030 directive 2021-06-30 22:43:05 +00:00
spdkcli.py scripts/spdkcli: Stay on command input. 2020-07-08 07:55:15 +00:00
sync_dev_uevents.sh sync_dev_uevents: Break from the loop if kernel seqnum matches mdev's 2021-02-04 16:10:49 +00:00