From: Quentin Monnet <quentin.monnet@netronome.com> To: Tejun Heo <tj@kernel.org>, axboe@kernel.dk, newella@fb.com, clm@fb.com, josef@toxicpanda.com, dennisz@fb.com, lizefan@huawei.com, hannes@cmpxchg.org Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, kernel-team@fb.com, cgroups@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, kafai@fb.com, songliubraving@fb.com, yhs@fb.com, bpf@vger.kernel.org Subject: Re: [PATCH 10/10] blkcg: implement BPF_PROG_TYPE_IO_COST Date: Fri, 14 Jun 2019 12:32:09 +0100 Message-ID: <e4d1df7b-66bb-061a-8ecb-ff1e5be3ab1d@netronome.com> (raw) In-Reply-To: <20190614015620.1587672-11-tj@kernel.org> 2019-06-13 18:56 UTC-0700 ~ Tejun Heo <tj@kernel.org> > Currently, blkcg implements one builtin IO cost model - lienar. To > allow customization and experimentation, allow a bpf program to > override IO cost model. > > Signed-off-by: Tejun Heo <tj@kernel.org> > --- [...] > diff --git a/tools/bpf/bpftool/feature.c b/tools/bpf/bpftool/feature.c > index d672d9086fff..beeac8ac48f3 100644 > --- a/tools/bpf/bpftool/feature.c > +++ b/tools/bpf/bpftool/feature.c > @@ -383,6 +383,9 @@ static void probe_kernel_image_config(void) > /* bpftilter module with "user mode helper" */ > "CONFIG_BPFILTER_UMH", > > + /* Block */ > + "CONFIG_BLK_IO_COST", > + > /* test_bpf module for BPF tests */ > "CONFIG_TEST_BPF", > }; > diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h > index 3d63feb7f852..298e53f35573 100644 > --- a/tools/bpf/bpftool/main.h > +++ b/tools/bpf/bpftool/main.h > @@ -74,6 +74,7 @@ static const char * const prog_type_name[] = { > [BPF_PROG_TYPE_SK_REUSEPORT] = "sk_reuseport", > [BPF_PROG_TYPE_FLOW_DISSECTOR] = "flow_dissector", > [BPF_PROG_TYPE_CGROUP_SYSCTL] = "cgroup_sysctl", > + [BPF_PROG_TYPE_IO_COST] = "io_cost", > }; > > extern const char * const map_type_name[]; Hi Tejun, Please make sure to update the documentation and bash completion when adding the new type to bpftool. You probably want something like the diff below. Thanks, Quentin diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst index 228a5c863cc7..0ceae71c07a8 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst @@ -40,7 +40,7 @@ PROG COMMANDS | **lwt_seg6local** | **sockops** | **sk_skb** | **sk_msg** | **lirc_mode2** | | **cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** | | **cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** | -| **cgroup/sysctl** +| **cgroup/sysctl** | **io_cost** | } | *ATTACH_TYPE* := { | **msg_verdict** | **stream_verdict** | **stream_parser** | **flow_dissector** diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool index 2725e27dfa42..057590611e63 100644 --- a/tools/bpf/bpftool/bash-completion/bpftool +++ b/tools/bpf/bpftool/bash-completion/bpftool @@ -378,7 +378,7 @@ _bpftool() cgroup/connect4 cgroup/connect6 \ cgroup/sendmsg4 cgroup/sendmsg6 \ cgroup/post_bind4 cgroup/post_bind6 \ - cgroup/sysctl" -- \ + cgroup/sysctl io_cost" -- \ "$cur" ) ) return 0 ;; diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c index 1f209c80d906..6ba1d567bf17 100644 --- a/tools/bpf/bpftool/prog.c +++ b/tools/bpf/bpftool/prog.c @@ -1070,7 +1070,7 @@ static int do_help(int argc, char **argv) " sk_reuseport | flow_dissector | cgroup/sysctl |\n" " cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |\n" " cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |\n" - " cgroup/sendmsg4 | cgroup/sendmsg6 }\n" + " cgroup/sendmsg4 | cgroup/sendmsg6 | io_cost }\n" " ATTACH_TYPE := { msg_verdict | stream_verdict | stream_parser |\n" " flow_dissector }\n" " " HELP_SPEC_OPTIONS "\n"
next prev parent reply index Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-14 1:56 [PATCHSET block/for-next] IO cost model based work-conserving porportional controller Tejun Heo 2019-06-14 1:56 ` [PATCH 01/10] blkcg: pass @q and @blkcg into blkcg_pol_alloc_pd_fn() Tejun Heo 2019-06-14 1:56 ` [PATCH 02/10] blkcg: make ->cpd_init_fn() optional Tejun Heo 2019-06-14 1:56 ` [PATCH 03/10] blkcg: separate blkcg_conf_get_disk() out of blkg_conf_prep() Tejun Heo 2019-06-14 1:56 ` [PATCH 04/10] block/rq_qos: add rq_qos_merge() Tejun Heo 2019-06-14 1:56 ` [PATCH 05/10] block/rq_qos: implement rq_qos_ops->queue_depth_changed() Tejun Heo 2019-06-14 1:56 ` [PATCH 06/10] blkcg: s/RQ_QOS_CGROUP/RQ_QOS_LATENCY/ Tejun Heo 2019-06-14 1:56 ` [PATCH 07/10] blk-mq: add optional request->pre_start_time_ns Tejun Heo 2019-06-14 1:56 ` [PATCH 08/10] blkcg: implement blk-ioweight Tejun Heo 2019-06-14 12:17 ` Toke Høiland-Jørgensen 2019-06-14 15:09 ` Tejun Heo 2019-06-14 20:50 ` Toke Høiland-Jørgensen 2019-06-15 15:57 ` Tejun Heo 2019-06-14 1:56 ` [PATCH 09/10] blkcg: add tools/cgroup/monitor_ioweight.py Tejun Heo 2019-06-14 1:56 ` [PATCH 10/10] blkcg: implement BPF_PROG_TYPE_IO_COST Tejun Heo 2019-06-14 11:32 ` Quentin Monnet [this message] 2019-06-14 14:52 ` Tejun Heo 2019-06-14 16:35 ` Alexei Starovoitov 2019-06-14 17:09 ` Tejun Heo 2019-06-14 17:56 ` [PATCHSET block/for-next] IO cost model based work-conserving porportional controller Tejun Heo 2019-08-20 10:48 ` Paolo Valente 2019-08-20 15:04 ` Paolo Valente 2019-08-20 15:19 ` Tejun Heo 2019-08-22 8:58 ` Paolo Valente 2019-08-31 6:53 ` Tejun Heo 2019-08-31 7:10 ` Paolo Valente 2019-08-31 11:20 ` Tejun Heo 2019-09-02 15:45 ` Paolo Valente 2019-09-02 15:56 ` Tejun Heo 2019-09-02 19:43 ` Paolo Valente 2019-09-05 16:55 ` Tejun Heo 2019-09-06 9:07 ` Paolo Valente 2019-09-06 14:58 ` Tejun Heo 2020-02-19 18:34 ` Paolo Valente
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=e4d1df7b-66bb-061a-8ecb-ff1e5be3ab1d@netronome.com \ --to=quentin.monnet@netronome.com \ --cc=ast@kernel.org \ --cc=axboe@kernel.dk \ --cc=bpf@vger.kernel.org \ --cc=cgroups@vger.kernel.org \ --cc=clm@fb.com \ --cc=daniel@iogearbox.net \ --cc=dennisz@fb.com \ --cc=hannes@cmpxchg.org \ --cc=josef@toxicpanda.com \ --cc=kafai@fb.com \ --cc=kernel-team@fb.com \ --cc=linux-block@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lizefan@huawei.com \ --cc=newella@fb.com \ --cc=songliubraving@fb.com \ --cc=tj@kernel.org \ --cc=yhs@fb.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-Block Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-block/0 linux-block/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-block linux-block/ https://lore.kernel.org/linux-block \ linux-block@vger.kernel.org public-inbox-index linux-block Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-block AGPL code for this site: git clone https://public-inbox.org/public-inbox.git