diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-07-28 19:30:11 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-07-29 08:30:56 +0000 |
| commit | 5971223333d76c5f21de85038c78785ac766d696 (patch) | |
| tree | 2a2e397a2638f4d81f617df35be9aec21569ce8a /pkg/manager | |
| parent | c4a9548758bac1c6dc231afd7543b5e8c5b6a65e (diff) | |
prog: generate choice table only for enabled calls
We used to generate a choice table and do its normalization for all
present syscalls, also it was not considered during the /prio page
generation.
Enabled/disabled syscalls were accounted for in the choice table
construction, but there's a chance that the resulting table was still
somewhat skewed.
The situation must have become worse after several thousands of auto
syscalls were added.
Diffstat (limited to 'pkg/manager')
| -rw-r--r-- | pkg/manager/http.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/pkg/manager/http.go b/pkg/manager/http.go index 50f672207..eaf2459f5 100644 --- a/pkg/manager/http.go +++ b/pkg/manager/http.go @@ -667,14 +667,22 @@ func (serv *HTTPServer) httpPrio(w http.ResponseWriter, r *http.Request) { progs = append(progs, inp.Prog) } - prios := serv.Cfg.Target.CalculatePriorities(progs) + var enabled map[*prog.Syscall]bool + if obj := serv.EnabledSyscalls.Load(); obj != nil { + enabled = obj.(map[*prog.Syscall]bool) + } + prios, generatable := serv.Cfg.Target.CalculatePriorities(progs, enabled) data := &UIPrioData{ UIPageHeader: serv.pageHeader(r, "syscall priorities"), Call: callName, } for i, p := range prios[call.ID] { - data.Prios = append(data.Prios, UIPrio{serv.Cfg.Target.Syscalls[i].Name, p}) + syscall := serv.Cfg.Target.Syscalls[i] + if !generatable[syscall] { + continue + } + data.Prios = append(data.Prios, UIPrio{syscall.Name, p}) } sort.Slice(data.Prios, func(i, j int) bool { return data.Prios[i].Prio > data.Prios[j].Prio |
