* Re: [PATCH 1/5] MIPS: Optimize uasm insn lookup.
From: David Daney @ 2017-05-26 18:25 UTC (permalink / raw)
To: Matt Redfearn, David Daney, Alexei Starovoitov, Daniel Borkmann,
netdev, linux-kernel, linux-mips, ralf
In-Reply-To: <c8d6691a-0c17-eab7-ac34-efc4e18589b9@imgtec.com>
On 05/26/2017 01:07 AM, Matt Redfearn wrote:
[...]
>> - { insn_lwx, 0, 0 },
>> - { insn_ldx, 0, 0 },
>> - { insn_invalid, 0, 0 }
>> +static struct insn insn_table_MM[insn_invalid] = {
>
> ^ You could make this const too, like you have the one in uasm-mips.c.
>
Good catch. I meant to do that.
I will fix it for the next revision of the patch set.
> Thanks,
> Matt
>
^ permalink raw reply
* Re: [PATCH v5 net-next 0/2] rtnetlink: Updates to rtnetlink_event()
From: David Miller @ 2017-05-26 18:30 UTC (permalink / raw)
To: vyasevich; +Cc: netdev, dsahern, roopa, jiri, vfalico, andy, vyasevic
In-Reply-To: <1495726316-27626-1-git-send-email-vyasevic@redhat.com>
From: Vladislav Yasevich <vyasevich@gmail.com>
Date: Thu, 25 May 2017 11:31:53 -0400
> This is a version 5 series came out of the conversation that started
> as a result my first attempt to add netdevice event info to netlink
> messages.
David Ahern, please review.
Thanks.
^ permalink raw reply
* Re: [for-next 4/6] net/mlx5: FPGA, Add basic support for Innova
From: Jes Sorensen @ 2017-05-26 18:31 UTC (permalink / raw)
To: Saeed Mahameed
Cc: Ilan Tayari, Alexei Starovoitov, Saeed Mahameed, David S. Miller,
Doug Ledford, netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <CALzJLG9YNpagdJAcrh6O0jJhZWtsck6KigRtVxyjkArTm=82ew-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On 05/26/2017 04:29 AM, Saeed Mahameed wrote:
> On Thu, May 25, 2017 at 11:48 PM, Jes Sorensen <jsorensen-b10kYP2dOMg@public.gmane.org> wrote:
>> On 05/25/2017 06:40 AM, Saeed Mahameed wrote:
> Hi Jes,
>
> No, It is clearly stated in the commit message :
>
> "The FPGA is a bump-on-the-wire and thus affects operation of
> the mlx5_core driver on the ConnectX ASIC."
>
> Which means mlx5 FPGA user can only write logic which affects only
> packets going in/out
> A ConnectX chip - so it is only network stuff -.
>
>> We have this with other devices in the kernel where a primary device driver
>> provides an interface for an additional sub-driver to access another device
>> behind it. Like bt-coexist in some of the wifi drivers allowing access to a
>> bluetooth device behind it.
>
> Blutooth over wifi or vise versa is a very good example to what you
> are requesting.
> But, it doesn't fit to what we are trying to do here. mlx5 FGPA is a
> ConnectX card feature, not a new protocol.
In that case it would need to be an optional module that can be enabled
or disabled at build time.
Cheers,
Jes
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH net-next v2 0/3] net: phy: Create sysfs reciprocal links for attached_dev/phydev
From: David Miller @ 2017-05-26 18:38 UTC (permalink / raw)
To: andrew; +Cc: f.fainelli, netdev
In-Reply-To: <20170525164227.GB18357@lunn.ch>
From: Andrew Lunn <andrew@lunn.ch>
Date: Thu, 25 May 2017 18:42:27 +0200
> On Thu, May 25, 2017 at 09:21:40AM -0700, Florian Fainelli wrote:
>> Hi David, Andrew,
>>
>> This patch series addresses a device topology shortcoming where a program
>> scanning /sys would not be able to establish a mapping between the network
>> device and the PHY device.
>>
>> In the process it turned out that no PHY device documentation existed for
>> sysfs attributes.
>>
>> Thanks!
>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Series applied, thanks everyone.
^ permalink raw reply
* Re: [PATCH net v2] sctp: fix ICMP processing if skb is non-linear
From: David Miller @ 2017-05-26 18:42 UTC (permalink / raw)
To: dcaratti; +Cc: netdev, linux-sctp, lucien.xin, marcelo.leitner
In-Reply-To: <d0cd7c2e4b9329ec23e48aed94bf2fbf94554f44.1495730857.git.dcaratti@redhat.com>
From: Davide Caratti <dcaratti@redhat.com>
Date: Thu, 25 May 2017 19:14:56 +0200
> sometimes ICMP replies to INIT chunks are ignored by the client, even if
> the encapsulated SCTP headers match an open socket. This happens when the
> ICMP packet is carried by a paged skb: use skb_header_pointer() to read
> packet contents beyond the SCTP header, so that chunk header and initiate
> tag are validated correctly.
>
> v2:
> - don't use skb_header_pointer() to read the transport header, since
> icmp_socket_deliver() already puts these 8 bytes in the linear area.
> - change commit message to make specific reference to INIT chunks.
>
> Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Applied and queued up for -stable, thanks.
^ permalink raw reply
* Re: [PATCH net-next] liquidio: fix rare pci_driver.probe failure of VF driver
From: David Miller @ 2017-05-26 18:42 UTC (permalink / raw)
To: felix.manlunas
Cc: netdev, raghu.vatsavayi, derek.chickles, satananda.burla,
prasad.kanneganti
In-Reply-To: <20170525174214.GA1444@felix-thinkpad.cavium.com>
From: Felix Manlunas <felix.manlunas@cavium.com>
Date: Thu, 25 May 2017 10:42:14 -0700
> From: Prasad Kanneganti <prasad.kanneganti@cavium.com>
>
> There's a rare pci_driver.probe failure of the VF driver that's caused by
> PF/VF handshake going out of sync. The culprit is octeon_mbox_write() who
> ignores an ack timeout condition; it just keeps unconditionally writing all
> elements of mbox_cmd->data[] even when the other side is not ready for
> them. Fix it by making each write of mbox_cmd->data[i] conditional to
> having previously received an ack.
>
> Also fix the octeon_mbox_state enum such that each state gets a unique
> value. Also add ULL suffix to numeric literals in macro definitions.
>
> Signed-off-by: Prasad Kanneganti <prasad.kanneganti@cavium.com>
> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Applied.
^ permalink raw reply
* Re: [PATCH net-next] liquidio: fix inaccurate count of napi-processed rx packets reported to Octeon
From: David Miller @ 2017-05-26 18:42 UTC (permalink / raw)
To: felix.manlunas
Cc: netdev, raghu.vatsavayi, derek.chickles, satananda.burla,
prasad.kanneganti
In-Reply-To: <20170525175429.GA1476@felix-thinkpad.cavium.com>
From: Felix Manlunas <felix.manlunas@cavium.com>
Date: Thu, 25 May 2017 10:54:29 -0700
> From: Prasad Kanneganti <prasad.kanneganti@cavium.com>
>
> lio_enable_irq (called by napi poll) is reporting to Octeon an inaccurate
> count of processed rx packets causing Octeon to eventually stop forwarding
> packets to the host. Fix it by using this formula for an accurate count:
>
> processed rx packets = droq->pkt_count - droq->pkts_pending
>
> Also increase SOFT_COMMAND_BUFFER_SIZE to match what the firmware expects.
>
> Signed-off-by: Prasad Kanneganti <prasad.kanneganti@cavium.com>
> Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Applied.
^ permalink raw reply
* Re: [PATCH v2 net-next 0/4] More marvell phy cleanups
From: David Miller @ 2017-05-26 18:45 UTC (permalink / raw)
To: andrew; +Cc: f.fainelli, netdev
In-Reply-To: <1495741328-25001-1-git-send-email-andrew@lunn.ch>
From: Andrew Lunn <andrew@lunn.ch>
Date: Thu, 25 May 2017 21:42:04 +0200
> This patchset continues the cleanup of the Marvell PHY driver. These
> phys use pages to allow more than the 32 registers that fit into the
> MDIO address space. Cleanup the code used for changing pages.
>
> v2
> Reverse christmas tree
Series applied, thank you Andrew.
^ permalink raw reply
* Re: [PATCH net,v2] ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets
From: David Miller @ 2017-05-26 18:55 UTC (permalink / raw)
To: petedaws; +Cc: kuznet, jmorris, yoshfuji, kaber, stephen, netdev, linux-kernel
In-Reply-To: <20170526063518.612f51f9@udesktop>
From: Peter Dawson <petedaws@gmail.com>
Date: Fri, 26 May 2017 06:35:18 +1000
> This fix addresses two problems in the way the DSCP field is formulated
> on the encapsulating header of IPv6 tunnels.
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195661
>
> 1) The IPv6 tunneling code was manipulating the DSCP field of the
> encapsulating packet using the 32b flowlabel. Since the flowlabel is
> only the lower 20b it was incorrect to assume that the upper 12b
> containing the DSCP and ECN fields would remain intact when formulating
> the encapsulating header. This fix handles the 'inherit' and
> 'fixed-value' DSCP cases explicitly using the extant dsfield u8 variable.
>
> 2) The use of INET_ECN_encapsulate(0, dsfield) in ip6_tnl_xmit was
> incorrect and resulted in the DSCP value always being set to 0.
>
> Commit 90427ef5d2a4 ("ipv6: fix flow labels when the traffic class
> is non-0") caused the regression by masking out the flowlabel
> which exposed the incorrect handling of the DSCP portion of the
> flowlabel in ip6_tunnel and ip6_gre.
>
> Fixes: 90427ef5d2a4 ("ipv6: fix flow labels when the traffic class is non-0")
> Signed-off-by: Peter Dawson <peter.a.dawson@boeing.com>
Applied, thanks.
^ permalink raw reply
* Re: [PATCH net] net: ethernet: ax88796: don't call free_irq without request_irq first
From: David Miller @ 2017-05-26 18:57 UTC (permalink / raw)
To: u.kleine-koenig; +Cc: netdev, kernel, ben.dooks
In-Reply-To: <20170525205453.21999-1-u.kleine-koenig@pengutronix.de>
From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date: Thu, 25 May 2017 22:54:53 +0200
> The function ax_init_dev (which is called only from the driver's .probe
> function) calls free_irq in the error path without having requested the
> irq in the first place. So drop the free_irq call in the error path.
>
> Fixes: 825a2ff1896e ("AX88796 network driver")
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Applied, thanks.
^ permalink raw reply
* Re: [PATCH net-next] net: ethernet: ax88796: support generating a random mac address
From: David Miller @ 2017-05-26 18:58 UTC (permalink / raw)
To: u.kleine-koenig; +Cc: netdev, kernel
In-Reply-To: <20170525205511.22048-1-u.kleine-koenig@pengutronix.de>
From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date: Thu, 25 May 2017 22:55:11 +0200
> Instead of falling back to 00:00:00:00:00:00 generate a random address
> if none is provided via platform data or from the the device's register
> space.
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Applied.
^ permalink raw reply
* Re: [PATCH net] ipv4: add reference counting to metrics
From: David Miller @ 2017-05-26 18:58 UTC (permalink / raw)
To: eric.dumazet; +Cc: edumazet, andreyknvl, ja, xiyou.wangcong, netdev
In-Reply-To: <1495747655.6465.113.camel@edumazet-glaptop3.roam.corp.google.com>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu, 25 May 2017 14:27:35 -0700
> From: Eric Dumazet <edumazet@google.com>
>
> Andrey Konovalov reported crashes in ipv4_mtu()
>
> I could reproduce the issue with KASAN kernels, between
> 10.246.7.151 and 10.246.7.152 :
>
> 1) 20 concurrent netperf -t TCP_RR -H 10.246.7.152 -l 1000 &
>
> 2) At the same time run following loop :
> while :
> do
> ip ro add 10.246.7.152 dev eth0 src 10.246.7.151 mtu 1500
> ip ro del 10.246.7.152 dev eth0 src 10.246.7.151 mtu 1500
> done
>
>
> Cong Wang attempted to add back rt->fi in commit
> 82486aa6f1b9 ("ipv4: restore rt->fi for reference counting")
> but this proved to add some issues that were complex to solve.
>
> Instead, I suggested to add a refcount to the metrics themselves,
> being a standalone object (in particular, no reference to other objects)
>
> I tried to make this patch as small as possible to ease its backport,
> instead of being super clean. Note that we believe that only ipv4 dst
> need to take care of the metric refcount. But if this is wrong,
> this patch adds the basic infrastructure to extend this to other
> families.
>
> Many thanks to Julian Anastasov for reviewing this patch, and Cong Wang
> for his efforts on this problem.
>
> Fixes: 2860583fe840 ("ipv4: Kill rt->fi")
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Reported-by: Andrey Konovalov <andreyknvl@google.com>
Applied, thanks everyone for following through on this bug fix.
And sorry for introducing the problem in the first place :)
^ permalink raw reply
* Re: [PATCH v3 net-next 0/5] net: dsa: mv88e6xxx: Add basic SERDES support
From: David Miller @ 2017-05-26 19:01 UTC (permalink / raw)
To: andrew; +Cc: vivien.didelot, netdev
In-Reply-To: <1495753404-29943-1-git-send-email-andrew@lunn.ch>
From: Andrew Lunn <andrew@lunn.ch>
Date: Fri, 26 May 2017 01:03:19 +0200
> Some of the Marvell switches are SERDES interface, which must be
> powered up before packets can be passed. This is particularly true on
> the 6390, where the SERDES defaults to down, probably to save power.
>
> This series refactors the existing SERDES support for the 6352, and
> adds 6390 support.
...
Series applied, thanks Andrew.
^ permalink raw reply
* Re: [PATCH 0/2] Document and use eeprom-length property
From: David Miller @ 2017-05-26 19:02 UTC (permalink / raw)
To: andrew; +Cc: shawnguo, netdev, linux-arm-kernel, vivien.didelot
In-Reply-To: <1495755884-31341-1-git-send-email-andrew@lunn.ch>
From: Andrew Lunn <andrew@lunn.ch>
Date: Fri, 26 May 2017 01:44:42 +0200
> The mv88e6xxx switch driver allows the size of the attached EEPROM to
> be described in DT. This property is missing from the binding
> documentation. Add it. And make use of it on the ZII Devel B board.
>
> David, Shawn, please could you talk amongs yourself to decide who
> takes what.
I can take this if it works for Shawn, otherwise I'm also fine if Shawn
takes it and if so feel free to add my:
Acked-by: David S. Miller <davem@davemloft.net>
^ permalink raw reply
* Re: [PATCH 5/5] MIPS: Add support for eBPF JIT.
From: Daniel Borkmann @ 2017-05-26 19:09 UTC (permalink / raw)
To: David Daney, David Daney, Alexei Starovoitov, netdev,
linux-kernel, linux-mips, ralf
Cc: Markos Chandras
In-Reply-To: <e9c9348f-aa61-4384-e065-ba6bafc0bc13@caviumnetworks.com>
On 05/26/2017 05:39 PM, David Daney wrote:
> On 05/26/2017 08:14 AM, Daniel Borkmann wrote:
>> On 05/26/2017 02:38 AM, David Daney wrote:
>>> Since the eBPF machine has 64-bit registers, we only support this in
>>> 64-bit kernels. As of the writing of this commit log test-bpf is showing:
>>>
>>> test_bpf: Summary: 316 PASSED, 0 FAILED, [308/308 JIT'ed]
>>>
>>> All current test cases are successfully compiled.
>>>
>>> Signed-off-by: David Daney <david.daney@cavium.com>
>>
>> Awesome work!
>>
>> Did you also manage to run tools/testing/selftests/bpf/ fine with
>> the JIT enabled?
>
> I haven't done that yet, I will before the next revision.
>
>> [...]
>>> +struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
>>> +{
>>> + struct jit_ctx ctx;
>>> + unsigned int alloc_size;
>>> +
>>> + /* Only 64-bit kernel supports eBPF */
>>> + if (!IS_ENABLED(CONFIG_64BIT) || !bpf_jit_enable)
>>
>> Isn't this already reflected by the following?
>>
>> select HAVE_EBPF_JIT if (64BIT && !CPU_MICROMIPS)
>
> Not exactly. The eBPF JIT is in the same file as the classic-BPF JIT, so when HAVE_EBPF_JIT is false this will indeed never be called. But the kernel would otherwise contain all the JIT code.
>
> By putting in !IS_ENABLED(CONFIG_64BIT) we allow gcc to eliminate all the dead code when compiling the JITs.
Side-effect would still be that for cBPF you go through the cBPF
JIT instead of letting the kernel convert all cBPF to eBPF and
later on go through your eBPF JIT. If you still prefer to have
everything in one single file and let gcc eliminate dead code
then you can just do single line change ...
void bpf_jit_compile(struct bpf_prog *fp)
{
struct jit_ctx ctx;
unsigned int alloc_size, tmp_idx;
if (IS_ENABLED(CONFIG_HAVE_EBPF_JIT) || !bpf_jit_enable)
return;
[...]
}
... and bpf_prog_ebpf_jited() et al wouldn't need to be changed
in the core, which are used in kallsyms, and kernel will then
also be able to automatically JIT all of seccomp-BPF and the
missing cBPF extensions we have through the eBPF JIT w/o extra
work.
^ permalink raw reply
* Re: [PATCH 5/5] MIPS: Add support for eBPF JIT.
From: David Daney @ 2017-05-26 19:20 UTC (permalink / raw)
To: Daniel Borkmann, David Daney, Alexei Starovoitov, netdev,
linux-kernel, linux-mips, ralf
Cc: Markos Chandras
In-Reply-To: <59287D71.6000307@iogearbox.net>
On 05/26/2017 12:09 PM, Daniel Borkmann wrote:
> On 05/26/2017 05:39 PM, David Daney wrote:
>> On 05/26/2017 08:14 AM, Daniel Borkmann wrote:
>>> On 05/26/2017 02:38 AM, David Daney wrote:
>>>> Since the eBPF machine has 64-bit registers, we only support this in
>>>> 64-bit kernels. As of the writing of this commit log test-bpf is
>>>> showing:
>>>>
>>>> test_bpf: Summary: 316 PASSED, 0 FAILED, [308/308 JIT'ed]
>>>>
>>>> All current test cases are successfully compiled.
>>>>
>>>> Signed-off-by: David Daney <david.daney@cavium.com>
>>>
>>> Awesome work!
>>>
>>> Did you also manage to run tools/testing/selftests/bpf/ fine with
>>> the JIT enabled?
>>
>> I haven't done that yet, I will before the next revision.
>>
>>> [...]
>>>> +struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
>>>> +{
>>>> + struct jit_ctx ctx;
>>>> + unsigned int alloc_size;
>>>> +
>>>> + /* Only 64-bit kernel supports eBPF */
>>>> + if (!IS_ENABLED(CONFIG_64BIT) || !bpf_jit_enable)
>>>
>>> Isn't this already reflected by the following?
>>>
>>> select HAVE_EBPF_JIT if (64BIT && !CPU_MICROMIPS)
>>
>> Not exactly. The eBPF JIT is in the same file as the classic-BPF JIT,
>> so when HAVE_EBPF_JIT is false this will indeed never be called. But
>> the kernel would otherwise contain all the JIT code.
>>
>> By putting in !IS_ENABLED(CONFIG_64BIT) we allow gcc to eliminate all
>> the dead code when compiling the JITs.
>
> Side-effect would still be that for cBPF you go through the cBPF
> JIT instead of letting the kernel convert all cBPF to eBPF and
> later on go through your eBPF JIT. If you still prefer to have
> everything in one single file and let gcc eliminate dead code
> then you can just do single line change ...
>
> void bpf_jit_compile(struct bpf_prog *fp)
> {
> struct jit_ctx ctx;
> unsigned int alloc_size, tmp_idx;
>
> if (IS_ENABLED(CONFIG_HAVE_EBPF_JIT) || !bpf_jit_enable)
> return;
Yes. In fact I did that for testing.
The cBPF JIT generates smaller code for:
test_bpf: #274 BPF_MAXINSNS: ld_abs+get_processor_id jited:1 44128 PASS
When we attempt to use the eBPF JIT for this, some of the MIPS branch
instructions cannot reach their targets (+- 32K instructions). I didn't
feel like fixing the code generation quite yet to handle branches that
span more than 32K instructions, so I left the cBPF in place so I could
claim that all of the test cases were JITed :-)
For the next revision of the patch I will revisit this.
David.
> [...]
> }
>
> ... and bpf_prog_ebpf_jited() et al wouldn't need to be changed
> in the core, which are used in kallsyms, and kernel will then
> also be able to automatically JIT all of seccomp-BPF and the
> missing cBPF extensions we have through the eBPF JIT w/o extra
> work.
^ permalink raw reply
* Re: [patch net-next 00/18] mlxsw: Improve extensibility
From: David Miller @ 2017-05-26 19:20 UTC (permalink / raw)
To: jiri; +Cc: netdev, idosch, mlxsw, stephen, nikolay
In-Reply-To: <20170526063740.8909-1-jiri@resnulli.us>
From: Jiri Pirko <jiri@resnulli.us>
Date: Fri, 26 May 2017 08:37:22 +0200
> Ido says:
>
> Since the initial introduction of the bridge offload in commit
> 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC")
> the per-port struct was used to store both physical properties of the
> port as well as logical bridge properties such as learning and active
> VLANs in the VLAN-aware bridge.
>
> The above resulted in a bloated struct and code that is getting
> increasingly difficult to extend when stacked devices are taken into
> account as well as more advanced use cases such as IGMP snooping.
>
> Due to the incremental development nature of this driver as well as the
> complexity of the underlying hardware, subsequent design decisions failed
> to generalize the FID and RIF resources, which could've benefited from
> a more generic design, resulting in consolidated code paths and better
> extensibility with regards to future ASICs and use cases.
>
> This patchset tries to solve both of these design problems, as they're
> tightly coupled. To ease the code review, the changes are done in a
> bottom-up manner, in which the port struct is the first to be patched,
> then the FIDs the ports are mapped to and finally the RIFs configured on
> top.
>
> The first half of the patchset gradually moves away from the previous
> design to a design that is more in sync with the underlying hardware and
> which clearly separates between hardware-specific structs and logical
> ones such as a bridge port.
>
> All the bridge-specific information is removed from the port struct, as
> well as the list of VLAN devices ("vPorts") configured on top of it.
> Instead, a linked list of VLANs is introduced, which allows each VLAN
> to hold a state, such as mapping to a particular FID and membership in
> a bridge. The data structures are depicted in the following figure:
...
> This model allows us to consolidate many of the code paths relating to
> VLAN-aware and VLAN-unaware bridges, as the latter is simply represented
> using a bridge port with a VLAN list size of one. Another advantage of
> the model is that it's easy to extend it with future per-VLAN
> attributes - such as mrouter indication - by merely pushing these down
> from the bridge port struct to the bridge VLAN one.
>
> The second half of the patchset builds on top of previous work and
> prepares the driver for the common FID and RIF cores, which are finally
> implemented in the last two patches. These exploit the fact that despite
> the different kinds of FIDs and RIFs, they do share a common object on
> which the core operations can operate on.
>
> By hiding both objects from the rest of the driver and modeling their
> operations using a VFT, it'll be easier to extend the driver for future
> use cases such as VXLAN.
>
> Tested using following LNST recipes:
> https://github.com/jpirko/lnst/tree/master/recipes/switchdev
Nice cleanups and consolidation, but like Nikolay I'm not so sure
about all the exports.
It might even be cleaner (believe it or not) to have the bridge
structure (or at least a subset of it) be something public that
drivers can query using inline helpers.
^ permalink raw reply
* Re: [patch net-next 00/18] mlxsw: Improve extensibility
From: David Miller @ 2017-05-26 19:21 UTC (permalink / raw)
To: jiri; +Cc: netdev, idosch, mlxsw, stephen, nikolay
In-Reply-To: <20170526.152035.708896761272676930.davem@davemloft.net>
From: David Miller <davem@davemloft.net>
Date: Fri, 26 May 2017 15:20:35 -0400 (EDT)
> Nice cleanups and consolidation, but like Nikolay I'm not so sure
> about all the exports.
>
> It might even be cleaner (believe it or not) to have the bridge
> structure (or at least a subset of it) be something public that
> drivers can query using inline helpers.
Just to be clear I did apply this series, and the above is about
future considerations.
Thanks.
^ permalink raw reply
* Re: [PATCH 5/5] MIPS: Add support for eBPF JIT.
From: Daniel Borkmann @ 2017-05-26 19:22 UTC (permalink / raw)
To: David Daney, David Daney, Alexei Starovoitov, netdev,
linux-kernel, linux-mips, ralf
Cc: Markos Chandras
In-Reply-To: <9fcd54f8-ab2f-84aa-7db4-2165b746d7c3@caviumnetworks.com>
On 05/26/2017 09:20 PM, David Daney wrote:
> On 05/26/2017 12:09 PM, Daniel Borkmann wrote:
>> On 05/26/2017 05:39 PM, David Daney wrote:
>>> On 05/26/2017 08:14 AM, Daniel Borkmann wrote:
>>>> On 05/26/2017 02:38 AM, David Daney wrote:
>>>>> Since the eBPF machine has 64-bit registers, we only support this in
>>>>> 64-bit kernels. As of the writing of this commit log test-bpf is showing:
>>>>>
>>>>> test_bpf: Summary: 316 PASSED, 0 FAILED, [308/308 JIT'ed]
>>>>>
>>>>> All current test cases are successfully compiled.
>>>>>
>>>>> Signed-off-by: David Daney <david.daney@cavium.com>
>>>>
>>>> Awesome work!
>>>>
>>>> Did you also manage to run tools/testing/selftests/bpf/ fine with
>>>> the JIT enabled?
>>>
>>> I haven't done that yet, I will before the next revision.
>>>
>>>> [...]
>>>>> +struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
>>>>> +{
>>>>> + struct jit_ctx ctx;
>>>>> + unsigned int alloc_size;
>>>>> +
>>>>> + /* Only 64-bit kernel supports eBPF */
>>>>> + if (!IS_ENABLED(CONFIG_64BIT) || !bpf_jit_enable)
>>>>
>>>> Isn't this already reflected by the following?
>>>>
>>>> select HAVE_EBPF_JIT if (64BIT && !CPU_MICROMIPS)
>>>
>>> Not exactly. The eBPF JIT is in the same file as the classic-BPF JIT, so when HAVE_EBPF_JIT is false this will indeed never be called. But the kernel would otherwise contain all the JIT code.
>>>
>>> By putting in !IS_ENABLED(CONFIG_64BIT) we allow gcc to eliminate all the dead code when compiling the JITs.
>>
>> Side-effect would still be that for cBPF you go through the cBPF
>> JIT instead of letting the kernel convert all cBPF to eBPF and
>> later on go through your eBPF JIT. If you still prefer to have
>> everything in one single file and let gcc eliminate dead code
>> then you can just do single line change ...
>>
>> void bpf_jit_compile(struct bpf_prog *fp)
>> {
>> struct jit_ctx ctx;
>> unsigned int alloc_size, tmp_idx;
>>
>> if (IS_ENABLED(CONFIG_HAVE_EBPF_JIT) || !bpf_jit_enable)
>> return;
>
> Yes. In fact I did that for testing.
>
> The cBPF JIT generates smaller code for:
>
> test_bpf: #274 BPF_MAXINSNS: ld_abs+get_processor_id jited:1 44128 PASS
>
> When we attempt to use the eBPF JIT for this, some of the MIPS branch instructions cannot reach their targets (+- 32K instructions). I didn't feel like fixing the code generation quite yet to handle branches that span more than 32K instructions, so I left the cBPF in place so I could claim that all of the test cases were JITed :-)
>
> For the next revision of the patch I will revisit this.
Okay, sounds good!
^ permalink raw reply
* Re: [PATCH net-next 00/11] ibmvnic: Driver updates
From: David Miller @ 2017-05-26 19:33 UTC (permalink / raw)
To: nfont; +Cc: netdev, tlfalcon, jallen
In-Reply-To: <20170526142523.63648.62938.stgit@ltcalpine2-lp14.aus.stglabs.ibm.com>
From: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Date: Fri, 26 May 2017 10:30:07 -0400
> This set of patches implements several updates to the ibmvnic driver
> to fix issues that have been found in testing. Most of the updates
> invovle updating queue handling during driver close and reset
> operations.
Series applied, thanks.
^ permalink raw reply
* Re: [PATCH net-next v3] ibmvnic: Enable TSO support
From: David Miller @ 2017-05-26 19:35 UTC (permalink / raw)
To: tlfalcon; +Cc: netdev, nfont, jallen
In-Reply-To: <1495815346-5638-1-git-send-email-tlfalcon@linux.vnet.ibm.com>
From: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
Date: Fri, 26 May 2017 11:15:46 -0500
> Enable TSO in the ibmvnic driver. Scatter-gather is also enabled,
> though there currently is no support for scatter-gather in
> vNIC-compatible hardware, resulting in forced linearization
> of all fragmented SKB's. Though not ideal, given the throughput
> improvement gained by enabling TSO, it has been decided
> that this is an acceptable tradeoff.
>
> The feature is also enabled by a module parameter.
> This parameter is necessary because TSO can not easily be
> enabled or disabled in firmware without reinitializing the driver.
>
> CC: Nathan Fontenot <nfont@linux.vnet.ibm.com>
> CC: John Allen <jallen@linux.vnet.ibm.com>
> Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
> ---
> v3: Remove module parameter, TSO will be set through ethtool
> include ibmvnic_fix_features to manage scatter-gather
> v2: Fix kbuild robot warning from module parameter init
You're only dealing with half of my feedback.
I stated, explicitly, that you're only probably getting a performance
increase with TSO even though it is being software split up before
being sent by the device, because you don't implement xmit_more.
It makes zero sense, to have the networking stack do such an enormous
amount of wasted work putting the TSO segments together just to then
split them apart and linearize the whole packet before transmit.
That should have been a huge red flag for you, and caused you to
inspect further what the true reason is why performance still
increases with all of that happening.
Please look into this further, because I am quite convinced that
you have TX doorbell and VM exit overhead issues at hand, which
would be more properly and suitable dealt with by xmit_more which
is designed _specifically_ to target that apsect of virtual
networking driver performance.
Thanks.
^ permalink raw reply
* Re: [PATCH V5 1/2] rtnl: Add support for netdev event to link messages
From: David Ahern @ 2017-05-26 19:40 UTC (permalink / raw)
To: Vladislav Yasevich, netdev; +Cc: roopa, jiri, vfalico, andy, Vladislav Yasevich
In-Reply-To: <1495726316-27626-2-git-send-email-vyasevic@redhat.com>
On 5/25/17 9:31 AM, Vladislav Yasevich wrote:
> @@ -911,4 +912,14 @@ enum {
>
> #define IFLA_XDP_MAX (__IFLA_XDP_MAX - 1)
>
> +enum {
> + IFLA_EVENT_UNSPEC,
> + IFLA_EVENT_REBOOT,
> + IFLA_EVENT_FEAT_CHANGE,
> + IFLA_EVENT_BONDING_FAILOVER,
> + IFLA_EVENT_NOTIFY_PEERS,
> + IFLA_EVENT_RESEND_IGMP,
> + IFLA_EVENT_CHANGE_INFO_DATA,
> +};
> +
> #endif /* _UAPI_LINUX_IF_LINK_H */
I agree these are unique events that userspace might care about.
I'd prefer better names for the userspace api for a couple of those
along with a description in the header file so userspace knows why the
event was generated.
How about something like this:
enum {
IFLA_EVENT_NONE,
IFLA_EVENT_REBOOT, /* internal reset / reboot */
IFLA_EVENT_FEATURES, /* change in offload features */
IFLA_EVENT_BONDING_FAILOVER, /* change in active slave */
IFLA_EVENT_NOTIFY_PEERS, /* re-sent grat. arp/ndisc */
IFLA_EVENT_IGMP_RESEND, /* re-sent IGMP JOIN */
IFLA_EVENT_BONDING_OPTIONS, /* change in bonding options */
};
Also, generically the IFLA_EVENT attribute should be considered
independent of NETDEV_ events.
For example, userspace should be notified if the speed / duplex for a
device changes, so we could have another one of these -- e.g.,
IFLA_EVENT_SPEED -- that does not correlate to NETDEV_SPEED since
nothing internal to the network stack cares about speed changes, or
perhaps more generically it is IFLA_EVENT_LINK_SETTING.
The rest of the patch looks ok to me.
^ permalink raw reply
* Re: [PATCH V5 2/2] bonding: Prevent duplicate userspace notification
From: David Ahern @ 2017-05-26 19:46 UTC (permalink / raw)
To: Vladislav Yasevich, netdev; +Cc: roopa, jiri, vfalico, andy, Vladislav Yasevich
In-Reply-To: <1495726316-27626-3-git-send-email-vyasevic@redhat.com>
On 5/25/17 9:31 AM, Vladislav Yasevich wrote:
> Whenever a user changes bonding options, a NETDEV_CHANGEINFODATA
> notificatin is generated which results in a rtnelink message to
> be sent. While runnig 'ip monitor', we can actually see 2 messages,
> one a result of the event, and the other a result of state change
> that is generated bo netdev_state_change(). However, this is not
> always the case. If bonding changes were done via sysfs or ifenslave
> (old ioctl interface), then only 1 message is seen.
>
> This patch removes duplicate messages in the case of using netlink
> to configure bonding. It introduceds a separte function that
> triggers a netdev event and uses that function in the syfs and ioctl
> cases.
>
> This was discovered while auditing all the different envents and
> continues the effort of cleaning up duplicated netlink messages.
>
> Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
> ---
> drivers/net/bonding/bond_main.c | 3 ++-
> drivers/net/bonding/bond_options.c | 27 +++++++++++++++++++++++++--
> include/net/bond_options.h | 2 ++
> 3 files changed, 29 insertions(+), 3 deletions(-)
LGTM
Acked-by: David Ahern <dsahern@gmail.com>
^ permalink raw reply
* Re: [patch iproute2 v2 repost 1/3] tc_filter: add support for chain index
From: Daniel Borkmann @ 2017-05-26 19:48 UTC (permalink / raw)
To: Jiri Pirko, Stephen Hemminger
Cc: netdev, davem, jhs, xiyou.wangcong, dsa, edumazet,
alexander.h.duyck, simon.horman, mlxsw
In-Reply-To: <20170523134042.GC1829@nanopsycho>
On 05/23/2017 03:40 PM, Jiri Pirko wrote:
> Mon, May 22, 2017 at 10:33:15PM CEST, stephen@networkplumber.org wrote:
[...]
>> Applied to net-next branch of iproute2
>
> Looks like you missed the uapi part:
>
> CC tc_filter.o
> tc_filter.c: In function ‘tc_filter_modify’:
> tc_filter.c:159:34: error: ‘TCA_CHAIN’ undeclared (first use in this function)
> addattr32(&req.n, sizeof(req), TCA_CHAIN, chain_index);
> ^~~~~~~~~
Looks like still unresolved in the iproute2 -net-next branch ...
^ permalink raw reply
* [GIT] Networking
From: David Miller @ 2017-05-26 19:50 UTC (permalink / raw)
To: torvalds; +Cc: akpm, netdev, linux-kernel
1) Fix state pruning in bpf verifier wrt. alignment, from Daniel
Borkmann.
2) Handle non-linear SKBs properly in SCTP ICMP parsing, from
Davide Caratti.
3) Fix bit field definitions for rss_hash_type of descriptors in
mlx5 driver, from Jesper Brouer.
4) Defer slave->link updates until bonding is ready to do a full
commit to the new settings, from Nithin Sujir.
5) Properly reference count ipv4 FIB metrics to avoid use after
free situations, from Eric Dumazet and several others including
Cong Wang and Julian Anastasov.
6) Fix races in llc_ui_bind(), from Lin Zhang.
7) Fix regression of ESP UDP encapsulation for TCP packets, from
Steffen Klassert.
8) Fix mdio-octeon driver Kconfig deps, from Randy Dunlap.
9) Fix regression in setting DSCP on ipv6/GRE encapsulation, from
Peter Dawson.
Please pull, thanks a lot!
The following changes since commit fadd2ce5a3680fb265694f573cbfb8bcb7d6c9d5:
Merge tag 'pstore-v4.12-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux (2017-05-22 19:31:07 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
for you to fetch changes up to 3fb07daff8e99243366a081e5129560734de4ada:
ipv4: add reference counting to metrics (2017-05-26 14:57:07 -0400)
----------------------------------------------------------------
Alexander Potapenko (1):
net: rtnetlink: bail out from rtnl_fdb_dump() on parse error
Andrew Lunn (1):
net: phy: marvell: Limit errata to 88m1101
Antony Antony (1):
xfrm: fix state migration copy replay sequence numbers
Arend Van Spriel (1):
cfg80211: make cfg80211_sched_scan_results() work from atomic context
Daniel Borkmann (5):
bpf: fix incorrect pruning decision when alignment must be tracked
bpf: properly reset caller saved regs after helper call and ld_abs/ind
bpf: add bpf_clone_redirect to bpf_helper_changes_pkt_data
bpf: fix wrong exposure of map_flags into fdinfo for lpm
bpf: add various verifier test cases
David Daney (1):
test_bpf: Add a couple of tests for BPF_JSGE.
David S. Miller (6):
Merge branch 'master' of git://git.kernel.org/.../klassert/ipsec
Merge branch 'sctp-dupcookie-fixes'
Merge tag 'mac80211-for-davem-2017-05-23' of git://git.kernel.org/.../jberg/mac80211
Merge tag 'mlx5-fixes-2017-05-23' of git://git.kernel.org/.../saeed/linux
Merge branch 'q-in-q-checksums'
Merge branch 'bpf-fixes'
Davide Caratti (1):
sctp: fix ICMP processing if skb is non-linear
Erez Shitrit (1):
net/mlx5e: IPoIB, handle RX packet correctly
Eric Dumazet (1):
ipv4: add reference counting to metrics
Eric Garver (1):
geneve: fix fill_info when using collect_metadata
Gustavo A. R. Silva (1):
net: fix potential null pointer dereference
Ihar Hrachyshka (1):
arp: fixed -Wuninitialized compiler warning
Ilan Tayari (1):
xfrm: Fix NETDEV_DOWN with IPSec offload
Jesper Dangaard Brouer (1):
mlx5: fix bug reading rss_hash_type from CQE
Mohamad Haj Yahia (1):
net/mlx5: Avoid using pending command interface slots
Nithin Sujir (1):
bonding: Don't update slave->link until ready to commit
Oliver Neukum (1):
cdc-ether: divorce initialisation with a filter reset and a generic method
Or Gerlitz (5):
net/mlx5e: Use the correct delete call on offloaded TC encap entry detach
net/sched: act_csum: Add accessors for offloading drivers
net/mlx5e: Allow TC csum offload if applied together with pedit action
net/mlx5e: Properly enforce disallowing of partial field re-write offload
net/mlx5e: Fix warnings around parsing of TC pedit actions
Peter Dawson (1):
ip6_tunnel, ip6_gre: fix setting of DSCP on encapsulated packets
Quentin Schulz (1):
net: fec: add post PHY reset delay DT property
Rajkumar Manoharan (1):
mac80211: strictly check mesh address extension mode
Randy Dunlap (1):
net/phy: fix mdio-octeon dependency and build
Roman Kapl (1):
net: move somaxconn init from sysctl code
Sabrina Dubroca (1):
xfrm: fix stack access out of bounds with CONFIG_XFRM_SUB_POLICY
Steffen Klassert (2):
esp4: Fix udpencap for local TCP packets.
af_key: Fix slab-out-of-bounds in pfkey_compile_policy.
Tariq Toukan (1):
net/mlx5: Tolerate irq_set_affinity_hint() failures
Uwe Kleine-König (1):
net: ethernet: ax88796: don't call free_irq without request_irq first
Vlad Yasevich (3):
vlan: Fix tcp checksum offloads in Q-in-Q vlans
be2net: Fix offload features for Q-in-Q packets
virtio-net: enable TSO/checksum offloads for Q-in-Q vlans
Wei Wang (1):
tcp: avoid fastopen API to be used on AF_UNSPEC
Xin Long (2):
sctp: fix stream update when processing dupcookie
sctp: set new_asoc temp when processing dupcookie
linzhang (1):
net: llc: add lock_sock in llc_ui_bind to avoid a race condition
Documentation/devicetree/bindings/net/fsl-fec.txt | 4 ++
drivers/net/bonding/bond_main.c | 11 ++++-
drivers/net/ethernet/8390/ax88796.c | 7 +---
drivers/net/ethernet/emulex/benet/be_main.c | 4 +-
drivers/net/ethernet/freescale/fec_main.c | 16 ++++++-
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 41 +++++++++++++++---
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 8 +++-
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 60 ++++++++++++++++++++++-----
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/health.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/main.c | 15 ++-----
drivers/net/geneve.c | 8 ++--
drivers/net/gtp.c | 2 +-
drivers/net/phy/Kconfig | 2 +-
drivers/net/phy/marvell.c | 66 ++++++++++++++++-------------
drivers/net/usb/cdc_ether.c | 31 ++++++++++----
drivers/net/virtio_net.c | 1 +
include/linux/filter.h | 10 +++++
include/linux/if_vlan.h | 18 ++++----
include/linux/mlx5/device.h | 10 ++++-
include/linux/mlx5/driver.h | 7 +++-
include/linux/usb/usbnet.h | 1 +
include/net/dst.h | 8 +++-
include/net/ip_fib.h | 10 ++---
include/net/tc_act/tc_csum.h | 15 +++++++
include/net/xfrm.h | 10 -----
kernel/bpf/arraymap.c | 1 +
kernel/bpf/lpm_trie.c | 1 +
kernel/bpf/stackmap.c | 1 +
kernel/bpf/verifier.c | 56 ++++++++++++-------------
lib/test_bpf.c | 38 +++++++++++++++++
net/core/dst.c | 23 +++++++----
net/core/filter.c | 1 +
net/core/net_namespace.c | 19 +++++++++
net/core/rtnetlink.c | 7 +++-
net/core/sysctl_net_core.c | 2 -
net/ipv4/arp.c | 2 +-
net/ipv4/esp4.c | 5 ++-
net/ipv4/fib_semantics.c | 17 ++++----
net/ipv4/route.c | 10 ++++-
net/ipv4/tcp.c | 7 +++-
net/ipv6/ip6_gre.c | 13 +++---
net/ipv6/ip6_tunnel.c | 21 ++++++----
net/key/af_key.c | 2 +-
net/llc/af_llc.c | 3 ++
net/mac80211/rx.c | 3 +-
net/sctp/associola.c | 4 +-
net/sctp/input.c | 16 +++----
net/sctp/sm_make_chunk.c | 13 ++----
net/sctp/sm_statefuns.c | 3 ++
net/wireless/scan.c | 8 ++--
net/wireless/util.c | 10 +++--
net/xfrm/xfrm_device.c | 2 +-
net/xfrm/xfrm_policy.c | 47 ---------------------
net/xfrm/xfrm_state.c | 2 +
tools/include/linux/filter.h | 10 +++++
tools/testing/selftests/bpf/test_verifier.c | 239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
57 files changed, 701 insertions(+), 254 deletions(-)
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox