All of lore.kernel.org
 help / color / mirror / Atom feed
* Issues with bpf_trace_printk
@ 2017-08-28 17:20 Zvi Effron
  2017-08-28 18:26 ` Daniel Borkmann
  2017-08-28 21:16 ` Y Song
  0 siblings, 2 replies; 14+ messages in thread
From: Zvi Effron @ 2017-08-28 17:20 UTC (permalink / raw)
  To: xdp-newbies

Hello,

I'm having an issue where bpf_trace_printk seems to always print 0 for
values. I'm running the following xdp program:


#include <uapi/linux/bpf.h>

static int (*bpf_trace_printk)(const char *fmt, int fmt_size, ...) =
(void *) BPF_FUNC_trace_printk;

int xdp(struct xdp_md *ctx) {
    char format_string[] = "Data start: %x\tData end: %x\n";
    bpf_trace_printk(format_string, sizeof(format_string), ctx->data,
ctx->data_end);

    {
        char format_string[] = "Constant: %x\n";
        bpf_trace_printk(format_string, sizeof(format_string), 1);
    }

    if (ctx->data == 0) {
        char format_string[] = "Data starts at offset 0";
        bpf_trace_printk(format_string, sizeof(format_string));
    }
    if (ctx->data_end == 0) {
        char format_string[] = "Data ends at offset 0";
        bpf_trace_printk(format_string, sizeof(format_string));
    }
    return XDP_PASS;
}

char __attribute__((section("license"), used)) license[] = "GPL";


and I get the following output in /sys/kernel/debug/tracing/trace_pipe


            sshd-4824  [000] ..s1 67372.673714: : Data start: 0 Data end: 0
            sshd-4824  [000] ..s1 67372.673720: : Constant: 0
          <idle>-0     [000] ..s. 67372.675062: : Data start: 0 Data end: 0
          <idle>-0     [000] .Ns. 67372.675090: : Constant: 0
          <idle>-0     [000] .Ns. 67372.675116: : Data start: 0 Data end: 0
          <idle>-0     [000] .Ns. 67372.675117: : Constant: 0
          <idle>-0     [000] .Ns. 67372.675129: : Data start: 0 Data end: 0
          <idle>-0     [000] .Ns. 67372.675130: : Constant: 0
          <idle>-0     [000] .Ns. 67372.675136: : Data start: 0 Data end: 0
          <idle>-0     [000] .Ns. 67372.675137: : Constant: 0
          <idle>-0     [000] .Ns. 67372.675142: : Data start: 0 Data end: 0
          <idle>-0     [000] .Ns. 67372.675143: : Constant: 0
              ip-6458  [000] ..s. 67372.676083: : Data start: 0 Data end: 0
              ip-6458  [000] ..s. 67372.676084: : Constant: 0
              ip-6458  [000] ..s. 67372.676093: : Data start: 0 Data end: 0
              ip-6458  [000] ..s. 67372.676094: : Constant: 0


It looks like ctx->data and ctx->data_end are not 0, because the calls
to bpf_trace_printk in those ifs aren't being called, and the constant
is definitely not 0.

What might I be missing or doing incorrectly?

Thank you!
--Zvi

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

end of thread, other threads:[~2017-08-31 18:14 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-28 17:20 Issues with bpf_trace_printk Zvi Effron
2017-08-28 18:26 ` Daniel Borkmann
2017-08-28 19:54   ` Zvi Effron
2017-08-28 21:16 ` Y Song
2017-08-28 22:12   ` Zvi Effron
2017-08-29  5:39     ` Y Song
2017-08-29  5:53       ` Zvi Effron
2017-08-29 21:56         ` Y Song
2017-08-29 23:17           ` Daniel Borkmann
2017-08-30 17:53             ` Zvi Effron
     [not found]               ` <59A72D3E.1030909@iogearbox.net>
2017-08-30 21:50                 ` Zvi Effron
2017-08-30 21:57                   ` David Miller
2017-08-30 22:04                   ` Daniel Borkmann
2017-08-31 18:14                     ` Zvi Effron

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.