On Tue, 2022-06-21 at 17:34 +0800, Jason Wang wrote:
> On Tue, Jun 21, 2022 at 5:24 PM David Hildenbrand wrote:
> >
> > On 20.06.22 20:49, Ben Hutchings wrote:
> > > I've tested a 5.19-rc3 kernel on top of QEMU/KVM with machine type
> > > pc-q35-5.2. It
l S. Tsirkin
[bwh: Backported to 3.16: Deflate-on-OOM is not supported at all so don't
check that flag]
Signed-off-by: Ben Hutchings
---
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -403,6 +403,16 @@ static int virtballoon_migratepage(struc
:
https://lkml.kernel.org/r/1541303219-11142-3-git-send-email-mikel...@microsoft.com
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings
---
arch/x86/kernel/cpu/mshyperv.c | 11 +++
1 file changed, 11 insertions(+)
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86
: "a...@canonical.com"
Cc: vkuznets
Cc: "jasow...@redhat.com"
Cc: "marcelo.ce...@canonical.com"
Cc: KY Srinivasan
Link:
https://lkml.kernel.org/r/1541303219-11142-2-git-send-email-mikel...@microsoft.com
[bwh: Backported to 3.16:
- Don't use
org/r/20180919103553.GD9238@mwanda
Signed-off-by: Ben Hutchings
---
arch/x86/kernel/paravirt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -99,7 +99,7 @@ unsigned paravirt_patch_call(void *insnb
if
should be
that UFO has no effect on the packet headers on the wire, and therefore
that the fragment ID is chosen by the IPv6 stack in the guest.
Ben.
--
Ben Hutchings
Teamwork is essential - it allows you to blame someone else.
signature
tap/macvap and virtio devices.
>
> Signed-off-by: Vladislav Yasevich
[...]
Acked-by: Ben Hutchings
I think this is sensible even before your other patches.
Ben.
--
Ben Hutchings
When in doubt, use brute force. - Ken Thompson
signature.asc
Description: This is a digitall
ipvs_property:1;
> __u8inner_protocol_type:1;
> __u8remcsum_offload:1;
> - /* 3 or 5 bit hole */
> + __u8ufo_fragid_set:1;
[...]
Doesn't the flag belong in struct skb_shared_info, rather than struct
sk_buff? Other
tation ID needs to be added to the vnet header, to do
UFOv6 properly. If it wasn't for that lack, we wouldn't have to split
the feature flag.
Ben.
--
Ben Hutchings
If more than one person is responsible for a bug, no one is at fault.
signature.asc
Description: This is a digitally si
atures & NETIF_F_GEN_CSUM) &&
> + !(features & NETIF_F_IPV6_CSUM)) {
[...]
Similarly you can use !(features & NETIF_F_V6_CSUM) instead of the last
two terms.
Aside from those minor po
tures & (1ULL << bit);
>
> Erm, wouldn't the high word be just dropped when returning *int*? I think
> you need !!(vq->acked_features & (1ULL << bit)).
Or change the return type to bool.
Ben.
--
Ben Hutchings
The first rule of tautology club is the f
On Wed, 2014-11-19 at 11:14 +0200, Michael S. Tsirkin wrote:
> On Thu, Oct 30, 2014 at 06:27:12PM +0000, Ben Hutchings wrote:
> > IPv6 does not allow fragmentation by routers, so there is no
> > fragmentation ID in the fixed header. UFO for IPv6 requires the ID to
> > be p
running with virtio net
devices.
Fixes: 88e0e0e5aa7a ("drivers/net: Disable UFO through virtio")
Signed-off-by: Ben Hutchings
---
Compile-tested only.
Ben.
drivers/net/macvtap.c | 13 -
drivers/net/tun.c | 19 ---
2 files changed, 16 insertions(+), 16
On Tue, 2014-11-11 at 17:57 +0200, Michael S. Tsirkin wrote:
> On Tue, Nov 11, 2014 at 12:17:26PM +0000, Ben Hutchings wrote:
> > On Tue, 2014-11-11 at 10:58 +, Stefan Hajnoczi wrote:
> > > Commit 3d0ad09412ffe00c9afa201d01effdb6023d09b4 ("drivers/net: Disable
> >
o your attention. Soon a lot of people will be hitting this problem as
> they upgrade their infrastructure and migrate guests - seems like a
> critical issue.
You can work around this by making macvtap and tun still claim to
support UFO. They continue to support it even if it's
On Thu, 2014-10-30 at 11:47 -0700, Eric Dumazet wrote:
> On Thu, 2014-10-30 at 18:27 +0000, Ben Hutchings wrote:
>
>
> > + {
> > + static bool warned;
> > +
> > + if (!warned) {
> > +
UFO is now disabled on all drivers that work with virtio net headers,
but userland may try to send UFO/IPv6 packets anyway. Instead of
sending with ID=0, we should select identifiers on their behalf (as we
used to).
Signed-off-by: Ben Hutchings
Fixes: 916e4cf46d02 ("ipv6: reuse ip6_frag_id
respecting the tap feature flags, so
keep accepting UFO packets but log a warning the first time we do
this.
Signed-off-by: Ben Hutchings
Fixes: 916e4cf46d02 ("ipv6: reuse ip6_frag_id from ip6_ufo_append_data")
---
drivers/net/macvtap.c| 13 +
drivers/net/tun.c
The virtio net protocol supports UFO but does not provide for passing a
fragment ID for fragmentation of IPv6 packets. We used to generate a
fragment ID wherever such a packet was fragmented, but currently we
always use ID=0!
v2: Add blank lines after declarations
Ben.
Ben Hutchings (2
UFO is now disabled on all drivers that work with virtio net headers,
but userland may try to send UFO/IPv6 packets anyway. Instead of
sending with ID=0, we should select identifiers on their behalf (as we
used to).
Signed-off-by: Ben Hutchings
Fixes: 916e4cf46d02 ("ipv6: reuse ip6_frag_id
respecting the tap feature flags, so
keep accepting UFO packets but log a warning the first time we do
this.
Signed-off-by: Ben Hutchings
Fixes: 916e4cf46d02 ("ipv6: reuse ip6_frag_id from ip6_ufo_append_data")
---
I hoped that turning off the UFO feature completely would work, but when
I used l
The virtio net protocol supports UFO but does not provide for passing a
fragment ID for fragmentation of IPv6 packets. We used to generate a
fragment ID wherever such a packet was fragmented, but currently we
always use ID=0!
Ben.
Ben Hutchings (2):
drivers/net: Disable UFO through virtio
On Wed, 2014-10-22 at 11:35 +0200, Hannes Frederic Sowa wrote:
> On Mi, 2014-10-22 at 00:44 +0100, Ben Hutchings wrote:
> > There are several ways that VMs can take advantage of UFO and get the
> > host to do fragmentation for them:
> >
> > drivers/net/macvtap.c
ID to put in
skb_shared_info::ip6_frag_id.
Ben.
--
Ben Hutchings
For every action, there is an equal and opposite criticism. - Harrison
signature.asc
Description: This is a digitally signed message part
___
Virtualization mailing list
Virtualization@list
ich
> requires the following order:
> - ACKNOWLEDGE
> - DRIVER
> - init vqs
> - DRIVER_OK
>
> Cc: sta...@vger.kernel.org
> Cc: Amit Shah
> Signed-off-by: Michael S. Tsirkin
[...]
What concrete problem does this fix, such that it should be applied to
stable branches?
Ben.
On Thu, 2014-01-16 at 11:07 -0800, Michael Dalton wrote:
> On Jan 16, 2014 at 10:57 AM, Ben Hutchings wrote:
> > Why write a loop when you can do:
> > i = queue - dev->_rx;
> Good point, the loop approach was done in get_netdev_queue_index --
> I agree your fix is
gt;_rx[i])
> + break;
Why write a loop when you can do:
i = queue - dev->_rx;
Ben.
> + BUG_ON(i >= dev->num_rx_queues);
> +
> + return i;
> +}
> +#endif
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; tha
currently no per-RX-queue attributes other than those defined by RPS.
By the way, CONFIG_RPS is equivalent to CONFIG_SMP so will likely be
enabled already in most places where virtio_net is used.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the mark
% 16))
> vhost_poll_queue(&vq->poll);
> - /* set len to mark this desc buffers done DMA */
> - vq->heads[ubuf->desc].len = success ?
> - VHOST_DMA_DONE_LEN : VHOST_DMA_FAILED_LEN;
> - vhost_net_ubuf_put(ubufs);
> }
>
> /*
The original patch header must be preserved and a
reference to the upstream commit inserted e.g.
'commit 0123456789abcdef0123456789abcdef012345678 upstream.'
(Attachments copied for reference.)
Ben.
--
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.
On Mon, 2013-06-17 at 11:05 +0930, Rusty Russell wrote:
> "Michael S. Tsirkin" writes:
> > On Wed, Jun 12, 2013 at 03:56:36PM +0100, Ben Hutchings wrote:
> >> On Mon, 2013-06-10 at 10:07 +0300, Michael S. Tsirkin wrote:
> >> > On Thu, Feb 07, 2013
On Mon, 2013-06-10 at 10:07 +0300, Michael S. Tsirkin wrote:
> On Thu, Feb 07, 2013 at 01:14:20PM -0500, David Miller wrote:
> > From: Ben Hutchings
> > Date: Thu, 7 Feb 2013 16:20:46 +
> >
> > > If the consensus is still that we must preserve packets exact
ion/15572/focus=15608>).
I don't much care what they look like as long as there's an implementation for
the ethtool side and they don't look too awful in older versions of ethtool.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; th
On Thu, 2013-03-21 at 18:28 +0200, Michael S. Tsirkin wrote:
> On Thu, Mar 21, 2013 at 04:23:48PM +0000, Ben Hutchings wrote:
> > On Thu, 2013-03-21 at 08:02 +0200, Michael S. Tsirkin wrote:
> > > On Sun, Mar 17, 2013 at 02:29:55PM -0400, David Miller wrote:
> > >
r redirect to git.
Rob Landley maintains it, but he's been having trouble updating it since
all the upload mechanisms were changed on kernel.org.
(My stable maintenance scripts still match the old address, anyway. Not
sure about Greg's.)
Ben.
--
ed to resolve http://bugs.launchpad.net/bugs/1154608 .
>
> commit 08e34eb14fe4cfd934b5c169a7682a969457c4ea
> Author: Laszlo Ersek
> Date: Sun Dec 11 01:48:59 2011 +
>
> xen-netfront: delay gARP until backend switches to Connected
Added to the queue, thanks.
Ben.
--
Ben Hutching
ed for inclusion in a -stable kernel release?
>
> I forgot to stick that. Do please include it in the stable tree.
[...]
I've queued this up for 3.2.
Ben.
--
Ben Hutchings
Experience is what causes a person to make new mistakes instead of old ones.
signature.asc
Descr
channels() while we are
> inside virtnet_select_queue(), so they reduce dev->real_num_tx_queues,
> causing virtnet_set_channels to do:
>
> while (unlikely(txq >= dev->real_num_tx_queues))
> txq -= dev->real_num_tx_queues;
>
> Otherwise, when is this
On Thu, 2012-12-06 at 23:01 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 06, 2012 at 08:53:59PM +0000, Ben Hutchings wrote:
> > On Thu, 2012-12-06 at 22:29 +0200, Michael S. Tsirkin wrote:
> > > On Thu, Dec 06, 2012 at 08:03:14PM +0000, Ben Hutchings wrote:
> > [...]
&g
On Thu, 2012-12-06 at 22:29 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 06, 2012 at 08:03:14PM +0000, Ben Hutchings wrote:
[...]
> > Since this doesn't seem to be intended to have *any* connection with the
> > existing core networking feature called RFS, perhaps you could
On Thu, 2012-12-06 at 10:13 +0200, Michael S. Tsirkin wrote:
> On Wed, Dec 05, 2012 at 08:39:26PM +0000, Ben Hutchings wrote:
> > On Mon, 2012-12-03 at 12:58 +0200, Michael S. Tsirkin wrote:
> > > Add RFS support to virtio network device.
> > > Add a new feature fla
atter. On the host side, presumably
you'll want vhost_net to do the equivalent of sock_rps_record_flow() -
only without a socket? But in any case, that requires an rxhash, so I
don't see how this is supposed to work.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking f
t; + struct ethtool_channels *channels)
> > > > +{
> > > > + struct virtnet_info *vi = netdev_priv(dev);
> > > > + u16 queue_pairs = channels->combined_count;
>
> by the way shouldn't this be combined_count / 2?
>
On Sun, 2012-11-18 at 11:13 +0200, Michael S. Tsirkin wrote:
> On Sat, Nov 17, 2012 at 12:35:29AM +0000, Ben Hutchings wrote:
> > On Tue, 2012-11-13 at 08:40 +0200, Michael S. Tsirkin wrote:
> > > On Mon, Nov 05, 2012 at 11:38:39AM +1030, Rusty Russell wrote:
> > &
ings and to be useful,
> rx_max_pending/tx_max_pending should be the total too.
So far as I know, all current implementations use the number of
descriptors per ring here. virtio_net should be consistent with this.
Ben.
> > For bonus points, check this assertion at probe time.
>
> Look
.get_drvinfo = virtnet_get_drvinfo,
> .get_link = ethtool_op_get_link,
> .get_ringparam = virtnet_get_ringparam,
> + .set_channels = virtnet_set_channels,
> + .get_channels = virtnet_get_channels,
> };
>
> static int __init init(void)
--
Ben Hutchi
e send some kind of response (transport or application
layer ACK). So I think that OOO is not that likely in practice, but I
don't have the evidence to back that up.
If the filter update latency is high enough that a response can overtake
the filter update, there may be more of a problem.
Ben.
ned_count = 0;
> +}
[...]
It looks like the queue-pairs should be treated as 'combined channels',
not separate RX and TX channels. Also you don't need to clear the other
members; you can assume that the ethtool core will zero-initialise
structures for 'get' op
+ * change when it's running */
[...]
Any device that has IFF_UNICAST_FLT can update the unicast MAC filter
while it's running; doesn't that go hand-in-hand with being able to
handle changes to the primary MAC address? Is the new flag really
necessary
On Thu, 2012-06-07 at 21:56 +0100, Ben Hutchings wrote:
> On Thu, 2012-06-07 at 13:39 -0700, Rick Jones wrote:
> > On 06/07/2012 01:24 PM, Ben Hutchings wrote:
> > > On Thu, 2012-06-07 at 13:05 -0700, David Miller wrote:
> > >> From: Ben Hutchings
> > >
On Thu, 2012-06-07 at 13:39 -0700, Rick Jones wrote:
> On 06/07/2012 01:24 PM, Ben Hutchings wrote:
> > On Thu, 2012-06-07 at 13:05 -0700, David Miller wrote:
> >> From: Ben Hutchings
> >> Date: Thu, 7 Jun 2012 18:15:06 +0100
> >>
> >>> I woul
On Thu, 2012-06-07 at 13:05 -0700, David Miller wrote:
> From: Ben Hutchings
> Date: Thu, 7 Jun 2012 18:15:06 +0100
>
> > I would really like to see some sort of convention for presenting
> > per-queue statistics through ethtool. At the moment we have a complete
> >
t names,
and *if* people can agree on a common format for per-queue statistic
names then I'll indent them *consistently*. Also, I would make such
stats optional, so you don't get hundreds of lines of crap by default.)
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not spe
dated from napi callback.
Seriously, though: don't do that; this is going to hurt performance for
minimal benefit.
Ben.
> > You'll have to add a lock in fast path. This sounds really a bad choice
> > to me.
>
> .ndo_get_stats64 is not data path though, is it
tio and might be better as it
> > gives us a way to get counters atomically.
>
> Which lock do you own in the RX path ?
>
> You'll have to add a lock in fast path. This sounds really a bad choice
> to me.
You have the NAPI 'lock', so when gathering stats you
/dev/btrfs-controlBtrfs control device
> 235 = /dev/autofs Autofs control device
> 236 = /dev/mapper/control Device-Mapper control device
> + 237 = /dev/vhost-netHost kernel accelerator for virtio net
[...]
238 != 237. It
On Fri, 2011-12-09 at 16:01 +1030, Rusty Russell wrote:
> On Wed, 7 Dec 2011 17:02:04 +0000, Ben Hutchings
> wrote:
> > Solarflare controllers (sfc driver) have 8192 perfect filters for
> > TCP/IPv4 and UDP/IPv4 which can be used for flow steering. (The filters
> > are o
hash to queue table were introduced in tap/macvtap
> and in guest, the guest driver would tell the desired queue of a flow
> through changing this table.
I don't think accelerated RFS can work well without the use of perfect
filtering or hash-based filtering with a very low rate of
On Tue, 2011-12-06 at 15:25 +0800, Jason Wang wrote:
> On 12/06/2011 04:42 AM, Ben Hutchings wrote:
[...]
> > This is not a proper implementation of ndo_rx_flow_steer. If you steer
> > a flow by changing the RSS table this can easily cause packet reordering
> > in other
On Tue, 2011-12-06 at 15:21 +0800, Jason Wang wrote:
> On 12/06/2011 04:09 AM, Ben Hutchings wrote:
> > On Mon, 2011-12-05 at 16:58 +0800, Jason Wang wrote:
> >> This patch adds a simple flow director to tun/tap device. It is just a
> >> page that contains the hash to q
ake use of the accelerate rfs which let the scheduler to
> + * balance the load, it make sense to choose the tx queue also based on
> + * theprocessor id?
> + */
> + while (unlikely(txq >= dev->real_num_tx_queues))
> + txq -= dev->real_num_tx_queu
Similarly, macvtap chould implement the ethtool {get,set}_rxfh_indir
operations.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are t
}RXFHINDIR instead.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
___
Virtualization mailing lis
On Fri, 2011-11-18 at 18:18 +0200, Sasha Levin wrote:
> On Fri, 2011-11-18 at 15:40 +0000, Ben Hutchings wrote:
> > On Fri, 2011-11-18 at 08:24 +0200, Sasha Levin wrote:
> > > On Fri, 2011-11-18 at 01:08 +0000, Ben Hutchings wrote:
> > > > On Fri, 2011-11-11 at 18
On Fri, 2011-11-18 at 08:24 +0200, Sasha Levin wrote:
> On Fri, 2011-11-18 at 01:08 +0000, Ben Hutchings wrote:
> > On Fri, 2011-11-11 at 18:34 +0530, Krishna Kumar wrote:
> > > Changes for multiqueue virtio_net driver.
> > [...]
> > > @@ -677,25 +730,35 @@ static
ues */
> + for (i = 1; i < vi->num_queue_pairs * 2; i += 2) {
> + callbacks[i] = skb_xmit_done;
> + names[i] = kasprintf(GFP_KERNEL, "output.%d", i / 2);
> + if (!names[i])
> + goto err;
>
On Mon, 2011-11-14 at 16:06 -0800, Rick Jones wrote:
> On 11/14/2011 02:30 PM, Ben Hutchings wrote:
> > On Mon, 2011-11-14 at 13:52 -0800, Rick Jones wrote:
> >> From: Rick Jones
> >>
> >> Add a new .bus_name to virtio_config_ops then modify virtio_net to
&
Please use the existing 'not implemented' value, which is the empty
string. If you think ethtool should print some helpful message instead
of an empty string, please submit a patch for ethtool.
Ben.
--
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that'
68 matches
Mail list logo