<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/bpf/preload, branch v6.4</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v6.4</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v6.4'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2023-01-28T20:45:15Z</updated>
<entry>
<title>bpf: iterators: Split iterators.lskel.h into little- and big- endian versions</title>
<updated>2023-01-28T20:45:15Z</updated>
<author>
<name>Ilya Leoshkevich</name>
<email>iii@linux.ibm.com</email>
</author>
<published>2023-01-28T00:06:43Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0f0e5f5bd5066c9ffaa006e26fc7d092b04d4088'/>
<id>urn:sha1:0f0e5f5bd5066c9ffaa006e26fc7d092b04d4088</id>
<content type='text'>
iterators.lskel.h is little-endian, therefore bpf iterator is currently
broken on big-endian systems. Introduce a big-endian version and add
instructions regarding its generation. Unfortunately bpftool's
cross-endianness capabilities are limited to BTF right now, so the
procedure requires access to a big-endian machine or a configured
emulator.

Signed-off-by: Ilya Leoshkevich &lt;iii@linux.ibm.com&gt;
Link: https://lore.kernel.org/r/20230128000650.1516334-25-iii@linux.ibm.com
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
</content>
</entry>
<entry>
<title>bpf: iterators: Build and use lightweight bootstrap version of bpftool</title>
<updated>2022-07-15T19:01:30Z</updated>
<author>
<name>Pu Lehui</name>
<email>pulehui@huawei.com</email>
</author>
<published>2022-07-14T02:46:12Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3848636b4a88f0706f9ce48d532163244abadd43'/>
<id>urn:sha1:3848636b4a88f0706f9ce48d532163244abadd43</id>
<content type='text'>
kernel/bpf/preload/iterators use bpftool for vmlinux.h, skeleton, and
static linking only. So we can use lightweight bootstrap version of
bpftool to handle these, and it will be faster.

Suggested-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Signed-off-by: Pu Lehui &lt;pulehui@huawei.com&gt;
Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20220714024612.944071-4-pulehui@huawei.com
</content>
</entry>
<entry>
<title>bpf: Remove redundant slash</title>
<updated>2022-03-08T06:19:32Z</updated>
<author>
<name>Yuntao Wang</name>
<email>ytcoode@gmail.com</email>
</author>
<published>2022-03-05T16:10:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4989135a85334337ac8b7e42e7ee1a569ad5f7f5'/>
<id>urn:sha1:4989135a85334337ac8b7e42e7ee1a569ad5f7f5</id>
<content type='text'>
The trailing slash of LIBBPF_SRCS is redundant, remove it. Also inline
it as its only used in LIBBPF_INCLUDE.

Signed-off-by: Yuntao Wang &lt;ytcoode@gmail.com&gt;
Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20220305161013.361646-1-ytcoode@gmail.com
</content>
</entry>
<entry>
<title>bpf: Fix issue with bpf preload module taking over stdout/stdin of kernel.</title>
<updated>2022-02-25T20:48:35Z</updated>
<author>
<name>Yucong Sun</name>
<email>fallentree@fb.com</email>
</author>
<published>2022-02-25T18:59:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=80bebebdac935473568c27d4f1349dc8f9809bf7'/>
<id>urn:sha1:80bebebdac935473568c27d4f1349dc8f9809bf7</id>
<content type='text'>
In cb80ddc67152 ("bpf: Convert bpf_preload.ko to use light skeleton.")
BPF preload was switched from user mode process to use in-kernel light
skeleton instead. However, in the kernel context, early in the boot
sequence, the first available FD can start from 0, instead of normally
3 for user mode process. So FDs 0 and 1 are then used for loaded BPF
programs and prevent init process from setting up stdin/stdout/stderr on
FD 0, 1, and 2 as expected.

Before the fix:

