All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Sitnicki <jakub@cloudflare.com>
To: Liu Jian <liujian56@huawei.com>
Cc: john.fastabend@gmail.com, ast@kernel.org, daniel@iogearbox.net,
	andrii@kernel.org, martin.lau@linux.dev, song@kernel.org,
	yonghong.song@linux.dev, kpsingh@kernel.org, sdf@google.com,
	haoluo@google.com, jolsa@kernel.org, davem@davemloft.net,
	edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
	dsahern@kernel.org, netdev@vger.kernel.org, bpf@vger.kernel.org
Subject: Re: [PATCH bpf-next v5 1/7] bpf, sockmap: add BPF_F_PERMANENT flag for skmsg redirect
Date: Fri, 13 Oct 2023 14:34:49 +0200	[thread overview]
Message-ID: <87v8baelti.fsf@cloudflare.com> (raw)
In-Reply-To: <20230927093013.1951659-2-liujian56@huawei.com>

On Wed, Sep 27, 2023 at 05:30 PM +08, Liu Jian wrote:
> If the sockmap msg redirection function is used only to forward packets
> and no other operation, the execution result of the BPF_SK_MSG_VERDICT
> program is the same each time. In this case, the BPF program only needs to
> be run once. Add BPF_F_PERMANENT flag to bpf_msg_redirect_map() and
> bpf_msg_redirect_hash() to implement this ability.
>
> Then we can enable this function in the bpf program as follows:
> bpf_msg_redirect_hash(xx, xx, xx, BPF_F_INGRESS | BPF_F_PERMANENT);
>
> Test results using netperf  TCP_STREAM mode:
> for i in 1 64 128 512 1k 2k 32k 64k 100k 500k 1m;then
> netperf -T 1,2 -t TCP_STREAM -H 127.0.0.1 -l 20 -- -m $i -s 100m,100m -S 100m,100m
> done
>
> before:
> 3.84 246.52 496.89 1885.03 3415.29 6375.03 40749.09 48764.40 51611.34 55678.26 55992.78
> after:
> 4.43 279.20 555.82 2080.79 3870.70 7105.44 41836.41 49709.75 51861.56 55211.00 54566.85
>
> Signed-off-by: Liu Jian <liujian56@huawei.com>
> ---

I adapted a scripted benchmark for sk_msg redirect I had written
recently [1] to double check these numbers.

Looks good. The boost is reproducible. Sample test run captured at [2].

  *** netns-to-netns TCP latency test ***
  
  sockperf: Summary: Message Rate is 87638 [msg/sec]
  sockperf: Summary: BandWidth is 123.027 MBps (984.216 Mbps)
  
  *** netns-to-netns TCP latency test WITH sockmap bypass ***
  
  sockperf: Summary: Message Rate is 135718 [msg/sec]
  sockperf: Summary: BandWidth is 190.522 MBps (1524.177 Mbps)
  
  *** netns-to-netns TCP latency test WITH sockmap bypass + F_PERMANENT ***
  
  sockperf: Summary: Message Rate is 148700 [msg/sec]
  sockperf: Summary: BandWidth is 208.746 MBps (1669.971 Mbps)

And, as expected, I'm seeing just a different prog run count when using
F_PERMANENT after the test:

  175: sk_msg  name sk_msg_prog  tag 7c26e0d6e8e92a36  gpl run_time_ns 245761059 run_cnt 4071588
          loaded_at 2023-10-13T14:27:28+0200  uid 0
          xlated 80B  jited 62B  memlock 4096B  map_ids 88,90
          btf_id 173
  177: sk_msg  name sk_msg_prog_once  tag e460e6fffdc8ff8a  gpl run_time_ns 1441 run_cnt 1
          loaded_at 2023-10-13T14:27:28+0200  uid 0
          xlated 80B  jited 62B  memlock 4096B  map_ids 88,90
          btf_id 173

Feel free to add my:

Tested-by: Jakub Sitnicki <jakub@cloudflare.com>

[1]
https://github.com/jsitnicki/srecon-2023-sockmap/blob/test-f_permanent/examples/redir-bypass/test_redir_bypass.sh
[2] https://github.com/jsitnicki/srecon-2023-sockmap/blob/test-f_permanent/examples/redir-bypass/example_redir_bypass.txt

  parent reply	other threads:[~2023-10-13 12:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-27  9:30 [PATCH bpf-next v5 0/7] add BPF_F_PERMANENT flag for sockmap skmsg redirect Liu Jian
2023-09-27  9:30 ` [PATCH bpf-next v5 1/7] bpf, sockmap: add BPF_F_PERMANENT flag for " Liu Jian
2023-10-03  4:27   ` John Fastabend
2023-10-14 12:05     ` liujian (CE)
2023-10-13 12:34   ` Jakub Sitnicki [this message]
2023-09-27  9:30 ` [PATCH bpf-next v5 2/7] selftests/bpf: Add txmsg permanently test for sockmap Liu Jian
2023-09-27  9:30 ` [PATCH bpf-next v5 3/7] selftests/bpf: Add txmsg redir " Liu Jian
2023-09-27  9:30 ` [PATCH bpf-next v5 4/7] selftests/bpf: add skmsg verdict tests Liu Jian
2023-09-27  9:30 ` [PATCH bpf-next v5 5/7] selftests/bpf: add two skmsg verdict tests for BPF_F_PERMANENT flag Liu Jian
2023-09-27  9:30 ` [PATCH bpf-next v5 6/7] selftests/bpf: add tests for verdict skmsg to itself Liu Jian
2023-09-27  9:30 ` [PATCH bpf-next v5 7/7] selftests/bpf: add tests for verdict skmsg to closed socket Liu Jian
2023-10-03  4:31 ` [PATCH bpf-next v5 0/7] add BPF_F_PERMANENT flag for sockmap skmsg redirect John Fastabend

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=87v8baelti.fsf@cloudflare.com \
    --to=jakub@cloudflare.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=edumazet@google.com \
    --cc=haoluo@google.com \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kpsingh@kernel.org \
    --cc=kuba@kernel.org \
    --cc=liujian56@huawei.com \
    --cc=martin.lau@linux.dev \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sdf@google.com \
    --cc=song@kernel.org \
    --cc=yonghong.song@linux.dev \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.