* Xen NIC driver have page_pool memory leaks [not found] <CALUcmUncphE8v8j1Xme0BcX4JRhqd+gB0UUzS-U=3XXw_3iUiw@mail.gmail.com> @ 2024-03-25 12:21 ` Jesper Dangaard Brouer 2024-03-25 12:33 ` Paul Durrant 0 siblings, 1 reply; 5+ messages in thread From: Jesper Dangaard Brouer @ 2024-03-25 12:21 UTC (permalink / raw) To: Arthur Borsboom, Ilias Apalodimas Cc: Netdev, Paul Durrant, Wei Liu, xen-devel@lists.xenproject.org Hi Arthur, (Answer inlined below, which is custom on this mailing list) On 23/03/2024 14.23, Arthur Borsboom wrote: > Hi Jesper, > > After a recent kernel upgrade 6.7.6 > 6.8.1 all my Xen guests on Arch > Linux are dumping kernel traces. > It seems to be indirectly caused by the page pool memory leak > mechanism, which is probably a good thing. > > I have created a bug report, but there is no response. > > https://bugzilla.kernel.org/show_bug.cgi?id=218618 > > I am uncertain where and to whom I need to report this page leak. > Can you help me get this issue fixed? I'm the page_pool maintainer, but as you say yourself in comment 2 then since dba1b8a7ab68 ("mm/page_pool: catch page_pool memory leaks") this indicated there is a problem in the xen_netfront driver, which was previously not visible. Cc'ing the "XEN NETWORK BACKEND DRIVER" maintainers, as this is a driver bug. What confuses me it that I cannot find any modules named "xen_netfront" in the upstream tree. IPSEC recently had a similar leak bug. That was fixed in commmit [1] c3198822c6cb ("net: esp: fix bad handling of pages from page_pool"). This xen_netfront driver likely needs a similar fix. --Jesper [1] https://git.kernel.org/torvalds/c/c3198822c6cb Text copied from bugzilla.kernel.org: ------------------------------------- [88847.284348] Call Trace: [88847.284354] <IRQ> [88847.284361] dump_stack_lvl+0x47/0x60 [88847.284378] bad_page+0x71/0x100 [88847.284393] free_unref_page_prepare+0x236/0x390 [88847.284405] free_unref_page+0x34/0x180 [88847.284416] __pskb_pull_tail+0x3ff/0x4a0 [88847.284432] xennet_poll+0x909/0xa40 [xen_netfront 12c02fdcf84c692965d9cd6ca5a6ff0a530b4ce9] [88847.284470] __napi_poll+0x28/0x1b0 [88847.284483] net_rx_action+0x2b5/0x370 [88847.284495] ? handle_irq_desc+0x3e/0x60 [88847.284511] __do_softirq+0xc9/0x2c8 [88847.284523] __irq_exit_rcu+0xa3/0xc0 [88847.284536] sysvec_xen_hvm_callback+0x72/0x90 [88847.284545] </IRQ> [88847.284549] <TASK> [88847.284552] asm_sysvec_xen_hvm_callback+0x1a/0x20 [88847.284562] RIP: 0010:pv_native_safe_halt+0xf/0x20 [88847.284572] Code: 22 d7 c3 cc cc cc cc 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 66 90 0f 00 2d e3 13 27 00 fb f4 <c3> cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 90 90 90 90 90 90 [88847.284579] RSP: 0018:ffffb2a1800c3e58 EFLAGS: 00000246 [88847.284587] RAX: 0000000000004000 RBX: ffff91358033b864 RCX: 000051404aebd79d [88847.284594] RDX: ffff9136f9b00000 RSI: ffff91358033b800 RDI: 0000000000000001 [88847.284599] RBP: ffff91358033b864 R08: ffffffff9b94dca0 R09: 0000000000000001 [88847.284604] R10: 0000000000000018 R11: ffff9136f9b331a4 R12: ffffffff9b94dca0 [88847.284609] R13: ffffffff9b94dd20 R14: 0000000000000001 R15: 0000000000000000 [88847.284623] acpi_safe_halt+0x15/0x30 [88847.284634] acpi_idle_do_entry+0x2f/0x50 [88847.284644] acpi_idle_enter+0x7f/0xd0 [88847.284655] cpuidle_enter_state+0x81/0x440 [88847.284667] cpuidle_enter+0x2d/0x40 [88847.284678] do_idle+0x1d8/0x230 [88847.284688] cpu_startup_entry+0x2a/0x30 [88847.284695] start_secondary+0x11e/0x140 [88847.284705] secondary_startup_64_no_verify+0x184/0x18b [88847.284725] </TASK> ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Xen NIC driver have page_pool memory leaks 2024-03-25 12:21 ` Xen NIC driver have page_pool memory leaks Jesper Dangaard Brouer @ 2024-03-25 12:33 ` Paul Durrant 2024-03-27 11:27 ` Jesper Dangaard Brouer 0 siblings, 1 reply; 5+ messages in thread From: Paul Durrant @ 2024-03-25 12:33 UTC (permalink / raw) To: Jesper Dangaard Brouer, Arthur Borsboom, Ilias Apalodimas Cc: Netdev, Wei Liu, xen-devel@lists.xenproject.org On 25/03/2024 12:21, Jesper Dangaard Brouer wrote: > Hi Arthur, > > (Answer inlined below, which is custom on this mailing list) > > On 23/03/2024 14.23, Arthur Borsboom wrote: >> Hi Jesper, >> >> After a recent kernel upgrade 6.7.6 > 6.8.1 all my Xen guests on Arch >> Linux are dumping kernel traces. >> It seems to be indirectly caused by the page pool memory leak >> mechanism, which is probably a good thing. >> >> I have created a bug report, but there is no response. >> >> https://bugzilla.kernel.org/show_bug.cgi?id=218618 >> >> I am uncertain where and to whom I need to report this page leak. >> Can you help me get this issue fixed? > > I'm the page_pool maintainer, but as you say yourself in comment 2 then > since dba1b8a7ab68 ("mm/page_pool: catch page_pool memory leaks") this > indicated there is a problem in the xen_netfront driver, which was > previously not visible. > > Cc'ing the "XEN NETWORK BACKEND DRIVER" maintainers, as this is a driver > bug. What confuses me it that I cannot find any modules named > "xen_netfront" in the upstream tree. > You should have tried '-' rather than '_' :-) https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/xen-netfront.c ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Xen NIC driver have page_pool memory leaks 2024-03-25 12:33 ` Paul Durrant @ 2024-03-27 11:27 ` Jesper Dangaard Brouer 2024-03-27 11:30 ` Andrew Cooper 2024-03-27 12:52 ` Denis Kirjanov 0 siblings, 2 replies; 5+ messages in thread From: Jesper Dangaard Brouer @ 2024-03-27 11:27 UTC (permalink / raw) To: paul, Arthur Borsboom, Ilias Apalodimas Cc: Netdev, Wei Liu, xen-devel@lists.xenproject.org, kda On 25/03/2024 13.33, Paul Durrant wrote: > On 25/03/2024 12:21, Jesper Dangaard Brouer wrote: >> Hi Arthur, >> >> (Answer inlined below, which is custom on this mailing list) >> >> On 23/03/2024 14.23, Arthur Borsboom wrote: >>> Hi Jesper, >>> >>> After a recent kernel upgrade 6.7.6 > 6.8.1 all my Xen guests on Arch >>> Linux are dumping kernel traces. >>> It seems to be indirectly caused by the page pool memory leak >>> mechanism, which is probably a good thing. >>> >>> I have created a bug report, but there is no response. >>> >>> https://bugzilla.kernel.org/show_bug.cgi?id=218618 >>> >>> I am uncertain where and to whom I need to report this page leak. >>> Can you help me get this issue fixed? >> >> I'm the page_pool maintainer, but as you say yourself in comment 2 then >> since dba1b8a7ab68 ("mm/page_pool: catch page_pool memory leaks") this >> indicated there is a problem in the xen_netfront driver, which was >> previously not visible. >> >> Cc'ing the "XEN NETWORK BACKEND DRIVER" maintainers, as this is a driver >> bug. What confuses me it that I cannot find any modules named >> "xen_netfront" in the upstream tree. >> > > You should have tried '-' rather than '_' :-) > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/xen-netfront.c > Looking at this driver, I think it is missing a call to skb_mark_for_recycle(). I'll will submit at patch for this, with details for stable maintainers. As I think it dates back to v5.9 via commit 6c5aa6fc4def ("xen networking: add basic XDP support for xen-netfront"). I think this commit is missing a call to page_pool_release_page() between v5.9 to v5.14, after which is should have used skb_mark_for_recycle(). Since v6.6 the call page_pool_release_page() were removed (in 535b9c61bdef ("net: page_pool: hide page_pool_release_page()") and remaining callers converted (in commit 6bfef2ec0172 ("Merge branch 'net-page_pool-remove-page_pool_release_page'")). This leak became visible in v6.8 via commit dba1b8a7ab68 ("mm/page_pool: catch page_pool memory leaks"). --Jesper ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Xen NIC driver have page_pool memory leaks 2024-03-27 11:27 ` Jesper Dangaard Brouer @ 2024-03-27 11:30 ` Andrew Cooper 2024-03-27 12:52 ` Denis Kirjanov 1 sibling, 0 replies; 5+ messages in thread From: Andrew Cooper @ 2024-03-27 11:30 UTC (permalink / raw) To: Jesper Dangaard Brouer, paul, Arthur Borsboom, Ilias Apalodimas Cc: Netdev, Wei Liu, xen-devel@lists.xenproject.org, kda, Xen Security On 27/03/2024 11:27 am, Jesper Dangaard Brouer wrote: > > > On 25/03/2024 13.33, Paul Durrant wrote: >> On 25/03/2024 12:21, Jesper Dangaard Brouer wrote: >>> Hi Arthur, >>> >>> (Answer inlined below, which is custom on this mailing list) >>> >>> On 23/03/2024 14.23, Arthur Borsboom wrote: >>>> Hi Jesper, >>>> >>>> After a recent kernel upgrade 6.7.6 > 6.8.1 all my Xen guests on Arch >>>> Linux are dumping kernel traces. >>>> It seems to be indirectly caused by the page pool memory leak >>>> mechanism, which is probably a good thing. >>>> >>>> I have created a bug report, but there is no response. >>>> >>>> https://bugzilla.kernel.org/show_bug.cgi?id=218618 >>>> >>>> I am uncertain where and to whom I need to report this page leak. >>>> Can you help me get this issue fixed? >>> >>> I'm the page_pool maintainer, but as you say yourself in comment 2 then >>> since dba1b8a7ab68 ("mm/page_pool: catch page_pool memory leaks") this >>> indicated there is a problem in the xen_netfront driver, which was >>> previously not visible. >>> >>> Cc'ing the "XEN NETWORK BACKEND DRIVER" maintainers, as this is a >>> driver >>> bug. What confuses me it that I cannot find any modules named >>> "xen_netfront" in the upstream tree. >>> >> >> You should have tried '-' rather than '_' :-) >> >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/xen-netfront.c >> >> > > Looking at this driver, I think it is missing a call to > skb_mark_for_recycle(). > > I'll will submit at patch for this, with details for stable maintainers. > > As I think it dates back to v5.9 via commit 6c5aa6fc4def ("xen > networking: add basic XDP support for xen-netfront"). I think this > commit is missing a call to page_pool_release_page() > between v5.9 to v5.14, after which is should have used > skb_mark_for_recycle(). > > Since v6.6 the call page_pool_release_page() were removed (in > 535b9c61bdef ("net: page_pool: hide page_pool_release_page()") and > remaining callers converted (in commit 6bfef2ec0172 ("Merge branch > 'net-page_pool-remove-page_pool_release_page'")). > > This leak became visible in v6.8 via commit dba1b8a7ab68 ("mm/page_pool: > catch page_pool memory leaks"). Thankyou very much for your help here. Please CC security@xenproject.org too, because we'll want to issue an XSA (Xen Security Advisory) when this fix is ready. ~Andrew ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Xen NIC driver have page_pool memory leaks 2024-03-27 11:27 ` Jesper Dangaard Brouer 2024-03-27 11:30 ` Andrew Cooper @ 2024-03-27 12:52 ` Denis Kirjanov 1 sibling, 0 replies; 5+ messages in thread From: Denis Kirjanov @ 2024-03-27 12:52 UTC (permalink / raw) To: Jesper Dangaard Brouer, paul, Arthur Borsboom, Ilias Apalodimas Cc: Netdev, Wei Liu, xen-devel@lists.xenproject.org, kda On 3/27/24 14:27, Jesper Dangaard Brouer wrote: > > > On 25/03/2024 13.33, Paul Durrant wrote: >> On 25/03/2024 12:21, Jesper Dangaard Brouer wrote: >>> Hi Arthur, >>> >>> (Answer inlined below, which is custom on this mailing list) >>> >>> On 23/03/2024 14.23, Arthur Borsboom wrote: >>>> Hi Jesper, >>>> >>>> After a recent kernel upgrade 6.7.6 > 6.8.1 all my Xen guests on Arch >>>> Linux are dumping kernel traces. >>>> It seems to be indirectly caused by the page pool memory leak >>>> mechanism, which is probably a good thing. >>>> >>>> I have created a bug report, but there is no response. >>>> >>>> https://bugzilla.kernel.org/show_bug.cgi?id=218618 >>>> >>>> I am uncertain where and to whom I need to report this page leak. >>>> Can you help me get this issue fixed? >>> >>> I'm the page_pool maintainer, but as you say yourself in comment 2 then >>> since dba1b8a7ab68 ("mm/page_pool: catch page_pool memory leaks") this >>> indicated there is a problem in the xen_netfront driver, which was >>> previously not visible. >>> >>> Cc'ing the "XEN NETWORK BACKEND DRIVER" maintainers, as this is a driver >>> bug. What confuses me it that I cannot find any modules named >>> "xen_netfront" in the upstream tree. >>> >> >> You should have tried '-' rather than '_' :-) >> >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/xen-netfront.c >> > > Looking at this driver, I think it is missing a call to skb_mark_for_recycle(). > > I'll will submit at patch for this, with details for stable maintainers. Please do > > As I think it dates back to v5.9 via commit 6c5aa6fc4def ("xen > networking: add basic XDP support for xen-netfront"). I think this > commit is missing a call to page_pool_release_page() > between v5.9 to v5.14, after which is should have used > skb_mark_for_recycle(). Hmm, looks like I've missed it > > Since v6.6 the call page_pool_release_page() were removed (in > 535b9c61bdef ("net: page_pool: hide page_pool_release_page()") and > remaining callers converted (in commit 6bfef2ec0172 ("Merge branch > 'net-page_pool-remove-page_pool_release_page'")). > > This leak became visible in v6.8 via commit dba1b8a7ab68 ("mm/page_pool: > catch page_pool memory leaks"). > > --Jesper > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-03-27 12:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CALUcmUncphE8v8j1Xme0BcX4JRhqd+gB0UUzS-U=3XXw_3iUiw@mail.gmail.com>
2024-03-25 12:21 ` Xen NIC driver have page_pool memory leaks Jesper Dangaard Brouer
2024-03-25 12:33 ` Paul Durrant
2024-03-27 11:27 ` Jesper Dangaard Brouer
2024-03-27 11:30 ` Andrew Cooper
2024-03-27 12:52 ` Denis Kirjanov
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.