Add filters for data_physical_address
This commit is contained in:
@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user