* Re: [PATCH] appletalk: Pass IP-over-DDP packets through when 'ipddp0' interface is not present
From: Adam Seering @ 2016-03-20 21:19 UTC (permalink / raw)
To: David Miller; +Cc: acme, netdev
In-Reply-To: <1456447597.4577.49.camel@seering.org>
On Thu, 2016-02-25 at 19:46 -0500, Adam Seering wrote:
> On Thu, 2016-02-25 at 14:33 -0500, David Miller wrote:
> > From: Adam Seering <adam@seering.org>
> > Date: Tue, 23 Feb 2016 09:19:13 -0500
> >
> > > Let userspace programs transmit and receive raw IP-over-DDP
> > > packets
> > > with a kernel where "ipddp" was compiled as a module but is not
> > loaded
> > > (so no "ipddp0" network interface is exposed). This makes the
> > "module
> > > is not loaded" behavior match the "module was never compiled"
> > behavior.
> > >
> > > Signed-off-by: Adam Seering <adam@seering.org>
> >
> > I think a better approache is to somehow autoload the module.
>
> Could you elaborate? Specifically: the kernel currently suppresses
> packets on behalf of the module even after the module is unloaded.
> How
> would autoloading the module help with that?
>
I realize and appreciate that I'm not supposed to nag you folks for
feedback. But I don't know how to proceed. So, rather than nag you,
I've filed a bug:
https://bugzilla.kernel.org/show_bug.cgi?id=115031
I've tested my patch; I believe it to be the simplest change that
resolves this bug. I'm happy to write something else if it would be
cleaner and/or help others, but I would need a more-detailed
explanation of what you're looking for.
I've also filed a ticket downstream: Red Hat appears to not build the
ipddp module with their stock kernel release, so their users don't hit
this bug. But Ubuntu does build/ship ipddp; if they likewise didn't,
that would also solve my problem:
https://bugs.launchpad.net/ubuntu/+source/linux-lts-wily/+bug/1559772
Adam
^ permalink raw reply
* Re: [PATCH] lan78xx: Protect runtime_auto check by #ifdef CONFIG_PM
From: David Miller @ 2016-03-20 20:52 UTC (permalink / raw)
To: eric.dumazet
Cc: geert, woojung.huh, UNGLinuxDriver, linux, rjw, netdev, linux-usb,
linux-pm, linux-kernel
In-Reply-To: <1458491752.10868.4.camel@edumazet-glaptop3.roam.corp.google.com>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Sun, 20 Mar 2016 09:35:52 -0700
> On Sun, 2016-03-20 at 11:43 +0100, Geert Uytterhoeven wrote:
>> If CONFIG_PM=n:
>>
>> drivers/net/usb/lan78xx.c: In function ‘lan78xx_get_stats64’:
>> drivers/net/usb/lan78xx.c:3274: error: ‘struct dev_pm_info’ has no member named ‘runtime_auto’
>>
>> If PM is disabled, the runtime_auto flag is not available, but auto
>> suspend is not enabled anyway. Hence protect the check for runtime_auto
>> by #ifdef CONFIG_PM to fix this.
>>
>> Fixes: a59f8c5b048dc938 ("lan78xx: add ndo_get_stats64")
>> Reported-by: Guenter Roeck <linux@roeck-us.net>
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> ---
>> Alternatively, we can add a dev_pm_runtime_auto_is_enabled() wrapper to
>> include/linux/pm.h, which always return false if CONFIG_PM is disabled.
>>
>> The only other user in non-core code (drivers/usb/core/sysfs.c) has a
>> big #ifdef CONFIG_PM check around all PM-related code.
>>
>> Thoughts?
>> ---
>> drivers/net/usb/lan78xx.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
>> index d36d5ebf37f355f2..7b9ac47b2ecf9905 100644
>> --- a/drivers/net/usb/lan78xx.c
>> +++ b/drivers/net/usb/lan78xx.c
>> @@ -3271,7 +3271,9 @@ struct rtnl_link_stats64 *lan78xx_get_stats64(struct net_device *netdev,
>> * periodic reading from HW will prevent from entering USB auto suspend.
>> * if autosuspend is disabled, read from HW.
>> */
>> +#ifdef CONFIG_PM
>> if (!dev->udev->dev.power.runtime_auto)
>> +#endif
>> lan78xx_update_stats(dev);
>>
>> mutex_lock(&dev->stats.access_lock);
>
> Note that a ndo_get_stat64() handler is not allowed to sleep,
> so the mutex_lock() is not wise...
>
> Historically /proc/net/dev handler but also bonding ndo_get_stats() used
> RCU or a rwlock or a spinlock.
>
> So a complete fix would need to get rid of this mutex as well.
This function is also buggy for another reason. The driver needs to
capture the statistics when the runtime suspend happens.
Since it's much easier to find things wrong rather than right with
this new code, I've decided to completely revert the commit that added
lan78xx_get_stats64().
Once a correct version is implemented we can add it back.
Thanks.
^ permalink raw reply
* Re: [PATCH] net: sched: Add description for cpu_bstats argument
From: David Miller @ 2016-03-20 20:49 UTC (permalink / raw)
To: luisbg; +Cc: linux-kernel, netdev, edumazet, ast
In-Reply-To: <1458423098-3399-1-git-send-email-luisbg@osg.samsung.com>
From: Luis de Bethencourt <luisbg@osg.samsung.com>
Date: Sat, 19 Mar 2016 21:31:38 +0000
> Commit 22e0f8b9322c ("net: sched: make bstats per cpu and estimator RCU safe")
> added the argument cpu_bstats to functions gen_new_estimator and
> gen_replace_estimator and now the descriptions of these are missing for the
> documentation. Adding them.
>
> Signed-off-by: Luis de Bethencourt <luisbg@osg.samsung.com>
Applied.
^ permalink raw reply
* Re: [PATCH] gen_stats.c: Add description for cpu argument
From: David Miller @ 2016-03-20 20:49 UTC (permalink / raw)
To: luisbg; +Cc: linux-kernel, netdev
In-Reply-To: <1458422395-895-1-git-send-email-luisbg@osg.samsung.com>
From: Luis de Bethencourt <luisbg@osg.samsung.com>
Date: Sat, 19 Mar 2016 21:19:55 +0000
> Function gnet_stats_copy_basic is missing the description of the cpu
> argument in the documentation. Adding it.
>
> Signed-off-by: Luis de Bethencourt <luisbg@osg.samsung.com>
Applied.
^ permalink raw reply
* Re: [PATCH v7] isdn: Use ktime_t instead of 'struct timeval'
From: David Miller @ 2016-03-20 20:47 UTC (permalink / raw)
To: ruchandani.tina; +Cc: y2038, netdev, isdn, linux-kernel, arnd
In-Reply-To: <20160319182113.GA2256@tina-laptop>
From: Tina Ruchandani <ruchandani.tina@gmail.com>
Date: Sat, 19 Mar 2016 11:21:14 -0700
> 'struct timeval' uses 32-bit representation for seconds which will
> overflow in year 2038 and beyond. mISDN/clock.c needs to compute and
> store elapsed time in intervals of 125 microseconds. This patch replaces
> the usage of 'struct timeval' with 64-bit ktime_t which is y2038 safe.
> The patch also replaces do_gettimeofday() (wall-clock time) with
> ktime_get() (monotonic time) since we only care about elapsed time here.
>
> Signed-off-by: Tina Ruchandani <ruchandani.tina@gmail.com>
> Suggested-by: Arnd Bergmnann <arnd@arndb.de>
> Suggested-by: David Miller <davem@davemloft.net>
Applied, thank you.
_______________________________________________
Y2038 mailing list
Y2038@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/y2038
^ permalink raw reply
* Re: [PATCH net v2 0/3] Tunneling fixes
From: David Miller @ 2016-03-20 20:33 UTC (permalink / raw)
To: jesse; +Cc: netdev
In-Reply-To: <1458405122-12565-1-git-send-email-jesse@kernel.org>
From: Jesse Gross <jesse@kernel.org>
Date: Sat, 19 Mar 2016 09:31:59 -0700
> This series fixes a problem that was reported where encapsulated packets
> do not have their encapsulation offload markers stripped off when being
> decapsulated. This causes a significant performance drop if the packets
> are later retransmitted.
>
> Fixing this revealed two other bugs which are also addressed as prerequisites:
> * GRO can aggregate packets for multiple layers of encapsulation which the
> stack cannot properly handle.
> * IPIP packets which are combined by GRO are not marked properly with their
> GSO type.
>
> Note that this is based off the net-next tree as the current target for
> bug fixes.
>
> v2: No code changes, just additional information in commit messages and
> a new cover letter.
Applied, thanks for respinning this Jesse.
^ permalink raw reply
* Re: [PATCH net] net: remove a dubious unlikely() clause
From: David Miller @ 2016-03-20 20:32 UTC (permalink / raw)
To: eric.dumazet; +Cc: netdev, brouer
In-Reply-To: <1458498467.10868.14.camel@edumazet-glaptop3.roam.corp.google.com>
From: Eric Dumazet <eric.dumazet@gmail.com>
Date: Sun, 20 Mar 2016 11:27:47 -0700
> From: Eric Dumazet <edumazet@google.com>
>
> TCP protocol is still used these days, and TCP uses
> clones in its transmit path. We can not optimize linux
> stack assuming it is mostly used in routers, or that TCP
> is dead.
>
> Fixes: 795bb1c00d ("net: bulk free infrastructure for NAPI context, use napi_consume_skb")
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Cc: Jesper Dangaard Brouer <brouer@redhat.com>
Applied.
^ permalink raw reply
* Re: [PATCH] net/mlx4: remove unused array zero_gid[]
From: David Miller @ 2016-03-20 20:32 UTC (permalink / raw)
To: colin.king-Z7WLFzj8eWMS+FvcfC7Uqw
Cc: yishaih-VPRAkNaXOzVWk0Htik3J/w, netdev-u79uwXL29TY76Z2rM5mHXA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1458495896-18074-1-git-send-email-colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
From: Colin King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Date: Sun, 20 Mar 2016 17:44:56 +0000
> From: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
>
> zero_gid is not used, so remove this redundant array.
>
> Signed-off-by: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Applied.
--
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 v2] sctp: align MTU to a word
From: David Miller @ 2016-03-20 20:31 UTC (permalink / raw)
To: marcelo.leitner; +Cc: netdev, eric.dumazet, nhorman, vyasevich, linux-sctp
In-Reply-To: <1458400640-25448-1-git-send-email-marcelo.leitner@gmail.com>
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: Sat, 19 Mar 2016 12:17:20 -0300
> SCTP is a protocol that is aligned to a word (4 bytes). Thus using bare
> MTU can sometimes return values that are not aligned, like for loopback,
> which is 65536 but ipv4_mtu() limits that to 65535. This mis-alignment
> will cause the last non-aligned bytes to never be used and can cause
> issues with congestion control.
>
> So it's better to just consider a lower MTU and keep congestion control
> calcs saner as they are based on PMTU.
>
> Same applies to icmp frag needed messages, which is also fixed by this
> patch.
>
> One other effect of this is the inability to send MTU-sized packet
> without queueing or fragmentation and without hitting Nagle. As the
> check performed at sctp_packet_can_append_data():
>
> if (chunk->skb->len + q->out_qlen >= transport->pathmtu - packet->overhead)
> /* Enough data queued to fill a packet */
> return SCTP_XMIT_OK;
>
> with the above example of MTU, if there are no other messages queued,
> one cannot send a packet that just fits one packet (65532 bytes) and
> without causing DATA chunk fragmentation or a delay.
>
> v2:
> - Added WORD_TRUNC macro
>
> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Applied.
^ permalink raw reply
* Re: [PATCH] sctp: do not update a_rwnd if we are not issuing a sack
From: David Miller @ 2016-03-20 20:31 UTC (permalink / raw)
To: marcelo.leitner; +Cc: netdev, nhorman, vyasevich, linux-sctp
In-Reply-To: <1458337159-22792-3-git-send-email-marcelo.leitner@gmail.com>
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: Fri, 18 Mar 2016 18:39:18 -0300
> The SACK can be lost pretty much elsewhere, but if its allocation fail,
> we know we are not sending it, so it is better to revert a_rwnd to its
> previous value as this may give it a chance to issue a window update
> later.
>
> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Applied.
^ permalink raw reply
* Re: [PATCH] sctp: do not leak chunks that are sent to unconfirmed paths
From: David Miller @ 2016-03-20 20:31 UTC (permalink / raw)
To: marcelo.leitner; +Cc: netdev, nhorman, vyasevich, linux-sctp
In-Reply-To: <1458337159-22792-4-git-send-email-marcelo.leitner@gmail.com>
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: Fri, 18 Mar 2016 18:39:19 -0300
> Currently, if a chunk is scheduled to be sent through a transport that
> is currently unconfirmed, it will be leaked as it is dequeued from outq
> and is not re-queued nor freed.
>
> As I'm not aware of any situation that may lead to this situation, I'm
> fixing this by freeing the chunk and also logging a trace so that we can
> fix the other bug if it ever happens.
>
> Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Applied.
^ permalink raw reply
* Re: [RFD] workqueue: WQ_MEM_RECLAIM usage in network drivers
From: Tejun Heo @ 2016-03-20 18:55 UTC (permalink / raw)
To: J. Bruce Fields
Cc: Jeff Layton, David S. Miller, Trond Myklebust, Anna Schumaker,
netdev, linux-kernel, linux-nfs, Amitoj Kaur Chawla, kernel-team,
Johannes Weiner, Johannes Berg, Eva Rachel Retuya,
Bhaktipriya Shridhar, linux-wireless
In-Reply-To: <20160318212405.GA5192@fieldses.org>
Hello,
On Fri, Mar 18, 2016 at 05:24:05PM -0400, J. Bruce Fields wrote:
> > But does that actually work? It's pointless to add WQ_MEM_RECLAIM to
> > workqueues unless all other things are also guaranteed to make forward
> > progress regardless of memory pressure.
>
> It's supposed to work.
>
> Also note there was a bunch of work done to allow swap on NFS: see
> a564b8f0 "nfs: enable swap on NFS".
Alright, WQ_MEM_RECLAIM for ethernet devices, then.
> I use NFS mounts over wifi at home. I may just be odd. I seem to
> recall some bug reports about suspend vs. NFS--were those also on
> laptops using NFS?
>
> I wonder if home media centers might do writes over wifi to network
> storage?
>
> Googling for "nfs wifi" turns up lots of individuals doing this.
>
> My first impulse is to say that it's probably not perfect but that we
> shouldn't make it worse.
If everything else is working, I'd be happy to throw in WQ_MEM_RECLAIM
but I really don't want to add it if it doesn't actually achieve the
goal. Can a wireless person chime in here?
Thanks.
--
tejun
^ permalink raw reply
* [PATCH net] net: remove a dubious unlikely() clause
From: Eric Dumazet @ 2016-03-20 18:27 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Jesper Dangaard Brouer
From: Eric Dumazet <edumazet@google.com>
TCP protocol is still used these days, and TCP uses
clones in its transmit path. We can not optimize linux
stack assuming it is mostly used in routers, or that TCP
is dead.
Fixes: 795bb1c00d ("net: bulk free infrastructure for NAPI context, use napi_consume_skb")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jesper Dangaard Brouer <brouer@redhat.com>
---
net/core/skbuff.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index f044f97..d04c2d1 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -815,7 +815,7 @@ void napi_consume_skb(struct sk_buff *skb, int budget)
trace_consume_skb(skb);
/* if SKB is a clone, don't handle this case */
- if (unlikely(skb->fclone != SKB_FCLONE_UNAVAILABLE)) {
+ if (skb->fclone != SKB_FCLONE_UNAVAILABLE) {
__kfree_skb(skb);
return;
}
^ permalink raw reply related
* [PATCH] net/mlx4: remove unused array zero_gid[]
From: Colin King @ 2016-03-20 17:44 UTC (permalink / raw)
To: Yishai Hadas, netdev-u79uwXL29TY76Z2rM5mHXA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA
From: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
zero_gid is not used, so remove this redundant array.
Signed-off-by: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
---
drivers/net/ethernet/mellanox/mlx4/mcg.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx4/mcg.c b/drivers/net/ethernet/mellanox/mlx4/mcg.c
index 42d8de8..6aa7397 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mcg.c
+++ b/drivers/net/ethernet/mellanox/mlx4/mcg.c
@@ -39,8 +39,6 @@
#include "mlx4.h"
-static const u8 zero_gid[16]; /* automatically initialized to 0 */
-
int mlx4_get_mgm_entry_size(struct mlx4_dev *dev)
{
return 1 << dev->oper_log_mgm_entry_size;
--
2.7.3
--
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 related
* Re: [PATCH net 0/3] flowi6_tos fixes
From: David Miller @ 2016-03-20 17:44 UTC (permalink / raw)
To: daniel; +Cc: jbenc, linville, jesse, dsa, alexei.starovoitov, netdev
In-Reply-To: <cover.1458320940.git.daniel@iogearbox.net>
From: Daniel Borkmann <daniel@iogearbox.net>
Date: Fri, 18 Mar 2016 18:37:56 +0100
> This set is a follow-up to address Jiri's recent feedback [1] on
> the flowi6_tos issue, that it is not used for IPv6 route lookups.
> The three patches fix all current users of flowi6_tos and remove
> the define to avoid any future confusion on this. Tested the vxlan
> and geneve ones with IPv6 routing rules. For details, please see
> individual patches.
>
> [ As fixes are currently applied against net-next tree, I've rebased
> it against that. ]
>
> Thanks!
>
> [1] http://patchwork.ozlabs.org/patch/592055/
Series applied, thanks Daniel.
^ permalink raw reply
* [PATCH] brcmfmac: sdio: remove unused variable retry_limit
From: Colin King @ 2016-03-20 17:34 UTC (permalink / raw)
To: Brett Rudley, Arend van Spriel, Franky Lin, Hante Meuleman,
Kalle Valo, Pieter-Paul Giesberts, Vineet Gupta, Kosuke Tatsukawa,
linux-wireless, brcm80211-dev-list, netdev
Cc: linux-kernel
From: Colin Ian King <colin.king@canonical.com>
retry_limit has never been used during the life of this driver, so
we may as well remove it as it is redundant.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index 43fd3f4..cd92ba7 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -535,9 +535,6 @@ static int qcount[NUMPRIO];
#define RETRYCHAN(chan) ((chan) == SDPCM_EVENT_CHANNEL)
-/* Retry count for register access failures */
-static const uint retry_limit = 2;
-
/* Limit on rounding up frames */
static const uint max_roundup = 512;
--
2.7.3
^ permalink raw reply related
* Re: [PATCH v1 0/2] basic ioctl support for netlink sockets
From: David Miller @ 2016-03-20 17:31 UTC (permalink / raw)
To: ddecotig
Cc: linux-kernel, netdev, nikolay, mst, ben, jeffrey.t.kirsher, decot,
nicolas.dichtel, andrew, hadarh, ecree, john.r.fastabend, herbert,
tgraf, daniel, chamaken, fw, dh.herrmann
In-Reply-To: <1458259436-85275-1-git-send-email-ddecotig@gmail.com>
From: David Decotigny <ddecotig@gmail.com>
Date: Thu, 17 Mar 2016 17:03:54 -0700
> This removes the requirement that ethtool be tied to the support
> of a specific L3 protocol, also updates a comment.
You're adding an ioctl handler to netlink sockets, and it is not
at all apparent to me how this influences ethtool handling at all.
Therefore you have to explain this here and in your commit message.
^ permalink raw reply
* Re: [PATCH] lan78xx: Protect runtime_auto check by #ifdef CONFIG_PM
From: Eric Dumazet @ 2016-03-20 16:35 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Woojung Huh, Microchip Linux Driver Support, David S. Miller,
Guenter Roeck, Rafael J. Wysocki, netdev, linux-usb, linux-pm,
linux-kernel
In-Reply-To: <1458470636-18986-1-git-send-email-geert@linux-m68k.org>
On Sun, 2016-03-20 at 11:43 +0100, Geert Uytterhoeven wrote:
> If CONFIG_PM=n:
>
> drivers/net/usb/lan78xx.c: In function ‘lan78xx_get_stats64’:
> drivers/net/usb/lan78xx.c:3274: error: ‘struct dev_pm_info’ has no member named ‘runtime_auto’
>
> If PM is disabled, the runtime_auto flag is not available, but auto
> suspend is not enabled anyway. Hence protect the check for runtime_auto
> by #ifdef CONFIG_PM to fix this.
>
> Fixes: a59f8c5b048dc938 ("lan78xx: add ndo_get_stats64")
> Reported-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> Alternatively, we can add a dev_pm_runtime_auto_is_enabled() wrapper to
> include/linux/pm.h, which always return false if CONFIG_PM is disabled.
>
> The only other user in non-core code (drivers/usb/core/sysfs.c) has a
> big #ifdef CONFIG_PM check around all PM-related code.
>
> Thoughts?
> ---
> drivers/net/usb/lan78xx.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
> index d36d5ebf37f355f2..7b9ac47b2ecf9905 100644
> --- a/drivers/net/usb/lan78xx.c
> +++ b/drivers/net/usb/lan78xx.c
> @@ -3271,7 +3271,9 @@ struct rtnl_link_stats64 *lan78xx_get_stats64(struct net_device *netdev,
> * periodic reading from HW will prevent from entering USB auto suspend.
> * if autosuspend is disabled, read from HW.
> */
> +#ifdef CONFIG_PM
> if (!dev->udev->dev.power.runtime_auto)
> +#endif
> lan78xx_update_stats(dev);
>
> mutex_lock(&dev->stats.access_lock);
Note that a ndo_get_stat64() handler is not allowed to sleep,
so the mutex_lock() is not wise...
Historically /proc/net/dev handler but also bonding ndo_get_stats() used
RCU or a rwlock or a spinlock.
So a complete fix would need to get rid of this mutex as well.
^ permalink raw reply
* [PULL] virtio/vhost: new features, performance improvements, cleanups
From: Michael S. Tsirkin @ 2016-03-20 13:58 UTC (permalink / raw)
To: Linus Torvalds
Cc: pmladek, kvm, geliangtang, netdev, mst, sebott, linux-kernel,
pmladek, virtualization, borntraeger, luto, pbonzini, pabeni,
schwidefsky, gkurz
The following changes since commit e1f33be9186363da7955bcb5f0b03e6685544c50:
vhost: fix error path in vhost_init_used() (2016-03-02 17:01:49 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost.git tags/for_linus
for you to fetch changes up to c67f5db82027ba6d2ea4ac9176bc45996a03ae6a:
virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb() (2016-03-17 17:42:00 +0200)
----------------------------------------------------------------
virtio/vhost: new features, performance improvements, cleanups
This adds basic polling support for vhost.
Reworks virtio to optionally use DMA API, fixing it on Xen.
Balloon stats gained a new entry.
Using the new napi_alloc_skb speeds up virtio net.
virtio blk stats can now be read while another VCPU
us busy inflating or deflating the balloon.
Plus misc cleanups in various places.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
----------------------------------------------------------------
Andy Lutomirski (6):
vring: Introduce vring_use_dma_api()
virtio_ring: Support DMA APIs
virtio: Add improved queue allocation API
virtio_mmio: Use the DMA API if enabled
virtio_pci: Use the DMA API if enabled
vring: Use the DMA API on Xen
Christian Borntraeger (3):
dma: Provide simple noop dma ops
alpha/dma: use common noop dma ops
s390/dma: Allow per device dma ops
Cornelia Huck (1):
virtio/s390: size of SET_IND payload
Geliang Tang (1):
virtio/s390: use dev_to_virtio
Greg Kurz (2):
vhost: rename cross-endian helpers
vhost: rename vhost_init_used()
Jason Wang (3):
vhost: introduce vhost_has_work()
vhost: introduce vhost_vq_avail_empty()
vhost_net: basic polling support
Michael S. Tsirkin (1):
virtio_blk: VIRTIO_BLK_F_WCE->VIRTIO_BLK_F_FLUSH
Paolo Abeni (1):
virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
Petr Mladek (2):
virtio_balloon: Use a workqueue instead of "vballoon" kthread
virtio_balloon: Allow to resize and update the balloon stats in parallel
arch/s390/include/asm/device.h | 6 +-
arch/s390/include/asm/dma-mapping.h | 6 +-
drivers/vhost/vhost.h | 5 +-
drivers/virtio/virtio_pci_common.h | 6 -
include/linux/dma-mapping.h | 2 +
include/linux/virtio.h | 23 +-
include/linux/virtio_ring.h | 35 +++
include/uapi/linux/vhost.h | 6 +
include/uapi/linux/virtio_blk.h | 6 +-
tools/virtio/linux/dma-mapping.h | 17 ++
arch/alpha/kernel/pci-noop.c | 46 +---
arch/s390/pci/pci.c | 1 +
arch/s390/pci/pci_dma.c | 4 +-
drivers/block/virtio_blk.c | 11 +-
drivers/net/virtio_net.c | 2 +-
drivers/s390/virtio/virtio_ccw.c | 15 +-
drivers/vhost/net.c | 80 ++++++-
drivers/vhost/scsi.c | 2 +-
drivers/vhost/test.c | 2 +-
drivers/vhost/vhost.c | 69 +++++-
drivers/virtio/virtio_balloon.c | 122 +++++-----
drivers/virtio/virtio_mmio.c | 67 ++----
drivers/virtio/virtio_pci_legacy.c | 42 ++--
drivers/virtio/virtio_pci_modern.c | 61 ++---
drivers/virtio/virtio_ring.c | 439 +++++++++++++++++++++++++++++++-----
lib/dma-noop.c | 75 ++++++
arch/s390/Kconfig | 5 +-
drivers/virtio/Kconfig | 2 +-
lib/Makefile | 1 +
29 files changed, 823 insertions(+), 335 deletions(-)
create mode 100644 tools/virtio/linux/dma-mapping.h
create mode 100644 lib/dma-noop.c
^ permalink raw reply
* Re: [net-next v2] virtio_net: replace netdev_alloc_skb_ip_align() with napi_alloc_skb()
From: Michael S. Tsirkin @ 2016-03-20 12:28 UTC (permalink / raw)
To: Paolo Abeni
Cc: netdev, virtualization, Hannes Frederic Sowa, Venkatesh Srinivas
In-Reply-To: <98c94ca899603eb4212c44aa1a658825198ed49a.1458290241.git.pabeni@redhat.com>
On Fri, Mar 18, 2016 at 04:42:48PM +0100, Paolo Abeni wrote:
> This gives small but noticeable rx performance improvement (2-3%)
> and will allow exploiting future napi improvement.
>
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
I am not sure this is necessarily worth doing for this dumb hardware.
I queued v1 in vhost tree for now, let's see some performance
numbers before we start changing about other paths.
> --
> v2: replace also netdev_alloc_skb_ip_align() invocation in
> add_recvbuf_small(), suggested by Venkatesh Srinivas
> ---
> drivers/net/virtio_net.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index fb0eae4..100e039 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -260,7 +260,7 @@ static struct sk_buff *page_to_skb(struct virtnet_info *vi,
> p = page_address(page) + offset;
>
> /* copy small packet so we can reuse these pages for small data */
> - skb = netdev_alloc_skb_ip_align(vi->dev, GOOD_COPY_LEN);
> + skb = napi_alloc_skb(&rq->napi, GOOD_COPY_LEN);
> if (unlikely(!skb))
> return NULL;
>
> @@ -541,7 +541,7 @@ static int add_recvbuf_small(struct virtnet_info *vi, struct receive_queue *rq,
> struct virtio_net_hdr_mrg_rxbuf *hdr;
> int err;
>
> - skb = __netdev_alloc_skb_ip_align(vi->dev, GOOD_PACKET_LEN, gfp);
> + skb = __napi_alloc_skb(&rq->napi, GOOD_PACKET_LEN, gfp);
> if (unlikely(!skb))
> return -ENOMEM;
>
> --
> 1.8.3.1
^ permalink raw reply
* [PATCH] lan78xx: Protect runtime_auto check by #ifdef CONFIG_PM
From: Geert Uytterhoeven @ 2016-03-20 10:43 UTC (permalink / raw)
To: Woojung Huh, Microchip Linux Driver Support, David S. Miller
Cc: Guenter Roeck, Rafael J. Wysocki, netdev, linux-usb, linux-pm,
linux-kernel, Geert Uytterhoeven
If CONFIG_PM=n:
drivers/net/usb/lan78xx.c: In function ‘lan78xx_get_stats64’:
drivers/net/usb/lan78xx.c:3274: error: ‘struct dev_pm_info’ has no member named ‘runtime_auto’
If PM is disabled, the runtime_auto flag is not available, but auto
suspend is not enabled anyway. Hence protect the check for runtime_auto
by #ifdef CONFIG_PM to fix this.
Fixes: a59f8c5b048dc938 ("lan78xx: add ndo_get_stats64")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
Alternatively, we can add a dev_pm_runtime_auto_is_enabled() wrapper to
include/linux/pm.h, which always return false if CONFIG_PM is disabled.
The only other user in non-core code (drivers/usb/core/sysfs.c) has a
big #ifdef CONFIG_PM check around all PM-related code.
Thoughts?
---
drivers/net/usb/lan78xx.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index d36d5ebf37f355f2..7b9ac47b2ecf9905 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -3271,7 +3271,9 @@ struct rtnl_link_stats64 *lan78xx_get_stats64(struct net_device *netdev,
* periodic reading from HW will prevent from entering USB auto suspend.
* if autosuspend is disabled, read from HW.
*/
+#ifdef CONFIG_PM
if (!dev->udev->dev.power.runtime_auto)
+#endif
lan78xx_update_stats(dev);
mutex_lock(&dev->stats.access_lock);
--
1.9.1
^ permalink raw reply related
* Re: [PATCH] change nfqueue fail-open mechanism to apply also to receive message
From: kbuild test robot @ 2016-03-20 8:16 UTC (permalink / raw)
To: Yigal Reiss (yreiss)
Cc: kbuild-all, 'netdev@vger.kernel.org',
netfilter-devel@vger.kernel.org, Florian Westphal (fw@strlen.de)
In-Reply-To: <1f5ee28787f147b4bf682f16a99254ac@XCH-RTP-014.cisco.com>
[-- Attachment #1: Type: text/plain, Size: 1765 bytes --]
Hi Yigal,
[auto build test WARNING on v4.5-rc7]
[cannot apply to nf-next/master net-next/master next-20160318]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Yigal-Reiss-yreiss/change-nfqueue-fail-open-mechanism-to-apply-also-to-receive-message/20160320-160132
config: xtensa-allyesconfig (attached as .config)
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=xtensa
All warnings (new ones prefixed by >>):
net/netlink/af_netlink.c: In function 'netlink_unicast_nofree':
>> net/netlink/af_netlink.c:1876:2: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
if (err = sk_filter(sk, skb)) {
^
vim +1876 net/netlink/af_netlink.c
1860 {
1861 struct sock *sk;
1862 int err;
1863 long timeo;
1864
1865 skb = netlink_trim(skb, gfp_any());
1866
1867 timeo = sock_sndtimeo(ssk, nonblock);
1868 retry:
1869 sk = netlink_getsockbyportid(ssk, portid);
1870 if (IS_ERR(sk)) {
1871 return PTR_ERR(sk);
1872 }
1873 if (netlink_is_kernel(sk))
1874 return netlink_unicast_kernel(sk, skb, ssk);
1875
> 1876 if (err = sk_filter(sk, skb)) {
1877 sock_put(sk);
1878 return err;
1879 }
1880
1881 err = netlink_attachskb_nofree(sk, skb, &timeo, ssk);
1882 if (err == 1)
1883 goto retry;
1884 if (err)
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 44058 bytes --]
^ permalink raw reply
* [PATCH] change nfqueue fail-open mechanism to apply also to receive message
From: Yigal Reiss (yreiss) @ 2016-03-20 7:59 UTC (permalink / raw)
To: 'netdev@vger.kernel.org', netfilter-devel@vger.kernel.org
Cc: Florian Westphal (fw@strlen.de)
Signed-off-by: Yigal Reiss <yreiss@cisco.com>
---
This is follow-up on http://marc.info/?l=netfilter-devel&m=145765526817347&w=2
Existing fail-open mechanism for nfqueue only applies for message that cannot be sent due to queue size (queue_maxlen). It does not apply when the failure is due to socket receive buffer size. This seems to be quite arbitrary since different packet sizes for the same queue and buffer sizes yield failure for different reasons.
This patch makes both behave the same.
There is also a change in the proc file (/proc/net/netfilter/nfnetlink_queue) to account for the fail-opened packets.
One change to existing behavior which I would like to stress is in the function netlink_unicast (now in netlink_unicast_nofree). In case where a call to sk_filter() returned non-zero value, netlink_unicast would set its returned error value to skb->len. I don't see how this ever made sense and I couldn't find anyone looking at this value. I changed this in order to have a consistent (err<0) return value on errors which was required for my changes. If anyone sees a problem with this change I'd like to know.
include/linux/netfilter/nfnetlink.h | 2 ++
include/linux/netlink.h | 3 +++
net/netfilter/nfnetlink.c | 7 +++++++
net/netfilter/nfnetlink_queue.c | 25 ++++++++++++++++++-------
net/netlink/af_netlink.c | 36 ++++++++++++++++++++++++------------
5 files changed, 54 insertions(+), 19 deletions(-)
diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
index ba0d978..eb477d4 100644
--- a/include/linux/netfilter/nfnetlink.h
+++ b/include/linux/netfilter/nfnetlink.h
@@ -39,6 +39,8 @@ struct sk_buff *nfnetlink_alloc_skb(struct net *net, unsigned int size,
int nfnetlink_send(struct sk_buff *skb, struct net *net, u32 portid,
unsigned int group, int echo, gfp_t flags);
int nfnetlink_set_err(struct net *net, u32 portid, u32 group, int error);
+int nfnetlink_unicast_nofree(struct sk_buff *skb, struct net *net, u32 portid,
+ int flags);
int nfnetlink_unicast(struct sk_buff *skb, struct net *net, u32 portid,
int flags);
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 0b41959..9f7a819 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -79,6 +79,7 @@ netlink_alloc_skb(struct sock *ssk, unsigned int size, u32 dst_portid,
return __netlink_alloc_skb(ssk, size, 0, dst_portid, gfp_mask);
}
+extern int netlink_unicast_nofree(struct sock *ssk, struct sk_buff *skb, __u32 portid, int nonblock);
extern int netlink_unicast(struct sock *ssk, struct sk_buff *skb, __u32 portid, int nonblock);
extern int netlink_broadcast(struct sock *ssk, struct sk_buff *skb, __u32 portid,
__u32 group, gfp_t allocation);
@@ -92,6 +93,8 @@ extern int netlink_unregister_notifier(struct notifier_block *nb);
/* finegrained unicast helpers: */
struct sock *netlink_getsockbyfilp(struct file *filp);
+int netlink_attachskb_nofree(struct sock *sk, struct sk_buff *skb,
+ long *timeo, struct sock *ssk);
int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
long *timeo, struct sock *ssk);
void netlink_detachskb(struct sock *sk, struct sk_buff *skb);
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
index 857ae89..28f7e2d 100644
--- a/net/netfilter/nfnetlink.c
+++ b/net/netfilter/nfnetlink.c
@@ -154,6 +154,13 @@ int nfnetlink_unicast(struct sk_buff *skb, struct net *net, u32 portid,
}
EXPORT_SYMBOL_GPL(nfnetlink_unicast);
+int nfnetlink_unicast_nofree(struct sk_buff *skb, struct net *net, u32 portid,
+ int flags)
+{
+ return netlink_unicast_nofree(net->nfnl, skb, portid, flags);
+}
+EXPORT_SYMBOL_GPL(nfnetlink_unicast_nofree);
+
/* Process one complete nfnetlink message. */
static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
{
diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c
index 1d39365..3d32153 100644
--- a/net/netfilter/nfnetlink_queue.c
+++ b/net/netfilter/nfnetlink_queue.c
@@ -60,7 +60,8 @@ struct nfqnl_instance {
unsigned int copy_range;
unsigned int queue_dropped;
unsigned int queue_user_dropped;
-
+ unsigned int queue_failopened;
+ unsigned int nobuf_failopened;
u_int16_t queue_num; /* number of this queue */
u_int8_t copy_mode;
@@ -551,6 +552,7 @@ nla_put_failure:
return NULL;
}
+
static int
__nfqnl_enqueue_packet(struct net *net, struct nfqnl_instance *queue,
struct nf_queue_entry *entry)
@@ -569,6 +571,7 @@ __nfqnl_enqueue_packet(struct net *net, struct nfqnl_instance *queue,
if (queue->queue_total >= queue->queue_maxlen) {
if (queue->flags & NFQA_CFG_F_FAIL_OPEN) {
+ queue->queue_failopened++;
failopen = 1;
err = 0;
} else {
@@ -582,10 +585,17 @@ __nfqnl_enqueue_packet(struct net *net, struct nfqnl_instance *queue,
*packet_id_ptr = htonl(entry->id);
/* nfnetlink_unicast will either free the nskb or add it to a socket */
- err = nfnetlink_unicast(nskb, net, queue->peer_portid, MSG_DONTWAIT);
+ err = nfnetlink_unicast_nofree(nskb, net, queue->peer_portid, MSG_DONTWAIT);
if (err < 0) {
- queue->queue_user_dropped++;
- goto err_out_unlock;
+ if (queue->flags & NFQA_CFG_F_FAIL_OPEN) {
+ queue->nobuf_failopened++;
+ failopen = 1;
+ err = 0;
+ }
+ else {
+ queue->queue_user_dropped++;
+ }
+ goto err_out_free_nskb;
}
__enqueue_entry(queue, entry);
@@ -595,7 +605,6 @@ __nfqnl_enqueue_packet(struct net *net, struct nfqnl_instance *queue,
err_out_free_nskb:
kfree_skb(nskb);
-err_out_unlock:
spin_unlock_bh(&queue->lock);
if (failopen)
nf_reinject(entry, NF_ACCEPT);
@@ -1327,12 +1336,14 @@ static int seq_show(struct seq_file *s, void *v)
{
const struct nfqnl_instance *inst = v;
- seq_printf(s, "%5u %6u %5u %1u %5u %5u %5u %8u %2d\n",
+ seq_printf(s, "%5u %6u %5u %1u %5u %5u %5u %8u %5u %5u %2d\n",
inst->queue_num,
inst->peer_portid, inst->queue_total,
inst->copy_mode, inst->copy_range,
inst->queue_dropped, inst->queue_user_dropped,
- inst->id_sequence, 1);
+ inst->id_sequence,
+ inst->queue_failopened, inst->nobuf_failopened,
+ 2);
return 0;
}
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index f1ffb34..5d9445d 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1710,17 +1710,26 @@ static struct sk_buff *netlink_alloc_large_skb(unsigned int size,
return skb;
}
+int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
+ long *timeo, struct sock *ssk)
+{
+ int ret = netlink_attachskb_nofree(sk, skb, timeo, ssk);
+ if (ret < 0)
+ kfree_skb(skb);
+ return ret;
+}
+
/*
* Attach a skb to a netlink socket.
* The caller must hold a reference to the destination socket. On error, the
* reference is dropped. The skb is not send to the destination, just all
* all error checks are performed and memory in the queue is reserved.
* Return values:
- * < 0: error. skb freed, reference to sock dropped.
+ * < 0: error. reference to sock dropped.
* 0: continue
* 1: repeat lookup - reference dropped while waiting for socket memory.
*/
-int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
+int netlink_attachskb_nofree(struct sock *sk, struct sk_buff *skb,
long *timeo, struct sock *ssk)
{
struct netlink_sock *nlk;
@@ -1735,7 +1744,6 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
if (!ssk || netlink_is_kernel(ssk))
netlink_overrun(sk);
sock_put(sk);
- kfree_skb(skb);
return -EAGAIN;
}
@@ -1752,7 +1760,6 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
sock_put(sk);
if (signal_pending(current)) {
- kfree_skb(skb);
return sock_intr_errno(*timeo);
}
return 1;
@@ -1833,8 +1840,6 @@ static int netlink_unicast_kernel(struct sock *sk, struct sk_buff *skb,
netlink_deliver_tap_kernel(sk, ssk, skb);
nlk->netlink_rcv(skb);
consume_skb(skb);
- } else {
- kfree_skb(skb);
}
sock_put(sk);
return ret;
@@ -1843,6 +1848,16 @@ static int netlink_unicast_kernel(struct sock *sk, struct sk_buff *skb,
int netlink_unicast(struct sock *ssk, struct sk_buff *skb,
u32 portid, int nonblock)
{
+ int ret = netlink_unicast_nofree(ssk, skb, portid, nonblock);
+ if (ret < 0)
+ kfree_skb(skb);
+ return ret;
+}
+EXPORT_SYMBOL(netlink_unicast);
+
+int netlink_unicast_nofree(struct sock *ssk, struct sk_buff *skb,
+ u32 portid, int nonblock)
+{
struct sock *sk;
int err;
long timeo;
@@ -1853,20 +1868,17 @@ int netlink_unicast(struct sock *ssk, struct sk_buff *skb,
retry:
sk = netlink_getsockbyportid(ssk, portid);
if (IS_ERR(sk)) {
- kfree_skb(skb);
return PTR_ERR(sk);
}
if (netlink_is_kernel(sk))
return netlink_unicast_kernel(sk, skb, ssk);
- if (sk_filter(sk, skb)) {
- err = skb->len;
- kfree_skb(skb);
+ if (err = sk_filter(sk, skb)) {
sock_put(sk);
return err;
}
- err = netlink_attachskb(sk, skb, &timeo, ssk);
+ err = netlink_attachskb_nofree(sk, skb, &timeo, ssk);
if (err == 1)
goto retry;
if (err)
@@ -1874,7 +1886,7 @@ retry:
return netlink_sendskb(sk, skb);
}
-EXPORT_SYMBOL(netlink_unicast);
+EXPORT_SYMBOL(netlink_unicast_nofree);
struct sk_buff *__netlink_alloc_skb(struct sock *ssk, unsigned int size,
unsigned int ldiff, u32 dst_portid,
--
1.9.1
^ permalink raw reply related
* Re: [PATCH net-next] net/mlx4_core: Fix backward compatibility on VFs
From: Or Gerlitz @ 2016-03-20 7:21 UTC (permalink / raw)
To: Yuval Shaia
Cc: Eli Cohen, David Miller, linux-rdma@vger.kernel.org,
Linux Netdev List, Alexey Kardashevskiy
In-Reply-To: <20160320070759.GA2935@yuval-lap.uk.oracle.com>
On Sun, Mar 20, 2016 at 9:07 AM, Yuval Shaia <yuval.shaia@oracle.com> wrote:
> On Fri, Mar 18, 2016 at 11:11:06PM -0400, David Miller wrote:
>> From: Eli Cohen <eli@mellanox.com>
>> Date: Thu, 17 Mar 2016 18:49:42 +0200
>> > Commit 85743f1eb345 ("net/mlx4_core: Set UAR page size to 4KB regardless
>> > of system page size") introduced dependency where old VF drivers without
>> > this fix fail to load if the PF driver runs with this commit.
>> > To resolve this add a module parameter which disables that functionality
>> > by default. If both the PF and VFs are running with a driver with that
>> > commit the administrator may set the module param to true.
>> > The module parameter is called enable_4k_uar.
> Can you consider passing this via comm-channel and save us all from new
> module parameter?
> Suggesting this from sys-admin perspective where (1) making this consist in
> VF and **all** guests would me a nightmare and also (2) take into account
> in public cloud that hypervisor sys-admin is not necessary the same person
> as guest sys-admin.
AFAIK both modified (e.g containing the offending commit) and
non-modified VF drivers
need not be aware to the fix. It should be a PF only param, where all types of
VF driver keeps working with their source of info being the comm-channel only.
Eli, Yishai, can you confirm this is the case?
Or.
^ permalink raw reply
* Re: [PATCH net-next] net/mlx4_core: Fix backward compatibility on VFs
From: Yuval Shaia @ 2016-03-20 7:07 UTC (permalink / raw)
To: eli-VPRAkNaXOzVWk0Htik3J/w, David Miller
Cc: eli-VPRAkNaXOzVWk0Htik3J/w, linux-rdma-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA, aik-sLpHqDYs0B2HXe+LvDLADg
In-Reply-To: <20160318.231106.2099055485546956238.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
On Fri, Mar 18, 2016 at 11:11:06PM -0400, David Miller wrote:
> From: Eli Cohen <eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> Date: Thu, 17 Mar 2016 18:49:42 +0200
>
> > Commit 85743f1eb345 ("net/mlx4_core: Set UAR page size to 4KB regardless
> > of system page size") introduced dependency where old VF drivers without
> > this fix fail to load if the PF driver runs with this commit.
> >
> > To resolve this add a module parameter which disables that functionality
> > by default. If both the PF and VFs are running with a driver with that
> > commit the administrator may set the module param to true.
> >
> > The module parameter is called enable_4k_uar.
Can you consider passing this via comm-channel and save us all from new
module parameter?
Suggesting this from sys-admin perspective where (1) making this consist in
VF and **all** guests would me a nightmare and also (2) take into account
in public cloud that hypervisor sys-admin is not necessary the same person
as guest sys-admin.
> >
> > Fixes: 85743f1eb345 ('net/mlx4_core: Set UAR page size to 4KB ...')
> > Signed-off-by: Eli Cohen <eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
>
> Applied.
> --
> 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
--
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
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