diff mbox series

MIPS/bpf: Enable bpf_probe_read{, str}() on MIPS again

Message ID 1615965307-6926-1-git-send-email-yangtiezhu@loongson.cn (mailing list archive)
State Superseded
Headers show
Series MIPS/bpf: Enable bpf_probe_read{, str}() on MIPS again | expand

Commit Message

Tiezhu Yang March 17, 2021, 7:15 a.m. UTC
After commit 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to
archs where they work"), bpf_probe_read{, str}() functions were not longer
available on MIPS, so there exists some errors when running bpf program:

root@linux:/home/loongson/bcc# python examples/tracing/task_switch.py
bpf: Failed to load program: Invalid argument
[...]
11: (85) call bpf_probe_read#4
unknown func bpf_probe_read#4
[...]
Exception: Failed to load BPF program count_sched: Invalid argument

So select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE in arch/mips/Kconfig,
otherwise the bpf old helper bpf_probe_read() will not be available.

This is similar with the commit d195b1d1d1196 ("powerpc/bpf: Enable
bpf_probe_read{, str}() on powerpc again").

Fixes: 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to archs where they work")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Sergey Shtylyov March 17, 2021, 9:59 a.m. UTC | #1
On 17.03.2021 10:15, Tiezhu Yang wrote:

> After commit 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to
> archs where they work"), bpf_probe_read{, str}() functions were not longer

    No longer.

> available on MIPS, so there exists some errors when running bpf program:

     Exist.

> root@linux:/home/loongson/bcc# python examples/tracing/task_switch.py
> bpf: Failed to load program: Invalid argument
> [...]
> 11: (85) call bpf_probe_read#4
> unknown func bpf_probe_read#4
> [...]
> Exception: Failed to load BPF program count_sched: Invalid argument
> 
> So select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE in arch/mips/Kconfig,
> otherwise the bpf old helper bpf_probe_read() will not be available.
> 
> This is similar with the commit d195b1d1d1196 ("powerpc/bpf: Enable
> bpf_probe_read{, str}() on powerpc again").
> 
> Fixes: 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to archs where they work")
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
[...]

MBR, Sergei
Daniel Borkmann March 17, 2021, 10:18 p.m. UTC | #2
On 3/17/21 8:15 AM, Tiezhu Yang wrote:
> After commit 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to
> archs where they work"), bpf_probe_read{, str}() functions were not longer
> available on MIPS, so there exists some errors when running bpf program:
> 
> root@linux:/home/loongson/bcc# python examples/tracing/task_switch.py
> bpf: Failed to load program: Invalid argument
> [...]
> 11: (85) call bpf_probe_read#4
> unknown func bpf_probe_read#4
> [...]
> Exception: Failed to load BPF program count_sched: Invalid argument
> 
> So select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE in arch/mips/Kconfig,
> otherwise the bpf old helper bpf_probe_read() will not be available.
> 
> This is similar with the commit d195b1d1d1196 ("powerpc/bpf: Enable
> bpf_probe_read{, str}() on powerpc again").
> 
> Fixes: 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to archs where they work")
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>

Thomas, I presume you pick this up via mips tree (with typos fixed)? Or do you
want us to route the fix via bpf with your ACK? (I'm fine either way.)

Thanks,
Daniel
Thomas Bogendoerfer March 17, 2021, 11:08 p.m. UTC | #3
On Wed, Mar 17, 2021 at 11:18:48PM +0100, Daniel Borkmann wrote:
> On 3/17/21 8:15 AM, Tiezhu Yang wrote:
> > After commit 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to
> > archs where they work"), bpf_probe_read{, str}() functions were not longer
> > available on MIPS, so there exists some errors when running bpf program:
> > 
> > root@linux:/home/loongson/bcc# python examples/tracing/task_switch.py
> > bpf: Failed to load program: Invalid argument
> > [...]
> > 11: (85) call bpf_probe_read#4
> > unknown func bpf_probe_read#4
> > [...]
> > Exception: Failed to load BPF program count_sched: Invalid argument
> > 
> > So select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE in arch/mips/Kconfig,
> > otherwise the bpf old helper bpf_probe_read() will not be available.
> > 
> > This is similar with the commit d195b1d1d1196 ("powerpc/bpf: Enable
> > bpf_probe_read{, str}() on powerpc again").
> > 
> > Fixes: 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to archs where they work")
> > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> 
> Thomas, I presume you pick this up via mips tree (with typos fixed)? Or do you
> want us to route the fix via bpf with your ACK? (I'm fine either way.)

I'll take it via mips tree.

Thomas.
diff mbox series

Patch

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 160b3a8..4b94ec7 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -6,6 +6,7 @@  config MIPS
 	select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT
 	select ARCH_HAS_FORTIFY_SOURCE
 	select ARCH_HAS_KCOV
+	select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE
 	select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI)
 	select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
 	select ARCH_HAS_UBSAN_SANITIZE_ALL