All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markos Chandras <Markos.Chandras@imgtec.com>
To: Alexei Starovoitov <ast@plumgrid.com>,
	Daniel Borkmann <dborkman@redhat.com>
Cc: Guenter Roeck <linux@roeck-us.net>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linux MIPS Mailing List <linux-mips@linux-mips.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	"Network Development" <netdev@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: mips:allmodconfig build failure in 3.16-rc1 due to bpf_jit code
Date: Wed, 18 Jun 2014 09:28:26 +0100	[thread overview]
Message-ID: <53A14DAA.3070207@imgtec.com> (raw)
In-Reply-To: <CAMEtUuz=us+=ejHaOf+Mq19hZoNJ=-faB9y4f4NC90=9E6Ck7g@mail.gmail.com>

On 06/17/2014 08:38 PM, Alexei Starovoitov wrote:
> On Tue, Jun 17, 2014 at 4:21 AM, Daniel Borkmann <dborkman@redhat.com> wrote:
>> On 06/17/2014 01:09 PM, Markos Chandras wrote:
>> ...
>>>
>>> Thanks for these instructions. I will try them myself once I find some
>>>
>>> time since I don't think bpf_jit for MIPS has ever been tested with all
>>> the opcodes.
>>
>>
>> Sounds great! If you find some tests are missing, please feel free to
>> submit them as well via netdev.
>>
>> Best,
>>
>> Daniel
> 
> Daniel,
> 
> thank you for taking care of it so quickly :)
> from the BPF perspective the fix looks good:
> Acked-by: Alexei Starovoitov <ast@plumgrid.com>
> 
> Markos,
> 
> please do run the testsuite.
> Doing quick code review of mips jit, it looks like:
> 
> - your version of pkt_type_offset() will work for little endian only.
>   (we've recently fixed it in net/core/filter.c)
> 
> - vlan tag handling is incorrect, since it's missing shifts.
>   classic BPF standard for vlan_tag_present has to return 1 or 0
>   and not just emit_and(r_A, r_s0, VLAN_TAG_PRESENT, ctx);
> 
> - pr_warn("%s: Unhandled opcode: 0x%02x\n", __FILE__,
>   is way too heavy, since when jit is on, unprivileged user can spam log.
> 
> - /* sa is 5-bits long */
>   BUG_ON(sa >= BIT(5));
> is wrong too. Malicious user can cause kernel crash…
> Also shift A>>=33 was always allowed by classic BPF checker, so
> JITs have to silently do C-equivalent version of such shift.
> 
> - /* Determine if immediate is within the 16-bit signed range */
> static inline bool is_range16(s32 imm)
> {
>         if (imm >= SBIT(15) || imm < -SBIT(15))
>                 return true;
> the function name and comment are doing the opposite of
> actual code, which makes harder to follow.
> 
> - the rest looks pretty good!
> 
> Also you'll get a lot more mileage out of mips jit if you use eBPF
> instruction set as a base for JITing. You wouldn't need to worry
> about vlan, pkt_type and other classic extensions. You'll get all
> extensions for free, plus seccomp, tracing, etc.
> 
> Thanks
> Alexei
> 
Hi Alexei,

Thanks a lot for the feedback. I have already identified a few problems
which I have already fixed. I would like to move to eBPF but I can't
promise I can do it soon, so i think it's best to make sure that classic
BPF works fine for 3.16 and then I will make my plans for eBPF.

-- 
markos

  reply	other threads:[~2014-06-18  8:28 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-17 19:38 mips:allmodconfig build failure in 3.16-rc1 due to bpf_jit code Alexei Starovoitov
2014-06-18  8:28 ` Markos Chandras [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-06-17  2:24 Guenter Roeck
2014-06-17  8:20 ` Daniel Borkmann
2014-06-17 10:16   ` Daniel Borkmann
2014-06-17 10:16     ` Daniel Borkmann
2014-06-17 10:39     ` Guenter Roeck
2014-06-17 10:56       ` Daniel Borkmann
2014-06-17 11:09         ` Markos Chandras
2014-06-17 11:21           ` Daniel Borkmann
2014-06-17 10:54     ` Markos Chandras
2014-06-17 10:58       ` Daniel Borkmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53A14DAA.3070207@imgtec.com \
    --to=markos.chandras@imgtec.com \
    --cc=ast@plumgrid.com \
    --cc=davem@davemloft.net \
    --cc=dborkman@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=linux@roeck-us.net \
    --cc=netdev@vger.kernel.org \
    --cc=ralf@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.