* [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL")
@ 2026-04-26 23:20 Matthew Schwartz
2026-04-27 18:09 ` Gal Pressman
0 siblings, 1 reply; 6+ messages in thread
From: Matthew Schwartz @ 2026-04-26 23:20 UTC (permalink / raw)
To: Gal Pressman, Dragos Tatulea, Jakub Kicinski
Cc: regressions, netdev, linux-kernel@vger.kernel.org
Hello,
When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state.
After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500.
Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there.
Please let me know if there's any additional info I can provide.
Thanks,
Matt
#regzbot introduced: 5b4015ad833c
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") 2026-04-26 23:20 [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") Matthew Schwartz @ 2026-04-27 18:09 ` Gal Pressman 2026-04-27 18:26 ` Matthew Schwartz 0 siblings, 1 reply; 6+ messages in thread From: Gal Pressman @ 2026-04-27 18:09 UTC (permalink / raw) To: Matthew Schwartz, Dragos Tatulea, Jakub Kicinski Cc: regressions, netdev, linux-kernel@vger.kernel.org Hello Matthew, On 27/04/2026 2:20, Matthew Schwartz wrote: > Hello, > > When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state. > > After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500. > > Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there. > > Please let me know if there's any additional info I can provide. > > Thanks, > Matt > > #regzbot introduced: 5b4015ad833c Thank you for the report and the bisect! I will take a look and try to figure out what's wrong (though I don't have real hardware to test on). Is the userspace app open source? can I see its code and try to run it myself? I will be OOO for the rest of the week, hope to have some meaningful reply by the end of next week. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") 2026-04-27 18:09 ` Gal Pressman @ 2026-04-27 18:26 ` Matthew Schwartz 2026-05-05 15:05 ` Gal Pressman 0 siblings, 1 reply; 6+ messages in thread From: Matthew Schwartz @ 2026-04-27 18:26 UTC (permalink / raw) To: Gal Pressman, Dragos Tatulea, Jakub Kicinski Cc: regressions, netdev, linux-kernel@vger.kernel.org On 4/27/26 11:09 AM, Gal Pressman wrote: > Hello Matthew, > > On 27/04/2026 2:20, Matthew Schwartz wrote: >> Hello, >> >> When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state. >> >> After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500. >> >> Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there. >> >> Please let me know if there's any additional info I can provide. >> >> Thanks, >> Matt >> >> #regzbot introduced: 5b4015ad833c > > Thank you for the report and the bisect! > > I will take a look and try to figure out what's wrong (though I don't > have real hardware to test on). > Is the userspace app open source? can I see its code and try to run it > myself? Thanks for the reply. The code for Sunshine is available here: https://github.com/LizardByte/Sunshine and the code for Moonlight is here: https://github.com/moonlight-stream/moonlight-qt. I have been using the Arch Linux Sunshine package which I installed by following the Linux instructions here: https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html, but there are also binaries for other distros or it's buildable from source. For Moonlight, I have been using the Flatpak distributed on Flathub because the client device runs an atomic rootfs, but you can also use any other device that Moonlight supports. > > I will be OOO for the rest of the week, hope to have some meaningful > reply by the end of next week. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") 2026-04-27 18:26 ` Matthew Schwartz @ 2026-05-05 15:05 ` Gal Pressman 2026-05-06 7:49 ` Matthew Schwartz 0 siblings, 1 reply; 6+ messages in thread From: Gal Pressman @ 2026-05-05 15:05 UTC (permalink / raw) To: Matthew Schwartz, Dragos Tatulea, Jakub Kicinski Cc: regressions, netdev, linux-kernel@vger.kernel.org On 27/04/2026 21:26, Matthew Schwartz wrote: > On 4/27/26 11:09 AM, Gal Pressman wrote: >> Hello Matthew, >> >> On 27/04/2026 2:20, Matthew Schwartz wrote: >>> Hello, >>> >>> When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state. >>> >>> After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500. >>> >>> Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there. >>> >>> Please let me know if there's any additional info I can provide. >>> >>> Thanks, >>> Matt >>> >>> #regzbot introduced: 5b4015ad833c >> >> Thank you for the report and the bisect! >> >> I will take a look and try to figure out what's wrong (though I don't >> have real hardware to test on). >> Is the userspace app open source? can I see its code and try to run it >> myself? > > Thanks for the reply. The code for Sunshine is available here: https://github.com/LizardByte/Sunshine and the code for Moonlight is here: https://github.com/moonlight-stream/moonlight-qt. > > I have been using the Arch Linux Sunshine package which I installed by following the Linux instructions here: https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html, but there are also binaries for other distros or it's buildable from source. For Moonlight, I have been using the Flatpak distributed on Flathub because the client device runs an atomic rootfs, but you can also use any other device that Moonlight supports. > >> >> I will be OOO for the rest of the week, hope to have some meaningful >> reply by the end of next week. > I think I see the issue, do you mind testing the following diff? index a0813d425b71..5bd1706b11b0 100644 --- a/net/ipv4/udp_offload.c +++ b/net/ipv4/udp_offload.c @@ -599,10 +599,22 @@ struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, uh = udp_hdr(seg); } - /* last packet can be partial gso_size, account for that in checksum */ - newlen = htons(skb_tail_pointer(seg) - skb_transport_header(seg) + - seg->data_len); - check = csum16_add(csum16_sub(uh->check, uh->len), newlen); + if (skb_is_gso(seg)) { + newlen = msslen; + } else { + /* last packet can be partial gso_size, account for that in + * checksum. + */ + newlen = htons(skb_tail_pointer(seg) - + skb_transport_header(seg) + seg->data_len); + check = csum16_add(csum16_sub(uh->check, uh->len), newlen); + } uh->len = newlen; uh->check = check; ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") 2026-05-05 15:05 ` Gal Pressman @ 2026-05-06 7:49 ` Matthew Schwartz 2026-05-06 14:20 ` Gal Pressman 0 siblings, 1 reply; 6+ messages in thread From: Matthew Schwartz @ 2026-05-06 7:49 UTC (permalink / raw) To: Gal Pressman Cc: Dragos Tatulea, Jakub Kicinski, regressions, netdev, linux-kernel > On May 5, 2026, at 8:05 AM, Gal Pressman <gal@nvidia.com> wrote: > > On 27/04/2026 21:26, Matthew Schwartz wrote: >>> On 4/27/26 11:09 AM, Gal Pressman wrote: >>> Hello Matthew, >>> >>> On 27/04/2026 2:20, Matthew Schwartz wrote: >>>> Hello, >>>> >>>> When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state. >>>> >>>> After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500. >>>> >>>> Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there. >>>> >>>> Please let me know if there's any additional info I can provide. >>>> >>>> Thanks, >>>> Matt >>>> >>>> #regzbot introduced: 5b4015ad833c >>> >>> Thank you for the report and the bisect! >>> >>> I will take a look and try to figure out what's wrong (though I don't >>> have real hardware to test on). >>> Is the userspace app open source? can I see its code and try to run it >>> myself? >> >> Thanks for the reply. The code for Sunshine is available here: https://github.com/LizardByte/Sunshine and the code for Moonlight is here: https://github.com/moonlight-stream/moonlight-qt. >> >> I have been using the Arch Linux Sunshine package which I installed by following the Linux instructions here: https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html, but there are also binaries for other distros or it's buildable from source. For Moonlight, I have been using the Flatpak distributed on Flathub because the client device runs an atomic rootfs, but you can also use any other device that Moonlight supports. >> >>> >>> I will be OOO for the rest of the week, hope to have some meaningful >>> reply by the end of next week. >> > > I think I see the issue, do you mind testing the following diff? Sorry for the delay. I applied this diff and I’m able to stream from my host to clients again without any issues. If you send this version upstream, feel free to add my Tested-by to it. Thanks, Matt > > index a0813d425b71..5bd1706b11b0 100644 > --- a/net/ipv4/udp_offload.c > +++ b/net/ipv4/udp_offload.c > @@ -599,10 +599,22 @@ struct sk_buff *__udp_gso_segment(struct sk_buff *gso_skb, > uh = udp_hdr(seg); > } > > - /* last packet can be partial gso_size, account for that in checksum */ > - newlen = htons(skb_tail_pointer(seg) - skb_transport_header(seg) + > - seg->data_len); > - check = csum16_add(csum16_sub(uh->check, uh->len), newlen); > + if (skb_is_gso(seg)) { > + newlen = msslen; > + } else { > + /* last packet can be partial gso_size, account for that in > + * checksum. > + */ > + newlen = htons(skb_tail_pointer(seg) - > + skb_transport_header(seg) + seg->data_len); > + check = csum16_add(csum16_sub(uh->check, uh->len), newlen); > + } > > uh->len = newlen; > uh->check = check; ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") 2026-05-06 7:49 ` Matthew Schwartz @ 2026-05-06 14:20 ` Gal Pressman 0 siblings, 0 replies; 6+ messages in thread From: Gal Pressman @ 2026-05-06 14:20 UTC (permalink / raw) To: Matthew Schwartz Cc: Dragos Tatulea, Jakub Kicinski, regressions, netdev, linux-kernel On 06/05/2026 10:49, Matthew Schwartz wrote: > > >> On May 5, 2026, at 8:05 AM, Gal Pressman <gal@nvidia.com> wrote: >> >> On 27/04/2026 21:26, Matthew Schwartz wrote: >>>> On 4/27/26 11:09 AM, Gal Pressman wrote: >>>> Hello Matthew, >>>> >>>> On 27/04/2026 2:20, Matthew Schwartz wrote: >>>>> Hello, >>>>> >>>>> When using a previously working setup of remote streaming from my workstation to another device via Sunshine (the host server) and Moonlight (the client app) on my home network, I no longer receive any video output on the client app after upgrading my host workstation to kernel 7.0. Reverting back to kernel 6.19 on the host restored my setup to a working state. >>>>> >>>>> After bisecting, I landed on 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") as the first bad commit. I confirmed this by moving the cable to my second on-board NIC (Intel) on the same workstation, which restored video output without any other kernel changes. My affected on-board NIC is Aquantia AQC113 [1d6a:04c0] (rev 03), atlantic driver, firmware 1.3.34, MTU 1500. >>>>> >>>>> Looking into it a bit further, ethtool -K enp97s0 tx-udp-segmentation off also serves as a workaround on my Aquantia port without changing to my other ethernet port. The working Intel NIC reports tx-udp-segmentation as "off [fixed]", so traffic falls back to software UDP segmentation on there. >>>>> >>>>> Please let me know if there's any additional info I can provide. >>>>> >>>>> Thanks, >>>>> Matt >>>>> >>>>> #regzbot introduced: 5b4015ad833c >>>> >>>> Thank you for the report and the bisect! >>>> >>>> I will take a look and try to figure out what's wrong (though I don't >>>> have real hardware to test on). >>>> Is the userspace app open source? can I see its code and try to run it >>>> myself? >>> >>> Thanks for the reply. The code for Sunshine is available here: https://github.com/LizardByte/Sunshine and the code for Moonlight is here: https://github.com/moonlight-stream/moonlight-qt. >>> >>> I have been using the Arch Linux Sunshine package which I installed by following the Linux instructions here: https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2getting__started.html, but there are also binaries for other distros or it's buildable from source. For Moonlight, I have been using the Flatpak distributed on Flathub because the client device runs an atomic rootfs, but you can also use any other device that Moonlight supports. >>> >>>> >>>> I will be OOO for the rest of the week, hope to have some meaningful >>>> reply by the end of next week. >>> >> >> I think I see the issue, do you mind testing the following diff? > > Sorry for the delay. I applied this diff and I’m able to stream from my host to clients again without any issues. > > If you send this version upstream, feel free to add my Tested-by to it. Thanks for verifying! I will finalize this and submit a proper patch soon. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-05-06 14:20 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-26 23:20 [REGRESSION] aquantia: Sunshine/Moonlight UDP video streaming broken since 5b4015ad833c ("net: aquantia: Remove redundant UDP length adjustment with GSO_PARTIAL") Matthew Schwartz
2026-04-27 18:09 ` Gal Pressman
2026-04-27 18:26 ` Matthew Schwartz
2026-05-05 15:05 ` Gal Pressman
2026-05-06 7:49 ` Matthew Schwartz
2026-05-06 14:20 ` Gal Pressman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox