Closed firelzrd closed 3 weeks ago
Comments were added. Thank you for the suggestion. I am still tackling the program won't-start issue.
I see that the eBPF verifier for some reason turns a pointer into a scalar value while copy operations from an array to another.
And operations like bpf_cpumask_and
and others starts to fail, since the pointer is no longer a pointer, even if it's stored in struct bpf_cpumask*
.
That's what I found out so far. And this makes me crazy.
Let me think about how to sort this out.
It seems that currently there's no good way to make it consider as a pointer instead of a scalar when using an array of pointer. So I'm closing this PR for now. Thanks for your time!
Trying to reduce some of the logical redundancy and code amount, while maintaining readability and simpleness. cpumasks bound to respective cache levels {p, l2, l3}, dsq_ids for each of the global DSQs {preferred, shared} are now arrays, and can be iterated using loop syntax.