lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 16 Apr 2019 20:15:20 -0700
From:   Alexei Starovoitov <alexei.starovoitov@...il.com>
To:     Magnus Karlsson <magnus.karlsson@...el.com>
Cc:     Björn Töpel <bjorn.topel@...el.com>,
        Alexei Starovoitov <ast@...nel.org>,
        Daniel Borkmann <daniel@...earbox.net>,
        Network Development <netdev@...r.kernel.org>,
        bpf <bpf@...r.kernel.org>, bruce.richardson@...el.com,
        ciara.loftus@...el.com,
        Ilias Apalodimas <ilias.apalodimas@...aro.org>,
        kernel test robot <xiaolong.ye@...el.com>,
        ferruh.yigit@...el.com, "Zhang, Qi Z" <qi.z.zhang@...el.com>,
        georgmueller@....net
Subject: Re: [PATCH bpf v3 0/5] libbpf: remove two dependencies on Linux

On Tue, Apr 16, 2019 at 5:58 AM Magnus Karlsson
<magnus.karlsson@...el.com> wrote:
>
> This patch set fixes one bug and removes two dependencies on Linux
> kernel headers from the XDP socket code in libbpf. A number of people
> have pointed out that these two dependencies make it hard to build the
> XDP socket part of libbpf without any kernel header dependencies. The
> two removed dependecies are:
>
> * Remove the usage of likely and unlikely (compiler.h) in xsk.h. It
>   has been reported that the use of these actually decreases the
>   performance of the ring access code due to an increase in
>   instruction cache misses, so let us just remove these.
>
> * Remove the dependency on barrier.h as it brings in a lot of kernel
>   headers. As the XDP socket code only uses two simple functions from
>   it, we can reimplement these. As a bonus, the new implementation is
>   faster as it uses the same barrier primitives as the kernel does
>   when the same code is compiled there. Without this patch, the user
>   land code uses lfence and sfence on x86, which are unnecessarily
>   harsh/thorough.
>
> In the process of removing these dependencies a missing barrier
> function for at least PPC64 was discovered. For a full explanation on
> the missing barrier, please refer to patch 1. So the patch set now
> starts with two patches fixing this. I have also added a patch at the
> end removing this full memory barrier for x86 only, as it is not
> needed there.
>
> Structure of the patch set:
> Patch 1-2: Adds the missing barrier function in kernel and user space.
> Patch 3-4: Removes the dependencies
> Patch 5: Optimizes the added barrier from patch 2 so that it does not
>          do unnecessary work on x86.

Applied. Thanks

Powered by blists - more mailing lists