All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes
@ 2014-05-15 22:56 Alexei Starovoitov
  2014-05-15 22:56 ` [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm Alexei Starovoitov
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Alexei Starovoitov @ 2014-05-15 22:56 UTC (permalink / raw)
  To: David S. Miller; +Cc: Daniel Borkmann, netdev

Two trivial fixes for very useful bpf_jit_disasm tool

Alexei Starovoitov (2):
  tools: bpf_jit_disasm: ignore image address for disasm
  tools: bpf_jit_disasm: increase image buffer size

 tools/net/bpf_jit_disasm.c |   20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

-- 
1.7.9.5

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

* [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm
  2014-05-15 22:56 [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes Alexei Starovoitov
@ 2014-05-15 22:56 ` Alexei Starovoitov
  2014-05-16  9:34   ` Daniel Borkmann
  2014-05-15 22:56 ` [PATCH net-next 2/2] tools: bpf_jit_disasm: increase image buffer size Alexei Starovoitov
  2014-05-16 20:44 ` [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes David Miller
  2 siblings, 1 reply; 6+ messages in thread
From: Alexei Starovoitov @ 2014-05-15 22:56 UTC (permalink / raw)
  To: David S. Miller; +Cc: Daniel Borkmann, netdev

seccomp filters use kernel JIT image addresses, so bpf_jit_enable=2 prints
[ 20.146438] flen=3 proglen=82 pass=0 image=0000000000000000
[ 20.146442] JIT code: 00000000: 55 48 89 e5 48 81 ec 28 02 00 00 ...

ignore image address, so that seccomp filters can be disassembled

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
---
 tools/net/bpf_jit_disasm.c |   18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/tools/net/bpf_jit_disasm.c b/tools/net/bpf_jit_disasm.c
index cfe0cdcda3de..d9730c3319b9 100644
--- a/tools/net/bpf_jit_disasm.c
+++ b/tools/net/bpf_jit_disasm.c
@@ -43,8 +43,7 @@ static void get_exec_path(char *tpath, size_t size)
 	free(path);
 }
 
-static void get_asm_insns(uint8_t *image, size_t len, unsigned long base,
-			  int opcodes)
+static void get_asm_insns(uint8_t *image, size_t len, int opcodes)
 {
 	int count, i, pc = 0;
 	char tpath[256];
@@ -107,13 +106,13 @@ static void put_klog_buff(char *buff)
 }
 
 static int get_last_jit_image(char *haystack, size_t hlen,
-			      uint8_t *image, size_t ilen,
-			      unsigned long *base)
+			      uint8_t *image, size_t ilen)
 {
 	char *ptr, *pptr, *tmp;
 	off_t off = 0;
 	int ret, flen, proglen, pass, ulen = 0;
 	regmatch_t pmatch[1];
+	unsigned long base;
 	regex_t regex;
 
 	if (hlen == 0)
@@ -136,7 +135,7 @@ static int get_last_jit_image(char *haystack, size_t hlen,
 
 	ptr = haystack + off - (pmatch[0].rm_eo - pmatch[0].rm_so);
 	ret = sscanf(ptr, "flen=%d proglen=%d pass=%d image=%lx",
-		     &flen, &proglen, &pass, base);
+		     &flen, &proglen, &pass, &base);
 	if (ret != 4)
 		return 0;
 
@@ -162,7 +161,7 @@ static int get_last_jit_image(char *haystack, size_t hlen,
 	assert(ulen == proglen);
 	printf("%d bytes emitted from JIT compiler (pass:%d, flen:%d)\n",
 	       proglen, pass, flen);
-	printf("%lx + <x>:\n", *base);
+	printf("%lx + <x>:\n", base);
 
 	regfree(&regex);
 	return ulen;
@@ -172,7 +171,6 @@ int main(int argc, char **argv)
 {
 	int len, klen, opcodes = 0;
 	char *kbuff;
-	unsigned long base;
 	uint8_t image[4096];
 
 	if (argc > 1) {
@@ -189,9 +187,9 @@ int main(int argc, char **argv)
 
 	kbuff = get_klog_buff(&klen);
 
-	len = get_last_jit_image(kbuff, klen, image, sizeof(image), &base);
-	if (len > 0 && base > 0)
-		get_asm_insns(image, len, base, opcodes);
+	len = get_last_jit_image(kbuff, klen, image, sizeof(image));
+	if (len > 0)
+		get_asm_insns(image, len, opcodes);
 
 	put_klog_buff(kbuff);
 
-- 
1.7.9.5

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

* [PATCH net-next 2/2] tools: bpf_jit_disasm: increase image buffer size
  2014-05-15 22:56 [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes Alexei Starovoitov
  2014-05-15 22:56 ` [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm Alexei Starovoitov
@ 2014-05-15 22:56 ` Alexei Starovoitov
  2014-05-16  9:35   ` Daniel Borkmann
  2014-05-16 20:44 ` [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes David Miller
  2 siblings, 1 reply; 6+ messages in thread
From: Alexei Starovoitov @ 2014-05-15 22:56 UTC (permalink / raw)
  To: David S. Miller; +Cc: Daniel Borkmann, netdev

JITed seccomp filters can be quite large if they check a lot of syscalls
Simply increase buffer size

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
---
 tools/net/bpf_jit_disasm.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/net/bpf_jit_disasm.c b/tools/net/bpf_jit_disasm.c
index d9730c3319b9..c5baf9c591b7 100644
--- a/tools/net/bpf_jit_disasm.c
+++ b/tools/net/bpf_jit_disasm.c
@@ -171,7 +171,7 @@ int main(int argc, char **argv)
 {
 	int len, klen, opcodes = 0;
 	char *kbuff;
-	uint8_t image[4096];
+	static uint8_t image[32768];
 
 	if (argc > 1) {
 		if (!strncmp("-o", argv[argc - 1], 2)) {
-- 
1.7.9.5

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

* Re: [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm
  2014-05-15 22:56 ` [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm Alexei Starovoitov
@ 2014-05-16  9:34   ` Daniel Borkmann
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Borkmann @ 2014-05-16  9:34 UTC (permalink / raw)
  To: Alexei Starovoitov; +Cc: David S. Miller, netdev

On 05/16/2014 12:56 AM, Alexei Starovoitov wrote:
> seccomp filters use kernel JIT image addresses, so bpf_jit_enable=2 prints
> [ 20.146438] flen=3 proglen=82 pass=0 image=0000000000000000
> [ 20.146442] JIT code: 00000000: 55 48 89 e5 48 81 ec 28 02 00 00 ...
>
> ignore image address, so that seccomp filters can be disassembled
>
> Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>

Looks good to me! Thanks for using bpf_jit_disasm, hope it was of
great help. ;)

Acked-by: Daniel Borkmann <dborkman@redhat.com>

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

* Re: [PATCH net-next 2/2] tools: bpf_jit_disasm: increase image buffer size
  2014-05-15 22:56 ` [PATCH net-next 2/2] tools: bpf_jit_disasm: increase image buffer size Alexei Starovoitov
@ 2014-05-16  9:35   ` Daniel Borkmann
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Borkmann @ 2014-05-16  9:35 UTC (permalink / raw)
  To: Alexei Starovoitov; +Cc: David S. Miller, netdev

On 05/16/2014 12:56 AM, Alexei Starovoitov wrote:
> JITed seccomp filters can be quite large if they check a lot of syscalls
> Simply increase buffer size
>
> Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>

Okay, fine by me.

Acked-by: Daniel Borkmann <dborkman@redhat.com>

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

* Re: [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes
  2014-05-15 22:56 [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes Alexei Starovoitov
  2014-05-15 22:56 ` [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm Alexei Starovoitov
  2014-05-15 22:56 ` [PATCH net-next 2/2] tools: bpf_jit_disasm: increase image buffer size Alexei Starovoitov
@ 2014-05-16 20:44 ` David Miller
  2 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2014-05-16 20:44 UTC (permalink / raw)
  To: ast; +Cc: dborkman, netdev

From: Alexei Starovoitov <ast@plumgrid.com>
Date: Thu, 15 May 2014 15:56:37 -0700

> Two trivial fixes for very useful bpf_jit_disasm tool

Series applied, thanks.

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

end of thread, other threads:[~2014-05-16 20:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-15 22:56 [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes Alexei Starovoitov
2014-05-15 22:56 ` [PATCH net-next 1/2] tools: bpf_jit_disasm: ignore image address for disasm Alexei Starovoitov
2014-05-16  9:34   ` Daniel Borkmann
2014-05-15 22:56 ` [PATCH net-next 2/2] tools: bpf_jit_disasm: increase image buffer size Alexei Starovoitov
2014-05-16  9:35   ` Daniel Borkmann
2014-05-16 20:44 ` [PATCH net-next 0/2] tools: bpf_jit_disasm: trivial fixes David Miller

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.