Subject: Re: [PATCH v11 net-next 00/12] eBPF syscall, verifier, testsuite

From: Daniel Borkmann <[email-masked]>
Date: Thu, 11 Sep 2014 21:47:14 +0200

On 09/10/2014 07:32 PM, Alexei Starovoitov wrote:
> On Wed, Sep 10, 2014 at 2:03 AM, Daniel Borkmann <[email-masked]> wrote:
>>>              struct { /* anonymous struct used by BPF_PROG_LOAD command */
>>>                  enum bpf_prog_type    prog_type;
>>>                  __u32                 insn_cnt;
>>>                  const struct bpf_insn *insns;
>>>                  const char            *license;
>>>                  __u32                 log_level; /* verbosity level of
>>> eBPF verifier */
>>>                  __u32                 log_size;  /* size of user buffer */
>>>                  void                  *log_buf;  /* user supplied buffer
>>> */
>>
>>
>> What is log buffer? Would that mean the verifier will return an error
>> string if the program will not pass it, or if not, what other data?
>> I think the man page is missing how to examine the returned verifier
>> log buffer data.
>
> yes. it's an error log (as text string for humans) from verifier.

I was confused due to the void pointer. But that also means that the text
string becomes part of the ABI; aren't eBPF specific error codes (perhaps
a tuple of [line + error code]), though ugly as well, but perhaps the better
solution to this [which user space can then map to an actual string]?