From 961a2f02c528bce8757c24b304b56ff577caf389 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sun, 14 Jun 2026 21:15:53 +0200 Subject: [PATCH] Add filters for data_physical_address --- scripts/Modules/Filters.pm | 100 ++++++++++++++++++++++++++++++------- 1 file changed, 81 insertions(+), 19 deletions(-) diff --git a/scripts/Modules/Filters.pm b/scripts/Modules/Filters.pm index a47b2ed..9fc8b51 100644 --- a/scripts/Modules/Filters.pm +++ b/scripts/Modules/Filters.pm @@ -9,30 +9,93 @@ use lib $FindBin::Bin; use Util; my %CONFIGS = ( - no_aot => { - label => "Exclude WAMR AOT array", - regions => [ [ '_wamr_aot_start', '_wamr_aot_end' ] ], + no_aot_instr => { + label => "Exclude WAMR AOT array (instr)", + regions => [ + [ + '_wamr_aot_start', '_wamr_aot_end', + 'p.injection_instr_absolute' + ] + ], }, - no_mmap => { - label => "Exclude WAMR mmap", - regions => [ [ '_wamr_mmap_start', '_wamr_mmap_end' ] ], + no_aot_data => { + label => "Exclude WAMR AOT array (data)", + regions => + [ [ '_wamr_aot_start', '_wamr_aot_end', 'g.data_physical_address' ] ], }, - no_runtime_pool => { - label => "Exclude WAMR runtime pool", - regions => [ [ '_wamr_runtime_pool_start', '_wamr_runtime_pool_end' ] ], + no_mmap_instr => { + label => "Exclude WAMR mmap (instr)", + regions => [ + [ + '_wamr_mmap_start', '_wamr_mmap_end', + 'p.injection_instr_absolute' + ] + ], }, - no_linear_pool => { - label => "Exclude WAMR linear pool", - regions => [ [ '_wamr_linear_pool_start', '_wamr_linear_pool_end' ] ], + no_mmap_data => { + label => "Exclude WAMR mmap (data)", + regions => [ + [ '_wamr_mmap_start', '_wamr_mmap_end', 'g.data_physical_address' ] + ], }, - no_global_heap => { - label => "Exclude WAMR global heap", - regions => [ [ '_wamr_global_heap_start', '_wamr_global_heap_end' ] ], + no_runtime_pool_instr => { + label => "Exclude WAMR runtime pool (instr)", + regions => [ + [ + '_wamr_runtime_pool_start', '_wamr_runtime_pool_end', + 'p.injection_instr_absolute' + ] + ], + }, + no_runtime_pool_data => { + label => "Exclude WAMR runtime pool (data)", + regions => [ + [ + '_wamr_runtime_pool_start', '_wamr_runtime_pool_end', + 'g.data_physical_address' + ] + ], + }, + no_linear_pool_instr => { + label => "Exclude WAMR linear pool (instr)", + regions => [ + [ + '_wamr_linear_pool_start', '_wamr_linear_pool_end', + 'p.injection_instr_absolute' + ] + ], + }, + no_linear_pool_data => { + label => "Exclude WAMR linear pool (data)", + regions => [ + [ + '_wamr_linear_pool_start', '_wamr_linear_pool_end', + 'g.data_physical_address' + ] + ], + }, + no_global_heap_instr => { + label => "Exclude WAMR global heap (instr)", + regions => [ + [ + '_wamr_global_heap_start', '_wamr_global_heap_end', + 'p.injection_instr_absolute' + ] + ], + }, + no_global_heap_data => { + label => "Exclude WAMR global heap (data)", + regions => [ + [ + '_wamr_global_heap_start', '_wamr_global_heap_end', + 'g.data_physical_address' + ] + ], }, ); # Those will be executed automatically by runner.pl (+ no filter at all) -my @DEFAULT_CONFIGS = ('no_aot'); +my @DEFAULT_CONFIGS = ('no_aot_data'); sub get_configs { return \%CONFIGS; @@ -55,13 +118,12 @@ sub build_filter_clause { my @filters; for my $pair (@$regions) { - my ( $start_sym, $end_sym ) = @$pair; + my ( $start_sym, $end_sym, $col ) = @$pair; my $start = Util::elf_sym_addr( "$experiment_dir/system.elf", $start_sym ); my $end = Util::elf_sym_addr( "$experiment_dir/system.elf", $end_sym ); next unless defined $start && defined $end && $end > $start; - push @filters, - "p.injection_instr_absolute NOT BETWEEN $start AND @{[$end - 1]}"; + push @filters, "$col NOT BETWEEN $start AND @{[$end - 1]}"; } return "" unless @filters;