* [PATCH 1/3] Revert "virtio_net: rx remove premapped failover code"
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
@ 2024-09-06 12:31 ` Xuan Zhuo
2024-09-06 12:31 ` [PATCH 2/3] Revert "virtio_net: big mode skip the unmap check" Xuan Zhuo
` (5 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Xuan Zhuo @ 2024-09-06 12:31 UTC (permalink / raw)
To: virtualization
Cc: Michael S. Tsirkin, Jason Wang, Xuan Zhuo, Eugenio Pérez,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, Darren Kenny, Si-Wei Liu
This reverts commit defd28aa5acb0fd7c15adc6bc40a8ac277d04dea.
Recover the code to disable premapped mode.
Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
---
drivers/net/virtio_net.c | 85 +++++++++++++++++++++++-----------------
1 file changed, 50 insertions(+), 35 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index f1f83d8ddbd4..36a7781979b7 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -356,6 +356,9 @@ struct receive_queue {
struct xdp_rxq_info xsk_rxq_info;
struct xdp_buff **xsk_buffs;
+
+ /* Do dma by self */
+ bool do_dma;
};
/* This structure can contain rss message with maximum settings for indirection table and keysize
@@ -887,7 +890,7 @@ static void *virtnet_rq_get_buf(struct receive_queue *rq, u32 *len, void **ctx)
void *buf;
buf = virtqueue_get_buf_ctx(rq->vq, len, ctx);
- if (buf)
+ if (buf && rq->do_dma)
virtnet_rq_unmap(rq, buf, *len);
return buf;
@@ -900,6 +903,11 @@ static void virtnet_rq_init_one_sg(struct receive_queue *rq, void *buf, u32 len)
u32 offset;
void *head;
+ if (!rq->do_dma) {
+ sg_init_one(rq->sg, buf, len);
+ return;
+ }
+
head = page_address(rq->alloc_frag.page);
offset = buf - head;
@@ -925,42 +933,44 @@ static void *virtnet_rq_alloc(struct receive_queue *rq, u32 size, gfp_t gfp)
head = page_address(alloc_frag->page);
- dma = head;
+ if (rq->do_dma) {
+ dma = head;
+
+ /* new pages */
+ if (!alloc_frag->offset) {
+ if (rq->last_dma) {
+ /* Now, the new page is allocated, the last dma
+ * will not be used. So the dma can be unmapped
+ * if the ref is 0.
+ */
+ virtnet_rq_unmap(rq, rq->last_dma, 0);
+ rq->last_dma = NULL;
+ }
- /* new pages */
- if (!alloc_frag->offset) {
- if (rq->last_dma) {
- /* Now, the new page is allocated, the last dma
- * will not be used. So the dma can be unmapped
- * if the ref is 0.
- */
- virtnet_rq_unmap(rq, rq->last_dma, 0);
- rq->last_dma = NULL;
- }
+ dma->len = alloc_frag->size - sizeof(*dma);
- dma->len = alloc_frag->size - sizeof(*dma);
+ addr = virtqueue_dma_map_single_attrs(rq->vq, dma + 1,
+ dma->len, DMA_FROM_DEVICE, 0);
+ if (virtqueue_dma_mapping_error(rq->vq, addr))
+ return NULL;
- addr = virtqueue_dma_map_single_attrs(rq->vq, dma + 1,
- dma->len, DMA_FROM_DEVICE, 0);
- if (virtqueue_dma_mapping_error(rq->vq, addr))
- return NULL;
+ dma->addr = addr;
+ dma->need_sync = virtqueue_dma_need_sync(rq->vq, addr);
- dma->addr = addr;
- dma->need_sync = virtqueue_dma_need_sync(rq->vq, addr);
+ /* Add a reference to dma to prevent the entire dma from
+ * being released during error handling. This reference
+ * will be freed after the pages are no longer used.
+ */
+ get_page(alloc_frag->page);
+ dma->ref = 1;
+ alloc_frag->offset = sizeof(*dma);
- /* Add a reference to dma to prevent the entire dma from
- * being released during error handling. This reference
- * will be freed after the pages are no longer used.
- */
- get_page(alloc_frag->page);
- dma->ref = 1;
- alloc_frag->offset = sizeof(*dma);
+ rq->last_dma = dma;
+ }
- rq->last_dma = dma;
+ ++dma->ref;
}
- ++dma->ref;
-
buf = head + alloc_frag->offset;
get_page(alloc_frag->page);
@@ -977,9 +987,12 @@ static void virtnet_rq_set_premapped(struct virtnet_info *vi)
if (!vi->mergeable_rx_bufs && vi->big_packets)
return;
- for (i = 0; i < vi->max_queue_pairs; i++)
- /* error should never happen */
- BUG_ON(virtqueue_set_dma_premapped(vi->rq[i].vq));
+ for (i = 0; i < vi->max_queue_pairs; i++) {
+ if (virtqueue_set_dma_premapped(vi->rq[i].vq))
+ continue;
+
+ vi->rq[i].do_dma = true;
+ }
}
static void virtnet_rq_unmap_free_buf(struct virtqueue *vq, void *buf)
@@ -2432,7 +2445,8 @@ static int add_recvbuf_small(struct virtnet_info *vi, struct receive_queue *rq,
err = virtqueue_add_inbuf_ctx(rq->vq, rq->sg, 1, buf, ctx, gfp);
if (err < 0) {
- virtnet_rq_unmap(rq, buf, 0);
+ if (rq->do_dma)
+ virtnet_rq_unmap(rq, buf, 0);
put_page(virt_to_head_page(buf));
}
@@ -2546,7 +2560,8 @@ static int add_recvbuf_mergeable(struct virtnet_info *vi,
ctx = mergeable_len_to_ctx(len + room, headroom);
err = virtqueue_add_inbuf_ctx(rq->vq, rq->sg, 1, buf, ctx, gfp);
if (err < 0) {
- virtnet_rq_unmap(rq, buf, 0);
+ if (rq->do_dma)
+ virtnet_rq_unmap(rq, buf, 0);
put_page(virt_to_head_page(buf));
}
@@ -5913,7 +5928,7 @@ static void free_receive_page_frags(struct virtnet_info *vi)
int i;
for (i = 0; i < vi->max_queue_pairs; i++)
if (vi->rq[i].alloc_frag.page) {
- if (vi->rq[i].last_dma)
+ if (vi->rq[i].do_dma && vi->rq[i].last_dma)
virtnet_rq_unmap(&vi->rq[i], vi->rq[i].last_dma, 0);
put_page(vi->rq[i].alloc_frag.page);
}
--
2.32.0.3.g01195cf9f
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PATCH 2/3] Revert "virtio_net: big mode skip the unmap check"
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
2024-09-06 12:31 ` [PATCH 1/3] Revert "virtio_net: rx remove premapped failover code" Xuan Zhuo
@ 2024-09-06 12:31 ` Xuan Zhuo
2024-09-06 12:31 ` [PATCH 3/3] virtio_net: disable premapped mode by default Xuan Zhuo
` (4 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Xuan Zhuo @ 2024-09-06 12:31 UTC (permalink / raw)
To: virtualization
Cc: Michael S. Tsirkin, Jason Wang, Xuan Zhuo, Eugenio Pérez,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, Darren Kenny, Si-Wei Liu
This reverts commit a377ae542d8d0a20a3173da3bbba72e045bea7a9.
Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
---
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 36a7781979b7..b68e64e8c7b6 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1008,7 +1008,7 @@ static void virtnet_rq_unmap_free_buf(struct virtqueue *vq, void *buf)
return;
}
- if (!vi->big_packets || vi->mergeable_rx_bufs)
+ if (rq->do_dma)
virtnet_rq_unmap(rq, buf, 0);
virtnet_rq_free_buf(vi, rq, buf);
@@ -2718,7 +2718,7 @@ static int virtnet_receive_packets(struct virtnet_info *vi,
}
} else {
while (packets < budget &&
- (buf = virtqueue_get_buf(rq->vq, &len)) != NULL) {
+ (buf = virtnet_rq_get_buf(rq, &len, NULL)) != NULL) {
receive_buf(vi, rq, buf, len, NULL, xdp_xmit, stats);
packets++;
}
--
2.32.0.3.g01195cf9f
^ permalink raw reply related [flat|nested] 15+ messages in thread* [PATCH 3/3] virtio_net: disable premapped mode by default
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
2024-09-06 12:31 ` [PATCH 1/3] Revert "virtio_net: rx remove premapped failover code" Xuan Zhuo
2024-09-06 12:31 ` [PATCH 2/3] Revert "virtio_net: big mode skip the unmap check" Xuan Zhuo
@ 2024-09-06 12:31 ` Xuan Zhuo
2024-09-08 19:38 ` [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Michael S. Tsirkin
` (3 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Xuan Zhuo @ 2024-09-06 12:31 UTC (permalink / raw)
To: virtualization
Cc: Michael S. Tsirkin, Jason Wang, Xuan Zhuo, Eugenio Pérez,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, Darren Kenny, Si-Wei Liu
Now, the premapped mode encounters some problem.
http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
So we disable the premapped mode by default.
We can re-enable it in the future.
Fixes: f9dac92ba908 ("virtio_ring: enable premapped mode whatever use_dma_api")
Reported-by: "Si-Wei Liu" <si-wei.liu@oracle.com>
Closes: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
---
drivers/net/virtio_net.c | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index b68e64e8c7b6..284db2912808 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -979,22 +979,6 @@ static void *virtnet_rq_alloc(struct receive_queue *rq, u32 size, gfp_t gfp)
return buf;
}
-static void virtnet_rq_set_premapped(struct virtnet_info *vi)
-{
- int i;
-
- /* disable for big mode */
- if (!vi->mergeable_rx_bufs && vi->big_packets)
- return;
-
- for (i = 0; i < vi->max_queue_pairs; i++) {
- if (virtqueue_set_dma_premapped(vi->rq[i].vq))
- continue;
-
- vi->rq[i].do_dma = true;
- }
-}
-
static void virtnet_rq_unmap_free_buf(struct virtqueue *vq, void *buf)
{
struct virtnet_info *vi = vq->vdev->priv;
@@ -6126,8 +6110,6 @@ static int init_vqs(struct virtnet_info *vi)
if (ret)
goto err_free;
- virtnet_rq_set_premapped(vi);
-
cpus_read_lock();
virtnet_set_affinity(vi);
cpus_read_unlock();
--
2.32.0.3.g01195cf9f
^ permalink raw reply related [flat|nested] 15+ messages in thread* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
` (2 preceding siblings ...)
2024-09-06 12:31 ` [PATCH 3/3] virtio_net: disable premapped mode by default Xuan Zhuo
@ 2024-09-08 19:38 ` Michael S. Tsirkin
2024-09-10 12:12 ` Michael S. Tsirkin
` (2 subsequent siblings)
6 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-09-08 19:38 UTC (permalink / raw)
To: Xuan Zhuo
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, Darren Kenny,
Si-Wei Liu
On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
>
> I still think that the patch can fix the problem, I hope Darren can re-test it
> or give me more info.
>
> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>
> If that can not work or Darren can not reply in time, Michael you can try this
> patch set.
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Takero Funaki <flintglass@gmail.com>
> Thanks.
>
> Xuan Zhuo (3):
> Revert "virtio_net: rx remove premapped failover code"
> Revert "virtio_net: big mode skip the unmap check"
> virtio_net: disable premapped mode by default
>
> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> 1 file changed, 46 insertions(+), 49 deletions(-)
>
> --
> 2.32.0.3.g01195cf9f
>
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
` (3 preceding siblings ...)
2024-09-08 19:38 ` [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Michael S. Tsirkin
@ 2024-09-10 12:12 ` Michael S. Tsirkin
2024-09-10 16:03 ` Jakub Kicinski
2024-09-11 14:18 ` Darren Kenny
2024-09-10 16:50 ` patchwork-bot+netdevbpf
2024-10-09 9:29 ` Michael S. Tsirkin
6 siblings, 2 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-09-10 12:12 UTC (permalink / raw)
To: Xuan Zhuo
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, Darren Kenny,
Si-Wei Liu
On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
>
> I still think that the patch can fix the problem, I hope Darren can re-test it
> or give me more info.
>
> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>
> If that can not work or Darren can not reply in time, Michael you can try this
> patch set.
Just making sure netdev maintainers see this, this patch is for net.
> Thanks.
>
> Xuan Zhuo (3):
> Revert "virtio_net: rx remove premapped failover code"
> Revert "virtio_net: big mode skip the unmap check"
> virtio_net: disable premapped mode by default
>
> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> 1 file changed, 46 insertions(+), 49 deletions(-)
>
> --
> 2.32.0.3.g01195cf9f
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-10 12:12 ` Michael S. Tsirkin
@ 2024-09-10 16:03 ` Jakub Kicinski
2024-09-11 14:18 ` Darren Kenny
1 sibling, 0 replies; 15+ messages in thread
From: Jakub Kicinski @ 2024-09-10 16:03 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: Xuan Zhuo, virtualization, Jason Wang, Eugenio Pérez,
David S. Miller, Eric Dumazet, Paolo Abeni, netdev, Darren Kenny,
Si-Wei Liu
On Tue, 10 Sep 2024 08:12:06 -0400 Michael S. Tsirkin wrote:
> Just making sure netdev maintainers see this, this patch is for net.
Got it, thanks! I'll be applying it shortly.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-10 12:12 ` Michael S. Tsirkin
2024-09-10 16:03 ` Jakub Kicinski
@ 2024-09-11 14:18 ` Darren Kenny
2024-09-11 14:22 ` Michael S. Tsirkin
1 sibling, 1 reply; 15+ messages in thread
From: Darren Kenny @ 2024-09-11 14:18 UTC (permalink / raw)
To: Michael S. Tsirkin, Xuan Zhuo
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, Si-Wei Liu
For the record, I got a chance to test these changes and confirmed that
they resolved the issue for me when applied on 6.11-rc7.
Tested-by: Darren Kenny <darren.kenny@oracle.com>
Thanks,
Darren.
PS - I'll try get to looking at the other potential fix when I have time.
On Tuesday, 2024-09-10 at 08:12:06 -04, Michael S. Tsirkin wrote:
> On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
>> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
>>
>> I still think that the patch can fix the problem, I hope Darren can re-test it
>> or give me more info.
>>
>> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>>
>> If that can not work or Darren can not reply in time, Michael you can try this
>> patch set.
>
> Just making sure netdev maintainers see this, this patch is for net.
>
>> Thanks.
>>
>> Xuan Zhuo (3):
>> Revert "virtio_net: rx remove premapped failover code"
>> Revert "virtio_net: big mode skip the unmap check"
>> virtio_net: disable premapped mode by default
>>
>> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
>> 1 file changed, 46 insertions(+), 49 deletions(-)
>>
>> --
>> 2.32.0.3.g01195cf9f
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-11 14:18 ` Darren Kenny
@ 2024-09-11 14:22 ` Michael S. Tsirkin
2024-09-11 19:30 ` Si-Wei Liu
0 siblings, 1 reply; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-09-11 14:22 UTC (permalink / raw)
To: Darren Kenny
Cc: Xuan Zhuo, virtualization, Jason Wang, Eugenio Pérez,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev, Si-Wei Liu
Thanks a lot!
Could you retest Xuan Zhuo original patch just to make sure it does
not fix the issue?
On Wed, Sep 11, 2024 at 03:18:55PM +0100, Darren Kenny wrote:
> For the record, I got a chance to test these changes and confirmed that
> they resolved the issue for me when applied on 6.11-rc7.
>
> Tested-by: Darren Kenny <darren.kenny@oracle.com>
>
> Thanks,
>
> Darren.
>
> PS - I'll try get to looking at the other potential fix when I have time.
>
> On Tuesday, 2024-09-10 at 08:12:06 -04, Michael S. Tsirkin wrote:
> > On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> >> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
> >>
> >> I still think that the patch can fix the problem, I hope Darren can re-test it
> >> or give me more info.
> >>
> >> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
> >>
> >> If that can not work or Darren can not reply in time, Michael you can try this
> >> patch set.
> >
> > Just making sure netdev maintainers see this, this patch is for net.
> >
> >> Thanks.
> >>
> >> Xuan Zhuo (3):
> >> Revert "virtio_net: rx remove premapped failover code"
> >> Revert "virtio_net: big mode skip the unmap check"
> >> virtio_net: disable premapped mode by default
> >>
> >> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> >> 1 file changed, 46 insertions(+), 49 deletions(-)
> >>
> >> --
> >> 2.32.0.3.g01195cf9f
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-11 14:22 ` Michael S. Tsirkin
@ 2024-09-11 19:30 ` Si-Wei Liu
2024-09-12 1:49 ` Xuan Zhuo
0 siblings, 1 reply; 15+ messages in thread
From: Si-Wei Liu @ 2024-09-11 19:30 UTC (permalink / raw)
To: Michael S. Tsirkin, Darren Kenny
Cc: Xuan Zhuo, virtualization, Jason Wang, Eugenio Pérez,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
On 9/11/2024 7:22 AM, Michael S. Tsirkin wrote:
> Thanks a lot!
> Could you retest Xuan Zhuo original patch
Which one? I thought Darren already did so?
-Siwei
> just to make sure it does
> not fix the issue?
>
> On Wed, Sep 11, 2024 at 03:18:55PM +0100, Darren Kenny wrote:
>> For the record, I got a chance to test these changes and confirmed that
>> they resolved the issue for me when applied on 6.11-rc7.
>>
>> Tested-by: Darren Kenny <darren.kenny@oracle.com>
>>
>> Thanks,
>>
>> Darren.
>>
>> PS - I'll try get to looking at the other potential fix when I have time.
>>
>> On Tuesday, 2024-09-10 at 08:12:06 -04, Michael S. Tsirkin wrote:
>>> On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
>>>> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
>>>>
>>>> I still think that the patch can fix the problem, I hope Darren can re-test it
>>>> or give me more info.
>>>>
>>>> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>>>>
>>>> If that can not work or Darren can not reply in time, Michael you can try this
>>>> patch set.
>>> Just making sure netdev maintainers see this, this patch is for net.
>>>
>>>> Thanks.
>>>>
>>>> Xuan Zhuo (3):
>>>> Revert "virtio_net: rx remove premapped failover code"
>>>> Revert "virtio_net: big mode skip the unmap check"
>>>> virtio_net: disable premapped mode by default
>>>>
>>>> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
>>>> 1 file changed, 46 insertions(+), 49 deletions(-)
>>>>
>>>> --
>>>> 2.32.0.3.g01195cf9f
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-11 19:30 ` Si-Wei Liu
@ 2024-09-12 1:49 ` Xuan Zhuo
0 siblings, 0 replies; 15+ messages in thread
From: Xuan Zhuo @ 2024-09-12 1:49 UTC (permalink / raw)
To: Si-Wei Liu
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev,
Michael S. Tsirkin, Darren Kenny
On Wed, 11 Sep 2024 12:30:49 -0700, "Si-Wei Liu" <si-wei.liu@oracle.com> wrote:
>
>
> On 9/11/2024 7:22 AM, Michael S. Tsirkin wrote:
> > Thanks a lot!
> > Could you retest Xuan Zhuo original patch
> Which one? I thought Darren already did so?
This one[1].
Now, we revert these patches to disable premapped mode by default.
But the bug still exists, if we enable the premapped mode manually,
the bug works again.
[1] was attempted to correct the bug. However, Darren reported that it did not
work. On the other hand, Jason, Takero, and me tested it and found that
it worked for we.
So I ask Darren to retest [1] if he has the time.
[1].http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
Thanks.
>
> -Siwei
> > just to make sure it does
> > not fix the issue?
> >
> > On Wed, Sep 11, 2024 at 03:18:55PM +0100, Darren Kenny wrote:
> >> For the record, I got a chance to test these changes and confirmed that
> >> they resolved the issue for me when applied on 6.11-rc7.
> >>
> >> Tested-by: Darren Kenny <darren.kenny@oracle.com>
> >>
> >> Thanks,
> >>
> >> Darren.
> >>
> >> PS - I'll try get to looking at the other potential fix when I have time.
> >>
> >> On Tuesday, 2024-09-10 at 08:12:06 -04, Michael S. Tsirkin wrote:
> >>> On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> >>>> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
> >>>>
> >>>> I still think that the patch can fix the problem, I hope Darren can re-test it
> >>>> or give me more info.
> >>>>
> >>>> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
> >>>>
> >>>> If that can not work or Darren can not reply in time, Michael you can try this
> >>>> patch set.
> >>> Just making sure netdev maintainers see this, this patch is for net.
> >>>
> >>>> Thanks.
> >>>>
> >>>> Xuan Zhuo (3):
> >>>> Revert "virtio_net: rx remove premapped failover code"
> >>>> Revert "virtio_net: big mode skip the unmap check"
> >>>> virtio_net: disable premapped mode by default
> >>>>
> >>>> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> >>>> 1 file changed, 46 insertions(+), 49 deletions(-)
> >>>>
> >>>> --
> >>>> 2.32.0.3.g01195cf9f
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
` (4 preceding siblings ...)
2024-09-10 12:12 ` Michael S. Tsirkin
@ 2024-09-10 16:50 ` patchwork-bot+netdevbpf
2024-10-09 9:29 ` Michael S. Tsirkin
6 siblings, 0 replies; 15+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-09-10 16:50 UTC (permalink / raw)
To: Xuan Zhuo
Cc: virtualization, mst, jasowang, eperezma, davem, edumazet, kuba,
pabeni, netdev, darren.kenny, si-wei.liu
Hello:
This series was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 6 Sep 2024 20:31:34 +0800 you wrote:
> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
>
> I still think that the patch can fix the problem, I hope Darren can re-test it
> or give me more info.
>
> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>
> [...]
Here is the summary with links:
- [1/3] Revert "virtio_net: rx remove premapped failover code"
https://git.kernel.org/netdev/net/c/dc4547fbba87
- [2/3] Revert "virtio_net: big mode skip the unmap check"
https://git.kernel.org/netdev/net/c/38eef112a8e5
- [3/3] virtio_net: disable premapped mode by default
https://git.kernel.org/netdev/net/c/111fc9f517cb
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-09-06 12:31 [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default" Xuan Zhuo
` (5 preceding siblings ...)
2024-09-10 16:50 ` patchwork-bot+netdevbpf
@ 2024-10-09 9:29 ` Michael S. Tsirkin
2024-10-09 10:00 ` Xuan Zhuo
6 siblings, 1 reply; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-10-09 9:29 UTC (permalink / raw)
To: Xuan Zhuo
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, Darren Kenny,
Si-Wei Liu
On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
>
> I still think that the patch can fix the problem, I hope Darren can re-test it
> or give me more info.
>
> http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>
> If that can not work or Darren can not reply in time, Michael you can try this
> patch set.
>
> Thanks.
It's been a month - were you going to post patches fixing bugs in premap
and then re-enabling this?
Thanks!
> Xuan Zhuo (3):
> Revert "virtio_net: rx remove premapped failover code"
> Revert "virtio_net: big mode skip the unmap check"
> virtio_net: disable premapped mode by default
>
> drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> 1 file changed, 46 insertions(+), 49 deletions(-)
>
> --
> 2.32.0.3.g01195cf9f
>
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-10-09 9:29 ` Michael S. Tsirkin
@ 2024-10-09 10:00 ` Xuan Zhuo
2024-10-09 10:23 ` Michael S. Tsirkin
0 siblings, 1 reply; 15+ messages in thread
From: Xuan Zhuo @ 2024-10-09 10:00 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, Darren Kenny,
Si-Wei Liu
On Wed, 9 Oct 2024 05:29:35 -0400, "Michael S. Tsirkin" <mst@redhat.com> wrote:
> On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> > Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
> >
> > I still think that the patch can fix the problem, I hope Darren can re-test it
> > or give me more info.
> >
> > http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
> >
> > If that can not work or Darren can not reply in time, Michael you can try this
> > patch set.
> >
> > Thanks.
>
> It's been a month - were you going to post patches fixing bugs in premap
> and then re-enabling this?
[1] was tried to fix the bug in premapped mode.
We all wait the re-test from Darren.
But Jason and Takero have tested it.
If you do not want to wait Darren, we can discuss [1] or add it to your next
branch for more test.
Thanks.
[1]: http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>
> Thanks!
>
>
> > Xuan Zhuo (3):
> > Revert "virtio_net: rx remove premapped failover code"
> > Revert "virtio_net: big mode skip the unmap check"
> > virtio_net: disable premapped mode by default
> >
> > drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> > 1 file changed, 46 insertions(+), 49 deletions(-)
> >
> > --
> > 2.32.0.3.g01195cf9f
> >
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 0/3] Revert "virtio_net: rx enable premapped mode by default"
2024-10-09 10:00 ` Xuan Zhuo
@ 2024-10-09 10:23 ` Michael S. Tsirkin
0 siblings, 0 replies; 15+ messages in thread
From: Michael S. Tsirkin @ 2024-10-09 10:23 UTC (permalink / raw)
To: Xuan Zhuo
Cc: virtualization, Jason Wang, Eugenio Pérez, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, netdev, Darren Kenny,
Si-Wei Liu
On Wed, Oct 09, 2024 at 06:00:47PM +0800, Xuan Zhuo wrote:
> On Wed, 9 Oct 2024 05:29:35 -0400, "Michael S. Tsirkin" <mst@redhat.com> wrote:
> > On Fri, Sep 06, 2024 at 08:31:34PM +0800, Xuan Zhuo wrote:
> > > Regression: http://lore.kernel.org/all/8b20cc28-45a9-4643-8e87-ba164a540c0a@oracle.com
> > >
> > > I still think that the patch can fix the problem, I hope Darren can re-test it
> > > or give me more info.
> > >
> > > http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
> > >
> > > If that can not work or Darren can not reply in time, Michael you can try this
> > > patch set.
> > >
> > > Thanks.
> >
> > It's been a month - were you going to post patches fixing bugs in premap
> > and then re-enabling this?
>
> [1] was tried to fix the bug in premapped mode.
>
> We all wait the re-test from Darren.
>
> But Jason and Takero have tested it.
>
> If you do not want to wait Darren, we can discuss [1] or add it to your next
> branch for more test.
>
> Thanks.
>
> [1]: http://lore.kernel.org/all/20240820071913.68004-1-xuanzhuo@linux.alibaba.com
>
>
> >
> > Thanks!
> >
> >
> > > Xuan Zhuo (3):
> > > Revert "virtio_net: rx remove premapped failover code"
> > > Revert "virtio_net: big mode skip the unmap check"
> > > virtio_net: disable premapped mode by default
> > >
> > > drivers/net/virtio_net.c | 95 +++++++++++++++++++---------------------
> > > 1 file changed, 46 insertions(+), 49 deletions(-)
> > >
> > > --
> > > 2.32.0.3.g01195cf9f
> > >
> >
I suggest you post a patchset you want me to apply on top of master.
--
MST
^ permalink raw reply [flat|nested] 15+ messages in thread