ls -lah /proc/1/fd/*

lrwx------1 root root 64 Feb 23 17:20 /proc/1/fd/0 -&gt; /dev/null
lrwx------ 1 root root 64 Feb 23 17:20 /proc/1/fd/1 -&gt; /dev/null
lrwx------ 1 root root 64 Feb 23 17:20 /proc/1/fd/2 -&gt; /dev/console
lrwx------ 1 root root 64 Feb 23 17:20 /proc/1/fd/6 -&gt; /dev/console
lrwx------ 1 root root 64 Feb 23 17:20 /proc/1/fd/7 -&gt; /dev/console

After the fix:

ls -lah /proc/1/fd/*

lrwx------ 1 root root 64 Feb 24 21:23 /proc/1/fd/0 -&gt; /dev/console
lrwx------ 1 root root 64 Feb 24 21:23 /proc/1/fd/1 -&gt; /dev/console
lrwx------ 1 root root 64 Feb 24 21:23 /proc/1/fd/2 -&gt; /dev/console

Fix by closing prog FDs after initialization. struct bpf_prog's
themselves are kept alive through direct kernel references taken with
bpf_link_get_from_fd().

Fixes: cb80ddc67152 ("bpf: Convert bpf_preload.ko to use light skeleton.")
Signed-off-by: Yucong Sun &lt;fallentree@fb.com&gt;
Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20220225185923.2535519-1-fallentree@fb.com
</content>
</entry>
<entry>
<title>bpf: Convert bpf_preload.ko to use light skeleton.</title>
<updated>2022-02-10T22:31:51Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@kernel.org</email>
</author>
<published>2022-02-09T23:20:01Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=cb80ddc67152e72f28ff6ea8517acdf875d7381d'/>
<id>urn:sha1:cb80ddc67152e72f28ff6ea8517acdf875d7381d</id>
<content type='text'>
The main change is a move of the single line
  #include "iterators.lskel.h"
from iterators/iterators.c to bpf_preload_kern.c.
Which means that generated light skeleton can be used from user space or
user mode driver like iterators.c or from the kernel module or the kernel itself.
The direct use of light skeleton from the kernel module simplifies the code,
since UMD is no longer necessary. The libbpf.a required user space and UMD. The
CO-RE in the kernel and generated "loader bpf program" used by the light
skeleton are capable to perform complex loading operations traditionally
provided by libbpf. In addition UMD approach was launching UMD process
every time bpffs has to be mounted. With light skeleton in the kernel
the bpf_preload kernel module loads bpf iterators once and pins them
multiple times into different bpffs mounts.

Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Yonghong Song &lt;yhs@fb.com&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20220209232001.27490-6-alexei.starovoitov@gmail.com
</content>
</entry>
<entry>
<title>bpf: Update iterators.lskel.h.</title>
<updated>2022-02-10T22:31:51Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@kernel.org</email>
</author>
<published>2022-02-09T23:20:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d7beb3d6aba39480590b30c502fbaa2cc1e5e30b'/>
<id>urn:sha1:d7beb3d6aba39480590b30c502fbaa2cc1e5e30b</id>
<content type='text'>
Light skeleton and skel_internal.h have changed.
Update iterators.lskel.h.

Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Yonghong Song &lt;yhs@fb.com&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20220209232001.27490-5-alexei.starovoitov@gmail.com
</content>
</entry>
<entry>
<title>bpf: Drop libbpf, libelf, libz dependency from bpf preload.</title>
<updated>2022-02-01T22:56:18Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@kernel.org</email>
</author>
<published>2022-01-31T22:05:28Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e96f2d64c812d9c20adea38a9b5e08feaa21fcf5'/>
<id>urn:sha1:e96f2d64c812d9c20adea38a9b5e08feaa21fcf5</id>
<content type='text'>
Drop libbpf, libelf, libz dependency from bpf preload.
This reduces bpf_preload_umd binary size
from 1.7M to 30k unstripped with debug info
and from 300k to 19k stripped.

Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Martin KaFai Lau &lt;kafai@fb.com&gt;
Link: https://lore.kernel.org/bpf/20220131220528.98088-8-alexei.starovoitov@gmail.com
</content>
</entry>
<entry>
<title>bpf: Open code obj_get_info_by_fd in bpf preload.</title>
<updated>2022-02-01T22:56:18Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@kernel.org</email>
</author>
<published>2022-01-31T22:05:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=18ef5dac934a0fb1aeb7d6bee6c81e1fa6bcc598'/>
<id>urn:sha1:18ef5dac934a0fb1aeb7d6bee6c81e1fa6bcc598</id>
<content type='text'>
Open code obj_get_info_by_fd in bpf preload.
It's the last part of libbpf that preload/iterators were using.

Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Martin KaFai Lau &lt;kafai@fb.com&gt;
Link: https://lore.kernel.org/bpf/20220131220528.98088-7-alexei.starovoitov@gmail.com
</content>
</entry>
<entry>
<title>bpf: Convert bpf preload to light skeleton.</title>
<updated>2022-02-01T22:56:18Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@kernel.org</email>
</author>
<published>2022-01-31T22:05:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=79b203926d18cb8c110564d8a09ff646691de9e7'/>
<id>urn:sha1:79b203926d18cb8c110564d8a09ff646691de9e7</id>
<content type='text'>
Convert bpffs preload iterators to light skeleton.

Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Martin KaFai Lau &lt;kafai@fb.com&gt;
Link: https://lore.kernel.org/bpf/20220131220528.98088-6-alexei.starovoitov@gmail.com
</content>
</entry>
<entry>
<title>bpf: Remove unnecessary setrlimit from bpf preload.</title>
<updated>2022-02-01T22:56:18Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@kernel.org</email>
</author>
<published>2022-01-31T22:05:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=1ddbddd7065182c10c7c50ba6daf890edfdf7377'/>
<id>urn:sha1:1ddbddd7065182c10c7c50ba6daf890edfdf7377</id>
<content type='text'>
BPF programs and maps are memcg accounted. setrlimit is obsolete.
Remove its use from bpf preload.

Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Martin KaFai Lau &lt;kafai@fb.com&gt;
Link: https://lore.kernel.org/bpf/20220131220528.98088-5-alexei.starovoitov@gmail.com
</content>
</entry>
</feed>
