* Highmem on AXM and K2 @ 2025-09-19 13:24 Stefan Wiehler 2025-09-22 13:20 ` Arnd Bergmann 0 siblings, 1 reply; 5+ messages in thread From: Stefan Wiehler @ 2025-09-19 13:24 UTC (permalink / raw) To: Arnd Bergmann; +Cc: linux-kernel, linux-arm-kernel Hi Arnd, You've been calling out for users still needing highmem, and here we are ;-) We use both the Intel AXM 5516 and the TI KeyStone II with > 4 GB of RAM in our networking products. We use the AXM 5516 with 6 GB of RAM and highmem is therefore a must for us. The latest estimate from product management for EOL is June 2029. We would appreciate if this date (plus some buffer) could be kept in mind when choosing the last LTS kernel with highmem. With the TI K2, the situation is more complicated: The EOL for the latest product hasn't even been defined yet, but most likely we need to support it until 2037; it really depends on when the last 2G/3G networks will be shut down. Obviously the community cannot wait that long with highmem removal. While we have 5 GB of RAM there, a little bit less than half is used by Linux. I see two options: 1. We'll need to evaluate if we could move away from current CONFIG_MEMSPLIT_3G with our rather special memory configuration. My current understanding is that there hasn't been a lot of interest in getting CONFIG_VMSPLIT_4G_4G into mainline. As we cannot accept major performance degradation, I doubt that this will be a viable path. 2. We'll need to switch over to the last highmem-enabled SLTS kernel, earliest around 2028 (to keep some support buffer). Kind regards, Stefan ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Highmem on AXM and K2 2025-09-19 13:24 Highmem on AXM and K2 Stefan Wiehler @ 2025-09-22 13:20 ` Arnd Bergmann 2025-10-15 16:08 ` Stefan Wiehler 0 siblings, 1 reply; 5+ messages in thread From: Arnd Bergmann @ 2025-09-22 13:20 UTC (permalink / raw) To: Stefan Wiehler; +Cc: linux-kernel, linux-arm-kernel On Fri, Sep 19, 2025, at 15:24, Stefan Wiehler wrote: > Hi Arnd, > > You've been calling out for users still needing highmem, and here we are ;-) We > use both the Intel AXM 5516 and the TI KeyStone II with > 4 GB of RAM in our > networking products. Hi Stefan, Thanks a lot for getting back to me on this! > We use the AXM 5516 with 6 GB of RAM and highmem is therefore a must for us. > The latest estimate from product management for EOL is June 2029. We would > appreciate if this date (plus some buffer) could be kept in mind when choosing > the last LTS kernel with highmem. Ok, I think this one is fine for the highmem usage at least. According to our current discussions, we'd likely start by reducing the references to highmem but keep supporting it for the page cache. Even with the earliler timeline I posted in [1], 2029 would be covered by the LTS kernel that gets released in late 2026. The other problem on this platform is that upstream support has been abandoned by Intel a long time ago and as you know the drivers that did get merged are incomplete, so you are already on your own. Alexander Sverdlin at some point in the past considered upstreaming more of it, but that never happened during his time at Nokia. If you or someone else are interested in improving upstream support for the Axxia platform, that is still something that could be done. I know there are other users interested in it, and some of the original software team are now working for consulting companies that would likely offer their services. > With the TI K2, the situation is more complicated: The EOL for the latest > product hasn't even been defined yet, but most likely we need to support it > until 2037; it really depends on when the last 2G/3G networks will be shut > down. Obviously the community cannot wait that long with highmem removal. While > we have 5 GB of RAM there, a little bit less than half is used by Linux. Right, this is clearly the more worrying of the two platforms, and I had not expected the timeline to extend that far into the future. The platform has some nasty quirks with its memory layout (having to use lowmem at physical address >0x100000000 to get coherent DMA, and needing ARM_LPAE for that) and does not have a lot of activity upstream, so I had hoped that it would not be as long-lived as come other platforms. > I see two options: > 1. We'll need to evaluate if we could move away from current CONFIG_MEMSPLIT_3G > with our rather special memory configuration. My current understanding is that > there hasn't been a lot of interest in getting CONFIG_VMSPLIT_4G_4G into > mainline. As we cannot accept major performance degradation, I doubt that this > will be a viable path. > 2. We'll need to switch over to the last highmem-enabled SLTS kernel, earliest > around 2028 (to keep some support buffer). Right, I agree that these are the two possible options, and I think we can make the timeline work for option 2, though option 1 is likely better longtime if we can come up with solution that works for your specific workload. Can you share more details about how exactly system uses its highmem today? In particular: - The physical memory layout, especially whether the memory that is assigned to Linux is physically contigouous, or if the memory owned by other components (the network processor or an FPGA) is taken from the middle. Note that at the moment, any memory that is too far away from the first page becomes highmem, even if the total RAM is under 800MB. - Is the memory mainly used for file backing (including tmpfs) or is it used as anonymous memory (like malloc()) in a few processes? - If most of the memory is mapped into a small number of processes, how close are you to reaching the available 3GB virtual address limit in those processes? - If possible, share the contents of /proc/meminfo, /proc/zoneinfo and the /proc/${PID}/maps for the processes with the largest vsize (according to ps)? If the largest process needs more than 2GB of virtual address space, then there is not much hope in changing to CONFIG_VMSPLIT_2G or CONFIG_VMSPLIT_1G. On the other hand if your workload does not rely on having all that memory mapped into a single address space, using VMPLIT_1G would likely improve system performance noticeably and have no other downside. Arnd [1] https://lore.kernel.org/lkml/4ff89b72-03ff-4447-9d21-dd6a5fe1550f@app.fastmail.com/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Highmem on AXM and K2 2025-09-22 13:20 ` Arnd Bergmann @ 2025-10-15 16:08 ` Stefan Wiehler 2026-04-15 14:48 ` Stefan Wiehler 0 siblings, 1 reply; 5+ messages in thread From: Stefan Wiehler @ 2025-10-15 16:08 UTC (permalink / raw) To: Arnd Bergmann; +Cc: linux-kernel, linux-arm-kernel Hi Arnd, > Thanks a lot for getting back to me on this! Thanks as well for your comprehensive feedback, and sorry for my late reply, I've been on a long vacation. > Ok, I think this one is fine for the highmem usage at least. According > to our current discussions, we'd likely start by reducing the references > to highmem but keep supporting it for the page cache. Even with the > earliler timeline I posted in [1], 2029 would be covered by the LTS kernel > that gets released in late 2026. Ok, thanks for confirming on that! > The other problem on this platform is that upstream support has been > abandoned by Intel a long time ago and as you know the drivers that > did get merged are incomplete, so you are already on your own. > > Alexander Sverdlin at some point in the past considered upstreaming > more of it, but that never happened during his time at Nokia. If you > or someone else are interested in improving upstream support for the > Axxia platform, that is still something that could be done. I know > there are other users interested in it, and some of the original > software team are now working for consulting companies that would > likely offer their services. Unfortunately, we have finally abandoned plans of upstreaming AXM last year. Almost everybody who has a deep understanding of AXM (like Alex) has left the company in the meanwhile, some drivers are not in a state that would allow upstreaming without major refactoring (to put it diplomatically ;-), and with the EOL on the horizon, there is not much interest from the management side either anymore… > Can you share more details about how exactly system uses its highmem > today? In particular: > > - The physical memory layout, especially whether the memory > that is assigned to Linux is physically contigouous, or if > the memory owned by other components (the network processor > or an FPGA) is taken from the middle. Note that at the > moment, any memory that is too far away from the first > page becomes highmem, even if the total RAM is under 800MB. > > - Is the memory mainly used for file backing (including tmpfs) or > is it used as anonymous memory (like malloc()) in a few processes? > > - If most of the memory is mapped into a small number of > processes, how close are you to reaching the available 3GB > virtual address limit in those processes? > > - If possible, share the contents of /proc/meminfo, /proc/zoneinfo > and the /proc/${PID}/maps for the processes with the largest vsize > (according to ps)? > > If the largest process needs more than 2GB of virtual address > space, then there is not much hope in changing to CONFIG_VMSPLIT_2G > or CONFIG_VMSPLIT_1G. On the other hand if your workload does > not rely on having all that memory mapped into a single address > space, using VMPLIT_1G would likely improve system performance > noticeably and have no other downside. For some of these questions, I'll need to consult with higher layer application developers first. I'll do some investigations and come back to you on this. Kind regards, Stefan ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Highmem on AXM and K2 2025-10-15 16:08 ` Stefan Wiehler @ 2026-04-15 14:48 ` Stefan Wiehler 2026-04-15 15:32 ` Arnd Bergmann 0 siblings, 1 reply; 5+ messages in thread From: Stefan Wiehler @ 2026-04-15 14:48 UTC (permalink / raw) To: Arnd Bergmann; +Cc: linux-kernel, linux-arm-kernel Hi Arnd, I would like to inform you that after some internal discussion, we decided not to continue with my experiments to transition from VMSPLIT_3G towards VMSPLIT_2G{_OPT} on the K2. The K2 is used in a legacy product after all, and the more senior colleagues were quite concerned about making such a major change due to various hacks that might fall apart along the way. Therefore, we will go the CIP path by staying with the last SLTS kernel with full highmem support. Therefore, we would be very glad if this is the case for at least the next SLTS kernel, supposedly to be released in 2027, as we should then be able (despite barely) to meet our projected EOL of 2037. Thank you for your help so far! Kind regards, Stefan ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Highmem on AXM and K2 2026-04-15 14:48 ` Stefan Wiehler @ 2026-04-15 15:32 ` Arnd Bergmann 0 siblings, 0 replies; 5+ messages in thread From: Arnd Bergmann @ 2026-04-15 15:32 UTC (permalink / raw) To: Stefan Wiehler; +Cc: linux-kernel, linux-arm-kernel On Wed, Apr 15, 2026, at 16:48, Stefan Wiehler wrote: > Hi Arnd, > > I would like to inform you that after some internal discussion, we > decided not to continue with my experiments to transition from > VMSPLIT_3G towards VMSPLIT_2G{_OPT} on the K2. The K2 is used in a > legacy product after all, and the more senior colleagues were quite > concerned about making such a major change due to various hacks that > might fall apart along the way. > > Therefore, we will go the CIP path by staying with the last SLTS kernel > with full highmem support. Therefore, we would be very glad if this is > the case for at least the next SLTS kernel, supposedly to be released in > 2027, as we should then be able (despite barely) to meet our projected > EOL of 2037. Hi Stefan, The CIP kernel from 2027 should certainly still support highmem, though I am in the process of removing highmem usage from drivers that rarely use a lot of memory, which means you may see a slightly higher memory consumption, and changing the default to CONFIG_VMSPLIT_2G_OPT/CONFIG_VMSPLIT_2G means that your configuration will see less testing in the future. I don't think there is an immediate problem for your product using the 2027 LTS kernel, or (most likely) the 2029 version, but I'm still worried about the boot regression you reported with CONFIG_VMSPLIT_2G, which means we still have to make sure K2 works with the new default. Arnd ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-04-15 15:32 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-09-19 13:24 Highmem on AXM and K2 Stefan Wiehler 2025-09-22 13:20 ` Arnd Bergmann 2025-10-15 16:08 ` Stefan Wiehler 2026-04-15 14:48 ` Stefan Wiehler 2026-04-15 15:32 ` Arnd Bergmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox