mbox series

[bpf-next,v3,0/6] bpf/verifier: range computation improvements

Message ID 20240424224053.471771-1-cupertino.miranda@oracle.com (mailing list archive)
Headers show
Series bpf/verifier: range computation improvements | expand

Message

Cupertino Miranda April 24, 2024, 10:40 p.m. UTC
Hi everyone,

This is the third series of these patches.
Thank you Eduard and Yonghong for your reviews.

Regards,
Cupertino

Changes from v1:
 - Reordered patches in the series.
 - Fix refactor to be acurate with original code.
 - Fixed other mentioned small problems.

Changes from v2:
 - Added a patch to replace mark_reg_unknowon for __mark_reg_unknown in
   the context of range computation.
 - Reverted implementation of refactor to v1 which used a simpler
   boolean return value in check function.
 - Further relaxed MUL to allow it to still compute a range when neither
   of its registers is a known value.
 - Simplified tests based on Eduards example.
 - Added messages in selftest commits.

Cupertino Miranda (6):
  bpf/verifier: replace calls to mark_reg_unknown.
  bpf/verifier: refactor checks for range computation
  bpf/verifier: improve XOR and OR range computation
  selftests/bpf: XOR and OR range computation tests.
  bpf/verifier: relax MUL range computation check
  selftests/bpf: MUL range computation tests.

 kernel/bpf/verifier.c                         | 139 ++++++++++--------
 .../selftests/bpf/progs/verifier_bounds.c     |  63 ++++++++
 2 files changed, 137 insertions(+), 65 deletions(-)

Comments

Cupertino Miranda April 24, 2024, 10:45 p.m. UTC | #1
+Cc: Eduard Zingerman <eddyz87@gmail.com>

Apologies Eduard, forgot to add you to the CC list in the commits. :(

Cupertino Miranda writes:

> Hi everyone,
>
> This is the third series of these patches.
> Thank you Eduard and Yonghong for your reviews.
>
> Regards,
> Cupertino
>
> Changes from v1:
>  - Reordered patches in the series.
>  - Fix refactor to be acurate with original code.
>  - Fixed other mentioned small problems.
>
> Changes from v2:
>  - Added a patch to replace mark_reg_unknowon for __mark_reg_unknown in
>    the context of range computation.
>  - Reverted implementation of refactor to v1 which used a simpler
>    boolean return value in check function.
>  - Further relaxed MUL to allow it to still compute a range when neither
>    of its registers is a known value.
>  - Simplified tests based on Eduards example.
>  - Added messages in selftest commits.
>
> Cupertino Miranda (6):
>   bpf/verifier: replace calls to mark_reg_unknown.
>   bpf/verifier: refactor checks for range computation
>   bpf/verifier: improve XOR and OR range computation
>   selftests/bpf: XOR and OR range computation tests.
>   bpf/verifier: relax MUL range computation check
>   selftests/bpf: MUL range computation tests.
>
>  kernel/bpf/verifier.c                         | 139 ++++++++++--------
>  .../selftests/bpf/progs/verifier_bounds.c     |  63 ++++++++
>  2 files changed, 137 insertions(+), 65 deletions(-)