File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit"
1313
1414import (
1515 "errors"
16+ "fmt"
1617 "path"
1718 "strings"
1819 "sync"
@@ -256,22 +257,26 @@ func (l *luajitInstance) synchronizeMappings(ebpf interpreter.EbpfHandler, pid l
256257 l .jitRegions [* m ] = cycle
257258 }
258259
259- // Add new ones and remove garbage ones
260+ // Remove old ones
260261 for m , c := range l .jitRegions {
261262 k := regionKey {start : m .Vaddr , end : m .Vaddr + m .Length }
262263 if c != cycle {
263264 for _ , prefix := range l .prefixes [k ] {
264265 if err := ebpf .DeletePidInterpreterMapping (pid , prefix ); err != nil {
265- return err
266+ return errors . Join ( err , fmt . Errorf ( "failed to delete prefix %v" , prefix ))
266267 }
267268 }
268269 delete (l .jitRegions , m )
269270 delete (l .prefixes , k )
270- } else {
271- if _ , ok := l .prefixes [k ]; ! ok {
272- if err := l .addJITRegion (ebpf , pid , m .Vaddr , m .Vaddr + m .Length ); err != nil {
273- return err
274- }
271+ }
272+ }
273+
274+ // Add new ones
275+ for m := range l .jitRegions {
276+ k := regionKey {start : m .Vaddr , end : m .Vaddr + m .Length }
277+ if _ , ok := l .prefixes [k ]; ! ok {
278+ if err := l .addJITRegion (ebpf , pid , m .Vaddr , m .Vaddr + m .Length ); err != nil {
279+ return errors .Join (err , fmt .Errorf ("failed to add JIT region %v" , m ))
275280 }
276281 }
277282 }
You can’t perform that action at this time.
0 commit comments