Re: [PATCH net-next 6/9] bpf: fix stack_depth usage by test_bpf.ko
From: Alexei Starovoitov <hidden>
Date: 2017-05-31 22:41:41
On 5/31/17 11:45 AM, Alexei Starovoitov wrote:
On 5/31/17 11:43 AM, David Miller wrote:quoted
From: Alexei Starovoitov <redacted> Date: Wed, 31 May 2017 11:39:37 -0700quoted
On 5/31/17 11:15 AM, David Miller wrote:quoted
From: Alexei Starovoitov <redacted> Date: Tue, 30 May 2017 13:31:32 -0700quoted
test_bpf.ko doesn't call verifier before selecting interpreter or JITing, hence the tests need to manually specify the amount of stack they consume. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net>I do not like this and the previous patch, it seems so error prone.in what sense 'error prone' ?In the sense that a human computes these numbers, and nothing checks if it is correct or not until program perhaps crashes if the value is wrong.right. that's how all these tests are. See bpf_fill_ld_abs_vlan_push_pop() for example. If that codegen has a bug, it will crash the kernel. That's why it's done from kernel module to do things that user space cannot do.
btw, when added a bunch of these '.stack_depth = 40' I was thinking to randomize these values in [40, 512] range to stress test interpreter and JITs more, but then decided not to do that to avoid questions why these numbers don't match the instructions. Now I'm thinking we should actually do it for two reasons: - to stress test stuff - and to demonstrate more clearly that test_bpf.ko can really do things that user space cannot and that's the purpose of this .ko Thoughts?