<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/tools/bpf/runqslower, branch linux-5.13.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.13.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-03-03T04:14:02Z</updated>
<entry>
<title>tools/runqslower: Allow substituting custom vmlinux.h for the build</title>
<updated>2021-03-03T04:14:02Z</updated>
<author>
<name>Andrii Nakryiko</name>
</author>
<published>2021-03-03T00:40:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=303dcc25b5c782547eb13b9f29426de843dd6f34'/>
<id>urn:sha1:303dcc25b5c782547eb13b9f29426de843dd6f34</id>
<content type='text'>
Just like was done for bpftool and selftests in ec23eb705620 ("tools/bpftool:
Allow substituting custom vmlinux.h for the build") and ca4db6389d61
("selftests/bpf: Allow substituting custom vmlinux.h for selftests build"),
allow to provide pre-generated vmlinux.h for runqslower build.

Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Acked-by: Martin KaFai Lau &lt;kafai@fb.com&gt;
Acked-by: Yonghong Song &lt;yhs@fb.com&gt;
Link: https://lore.kernel.org/bpf/20210303004010.653954-1-andrii@kernel.org
</content>
</entry>
<entry>
<title>bpf: runqslower: Use task local storage</title>
<updated>2021-02-26T19:51:48Z</updated>
<author>
<name>Song Liu</name>
</author>
<published>2021-02-25T23:43:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ced47e30ab8b3ed986e28411f63e041b51c1fdf8'/>
<id>urn:sha1:ced47e30ab8b3ed986e28411f63e041b51c1fdf8</id>
<content type='text'>
Replace hashtab with task local storage in runqslower. This improves the
performance of these BPF programs. The following table summarizes average
runtime of these programs, in nanoseconds:

                          task-local   hash-prealloc   hash-no-prealloc
handle__sched_wakeup             125             340               3124
handle__sched_wakeup_new        2812            1510               2998
handle__sched_switch             151             208                991

Note that, task local storage gives better performance than hashtab for
handle__sched_wakeup and handle__sched_switch. On the other hand, for
handle__sched_wakeup_new, task local storage is slower than hashtab with
prealloc. This is because handle__sched_wakeup_new accesses the data for
the first time, so it has to allocate the data for task local storage.
Once the initial allocation is done, subsequent accesses, as those in
handle__sched_wakeup, are much faster with task local storage. If we
disable hashtab prealloc, task local storage is much faster for all 3
functions.

Signed-off-by: Song Liu &lt;songliubraving@fb.com&gt;
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20210225234319.336131-7-songliubraving@fb.com
</content>
</entry>
<entry>
<title>bpf: runqslower: Prefer using local vmlimux to generate vmlinux.h</title>
<updated>2021-02-26T19:51:48Z</updated>
<author>
<name>Song Liu</name>
</author>
<published>2021-02-25T23:43:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b0d2d4156cfb9f27d8e52a33d3522a78002fca1'/>
<id>urn:sha1:4b0d2d4156cfb9f27d8e52a33d3522a78002fca1</id>
<content type='text'>
Update the Makefile to prefer using $(O)/vmlinux, $(KBUILD_OUTPUT)/vmlinux
(for selftests) or ../../../vmlinux. These two files should have latest
definitions for vmlinux.h.

Signed-off-by: Song Liu &lt;songliubraving@fb.com&gt;
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20210225234319.336131-6-songliubraving@fb.com
</content>
</entry>
<entry>
<title>tools: Factor Clang, LLC and LLVM utils definitions</title>
<updated>2021-01-29T00:25:34Z</updated>
<author>
<name>Sedat Dilek</name>
</author>
<published>2021-01-28T01:50:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=211a741cd3e124bffdc13ee82e7e65f204e53f60'/>
<id>urn:sha1:211a741cd3e124bffdc13ee82e7e65f204e53f60</id>
<content type='text'>
When dealing with BPF/BTF/pahole and DWARF v5 I wanted to build bpftool.

While looking into the source code I found duplicate assignments in misc tools
for the LLVM eco system, e.g. clang and llvm-objcopy.

Move the Clang, LLC and/or LLVM utils definitions to tools/scripts/Makefile.include
file and add missing includes where needed. Honestly, I was inspired by the commit
c8a950d0d3b9 ("tools: Factor HOSTCC, HOSTLD, HOSTAR definitions").

I tested with bpftool and perf on Debian/testing AMD64 and LLVM/Clang v11.1.0-rc1.

Build instructions:

[ make and make-options ]
MAKE="make V=1"
MAKE_OPTS="HOSTCC=clang HOSTCXX=clang++ HOSTLD=ld.lld CC=clang LD=ld.lld LLVM=1 LLVM_IAS=1"
MAKE_OPTS="$MAKE_OPTS PAHOLE=/opt/pahole/bin/pahole"

[ clean-up ]
$MAKE $MAKE_OPTS -C tools/ clean

[ bpftool ]
$MAKE $MAKE_OPTS -C tools/bpf/bpftool/

[ perf ]
PYTHON=python3 $MAKE $MAKE_OPTS -C tools/perf/

I was careful with respecting the user's wish to override custom compiler, linker,
GNU/binutils and/or LLVM utils settings.

Signed-off-by: Sedat Dilek &lt;sedat.dilek@gmail.com&gt;
Signed-off-by: Daniel Borkmann &lt;daniel@iogearbox.net&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Acked-by: Jiri Olsa &lt;jolsa@redhat.com&gt; # tools/build and tools/perf
Link: https://lore.kernel.org/bpf/20210128015117.20515-1-sedat.dilek@gmail.com
</content>
</entry>
<entry>
<title>tools/runqslower: Build bpftool using HOSTCC</title>
<updated>2020-11-11T20:18:22Z</updated>
<author>
<name>Jean-Philippe Brucker</name>
</author>
<published>2020-11-10T16:43:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2d9393fefb506fb8c8a483e5dc9bbd7774657b89'/>
<id>urn:sha1:2d9393fefb506fb8c8a483e5dc9bbd7774657b89</id>
<content type='text'>
When cross building runqslower for an other architecture, the
intermediate bpftool used to generate a skeleton must be built using the
host toolchain. Pass HOSTCC and HOSTLD, defined in Makefile.include, to
the bpftool Makefile.

Signed-off-by: Jean-Philippe Brucker &lt;jean-philippe@linaro.org&gt;
Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20201110164310.2600671-7-jean-philippe@linaro.org
</content>
</entry>
<entry>
<title>tools/runqslower: Enable out-of-tree build</title>
<updated>2020-11-11T20:18:22Z</updated>
<author>
<name>Jean-Philippe Brucker</name>
</author>
<published>2020-11-10T16:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=85e59344d0790379e063bf3cd3dd0fe91ce3b505'/>
<id>urn:sha1:85e59344d0790379e063bf3cd3dd0fe91ce3b505</id>
<content type='text'>
Enable out-of-tree build for runqslower. Only set OUTPUT=.output if it
wasn't already set by the user.

Signed-off-by: Jean-Philippe Brucker &lt;jean-philippe@linaro.org&gt;
Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20201110164310.2600671-6-jean-philippe@linaro.org
</content>
</entry>
<entry>
<title>tools/runqslower: Use Makefile.include</title>
<updated>2020-11-11T20:18:22Z</updated>
<author>
<name>Jean-Philippe Brucker</name>
</author>
<published>2020-11-10T16:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3290996e713315dfc9589e2c340a4c4997d90be8'/>
<id>urn:sha1:3290996e713315dfc9589e2c340a4c4997d90be8</id>
<content type='text'>
Makefile.include defines variables such as OUTPUT and CC for out-of-tree
build and cross-build. Include it into the runqslower Makefile and use
its $(QUIET*) helpers.

Signed-off-by: Jean-Philippe Brucker &lt;jean-philippe@linaro.org&gt;
Signed-off-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Acked-by: Andrii Nakryiko &lt;andrii@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20201110164310.2600671-5-jean-philippe@linaro.org
</content>
</entry>
<entry>
<title>bpf, runqslower: include proper uapi/bpf.h</title>
<updated>2020-05-10T01:01:33Z</updated>
<author>
<name>Song Liu</name>
</author>
<published>2020-05-04T17:36:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4563facdcae55c83039d5efcc3b45a63da14d2f'/>
<id>urn:sha1:b4563facdcae55c83039d5efcc3b45a63da14d2f</id>
<content type='text'>
runqslower doesn't specify include path for uapi/bpf.h. This causes the
following warning:

In file included from runqslower.c:10:
.../tools/testing/selftests/bpf/tools/include/bpf/bpf.h:234:38:
warning: 'enum bpf_stats_type' declared inside parameter list will not
be visible outside of this definition or declaration
  234 | LIBBPF_API int bpf_enable_stats(enum bpf_stats_type type);

Fix this by adding -I tools/includ/uapi to the Makefile.

Reported-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Signed-off-by: Song Liu &lt;songliubraving@fb.com&gt;
Acked-by: Andrii Nakryiko &lt;andriin@fb.com&gt;
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
</content>
</entry>
<entry>
<title>tools/runqslower: Ensure own vmlinux.h is picked up first</title>
<updated>2020-04-25T00:45:20Z</updated>
<author>
<name>Andrii Nakryiko</name>
</author>
<published>2020-04-22T01:24:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dfc55ace9939e1e8703ad37ddbba41aaa31cc0cb'/>
<id>urn:sha1:dfc55ace9939e1e8703ad37ddbba41aaa31cc0cb</id>
<content type='text'>
Reorder include paths to ensure that runqslower sources are picking up
vmlinux.h, generated by runqslower's own Makefile. When runqslower is built
from selftests/bpf, due to current -I$(BPF_INCLUDE) -I$(OUTPUT) ordering, it
might pick up not-yet-complete vmlinux.h, generated by selftests Makefile,
which could lead to compilation errors like [0]. So ensure that -I$(OUTPUT)
goes first and rely on runqslower's Makefile own dependency chain to ensure
vmlinux.h is properly completed before source code relying on it is compiled.

  [0] https://travis-ci.org/github/libbpf/libbpf/jobs/677905925

Signed-off-by: Andrii Nakryiko &lt;andriin@fb.com&gt;
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Link: https://lore.kernel.org/bpf/20200422012407.176303-1-andriin@fb.com
</content>
</entry>
<entry>
<title>Merge tag 'spdx-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx</title>
<updated>2020-04-03T20:12:26Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2020-04-03T20:12:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ff2ae607c6f329d11a3b0528801ea7474be8c3e9'/>
<id>urn:sha1:ff2ae607c6f329d11a3b0528801ea7474be8c3e9</id>
<content type='text'>
Pull SPDX updates from Greg KH:
 "Here are three SPDX patches for 5.7-rc1.

  One fixes up the SPDX tag for a single driver, while the other two go
  through the tree and add SPDX tags for all of the .gitignore files as
  needed.

  Nothing too complex, but you will get a merge conflict with your
  current tree, that should be trivial to handle (one file modified by
  two things, one file deleted.)

  All three of these have been in linux-next for a while, with no
  reported issues other than the merge conflict"

* tag 'spdx-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx:
  ASoC: MT6660: make spdxcheck.py happy
  .gitignore: add SPDX License Identifier
  .gitignore: remove too obvious comments
</content>
</entry>
</feed>
