From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiong Wang Subject: [PATCH bpf-next 0/3] bpf: cleanups on managing subprog information Date: Mon, 30 Apr 2018 18:28:13 -0400 Message-ID: <1525127296-3573-1-git-send-email-jiong.wang@netronome.com> Cc: ecree@solarflare.com, netdev@vger.kernel.org, oss-drivers@netronome.com, Jiong Wang To: alexei.starovoitov@gmail.com, borkmann@iogearbox.net Return-path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:53086 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754183AbeD3W2Z (ORCPT ); Mon, 30 Apr 2018 18:28:25 -0400 Received: by mail-wm0-f65.google.com with SMTP id m70so15200039wma.2 for ; Mon, 30 Apr 2018 15:28:25 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: This patch set clean up some code logic related with managing subprog information. Part of the set are inspried by Edwin's code in his RFC: "bpf/verifier: subprog/func_call simplifications" but with clearer separation so it could be easier to review. - Path 1 unifies main prog and subprogs. All of them are registered in env->subprog_starts. - After patch 1, it is clear that subprog_starts and subprog_stack_depth could be merged as both of them now have main and subprog unified. Patch 2 therefore does the merge, all subprog information are centred at bpf_subprog_info. - Patch 3 goes further to introduce a new fake "exit" subprog which serves as an ending marker to the subprog list. We could then turn the following code snippets across verifier: if (env->subprog_cnt == cur_subprog + 1) subprog_end = insn_cnt; else subprog_end = env->subprog_info[cur_subprog + 1].start; into: subprog_end = env->subprog_info[cur_subprog + 1].start; There is no functional change by this patch set. No bpf selftest regression found after this patch set. Jiong Wang (3): bpf: unify main prog and subprog bpf: centre subprog information fields bpf: add faked "ending" subprog include/linux/bpf_verifier.h | 9 ++-- kernel/bpf/verifier.c | 118 +++++++++++++++++++++---------------------- 2 files changed, 65 insertions(+), 62 deletions(-) -- 2.7.4