All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] bpf: permit JIT allocations to be served outside the module region
@ 2018-11-21 13:17 ` Ard Biesheuvel
  0 siblings, 0 replies; 26+ messages in thread
From: Ard Biesheuvel @ 2018-11-21 13:17 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Ard Biesheuvel, Daniel Borkmann, Alexei Starovoitov,
	Rick Edgecombe, Eric Dumazet, Jann Horn, Kees Cook, Jessica Yu,
	Arnd Bergmann, Catalin Marinas, Will Deacon, Mark Rutland,
	David S. Miller, linux-kernel, netdev

On arm64, modules are allocated from a 128 MB window which is close to
the core kernel, so that relative direct branches are guaranteed to be
in range (except in some KASLR configurations). Also, module_alloc()
is in charge of allocating KASAN shadow memory when running with KASAN
enabled.

This means that the way BPF reuses module_alloc()/module_memfree() is
undesirable on arm64 (and potentially other architectures as well),
and so this series refactors BPF's use of those functions to permit
architectures to change this behavior.

Patch #1 breaks out the module_alloc() and module_memfree() calls into
__weak functions so they can be overridden.

Patch #4 implements the new alloc/free overrides for arm64

Changes since v1:
- Drop misguided attempt to 'fix' and refactor the free path. Instead,
  just add another __weak wrapper for the invocation of module_memfree()

Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Jann Horn <jannh@google.com>
Cc: Kees Cook <keescook@chromium.org>

Cc: Jessica Yu <jeyu@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: netdev@vger.kernel.org

Ard Biesheuvel (2):
  bpf: add __weak hook for allocating executable memory
  arm64/bpf: don't allocate BPF JIT programs in module memory

 arch/arm64/net/bpf_jit_comp.c | 10 ++++++++++
 kernel/bpf/core.c             | 14 ++++++++++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2018-11-24  2:58 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-21 13:17 [PATCH v2 0/2] bpf: permit JIT allocations to be served outside the module region Ard Biesheuvel
2018-11-21 13:17 ` Ard Biesheuvel
2018-11-21 13:17 ` [PATCH v2 1/2] bpf: add __weak hook for allocating executable memory Ard Biesheuvel
2018-11-21 13:17   ` Ard Biesheuvel
2018-11-22 20:01   ` kbuild test robot
2018-11-22 20:01     ` kbuild test robot
2018-11-22 21:08     ` Ard Biesheuvel
2018-11-22 21:08       ` Ard Biesheuvel
2018-11-22 21:40   ` kbuild test robot
2018-11-22 21:40     ` kbuild test robot
2018-11-21 13:17 ` [PATCH v2 2/2] arm64/bpf: don't allocate BPF JIT programs in module memory Ard Biesheuvel
2018-11-21 13:17   ` Ard Biesheuvel
2018-11-21 23:20   ` Daniel Borkmann
2018-11-21 23:20     ` Daniel Borkmann
2018-11-22  8:02     ` Ard Biesheuvel
2018-11-22  8:02       ` Ard Biesheuvel
2018-11-22 22:49       ` Daniel Borkmann
2018-11-22 22:49         ` Daniel Borkmann
2018-11-22 22:49         ` Daniel Borkmann
2018-11-24  2:57   ` kbuild test robot
2018-11-24  2:57     ` kbuild test robot
2018-11-21 19:48 ` [PATCH v2 0/2] bpf: permit JIT allocations to be served outside the module region Edgecombe, Rick P
2018-11-21 19:48   ` Edgecombe, Rick P
2018-11-21 19:48   ` Edgecombe, Rick P
2018-11-21 20:36   ` Ard Biesheuvel
2018-11-21 20:36     ` Ard Biesheuvel

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.