Add filters for data_physical_address

This commit is contained in:
2026-06-14 21:15:53 +02:00
parent e3be326c42
commit 961a2f02c5

View File

@ -9,30 +9,93 @@ use lib $FindBin::Bin;
use Util; use Util;
my %CONFIGS = ( my %CONFIGS = (
no_aot => { no_aot_instr => {
label => "Exclude WAMR AOT array", label => "Exclude WAMR AOT array (instr)",
regions => [ [ '_wamr_aot_start', '_wamr_aot_end' ] ], regions => [
[
'_wamr_aot_start', '_wamr_aot_end',
'p.injection_instr_absolute'
]
],
}, },
no_mmap => { no_aot_data => {
label => "Exclude WAMR mmap", label => "Exclude WAMR AOT array (data)",
regions => [ [ '_wamr_mmap_start', '_wamr_mmap_end' ] ], regions =>
[ [ '_wamr_aot_start', '_wamr_aot_end', 'g.data_physical_address' ] ],
}, },
no_runtime_pool => { no_mmap_instr => {
label => "Exclude WAMR runtime pool", label => "Exclude WAMR mmap (instr)",
regions => [ [ '_wamr_runtime_pool_start', '_wamr_runtime_pool_end' ] ], regions => [
[
'_wamr_mmap_start', '_wamr_mmap_end',
'p.injection_instr_absolute'
]
],
}, },
no_linear_pool => { no_mmap_data => {
label => "Exclude WAMR linear pool", label => "Exclude WAMR mmap (data)",
regions => [ [ '_wamr_linear_pool_start', '_wamr_linear_pool_end' ] ], regions => [
[ '_wamr_mmap_start', '_wamr_mmap_end', 'g.data_physical_address' ]
],
}, },
no_global_heap => { no_runtime_pool_instr => {
label => "Exclude WAMR global heap", label => "Exclude WAMR runtime pool (instr)",
regions => [ [ '_wamr_global_heap_start', '_wamr_global_heap_end' ] ], 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) # 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 { sub get_configs {
return \%CONFIGS; return \%CONFIGS;
@ -55,13 +118,12 @@ sub build_filter_clause {
my @filters; my @filters;
for my $pair (@$regions) { for my $pair (@$regions) {
my ( $start_sym, $end_sym ) = @$pair; my ( $start_sym, $end_sym, $col ) = @$pair;
my $start = my $start =
Util::elf_sym_addr( "$experiment_dir/system.elf", $start_sym ); Util::elf_sym_addr( "$experiment_dir/system.elf", $start_sym );
my $end = Util::elf_sym_addr( "$experiment_dir/system.elf", $end_sym ); my $end = Util::elf_sym_addr( "$experiment_dir/system.elf", $end_sym );
next unless defined $start && defined $end && $end > $start; next unless defined $start && defined $end && $end > $start;
push @filters, push @filters, "$col NOT BETWEEN $start AND @{[$end - 1]}";
"p.injection_instr_absolute NOT BETWEEN $start AND @{[$end - 1]}";
} }
return "" unless @filters; return "" unless @filters;