Future direction of x86 builds
Elliott Mitchell
ehem+openwrt at m5p.com
Sat May 9 20:24:18 PDT 2026
On Thu, Apr 30, 2026 at 04:34:30PM -0400, Michael Richardson wrote:
>
> Elliott Mitchell <ehem+openwrt at m5p.com> wrote:
> > The x86 build choices *really* need some attention. x86 is low-ish
> > priority for OpenWRT as most x86 systems aren't constrained to the
> > degree OpenWRT's embedded targets are. Yet at the same time x86 system
> > is useful for testing and there are network switches with x86 processor
> > inside.
>
> 1. I think that you are right to think about dropping generic.
>
> 2. I know that geode CPUs were used widely in "stuff" until 6-8 years ago.
> I don't know if that is worth keeping. I would treat it as some other
> CPU/arch, and consider it like one might consider some 2016 era ASUS.
> So, if there is someone who wants to maintain it...
>
> 3. I agree with you that a *virtio* image is super-useful for testing.
> (I *also* use one to test virtualized images of an entirely different embedded
> system. I need to make sure it works *with* OpenWRT in a variety of
> configurations...)
> I don't think that this needs much in the way of kernel modules.
> Compiling everything in might be a win when testing.
> Call it virtioAmd64 or something like that.
>
> 4. I think that the case of an amd64 image that has a *real* PCIe ethernet card
> and/or PCIe 802.11 card passed in, suitable for someone who has some
> "small" {by 2026 desktop standards} box hosting all sorts of stuff is
> yet another *different* situation.
> Yes, it needs lots of possible kernel modules, maybe bunches of USB
> modules too. I would give this a different name; I don't know what.
> "guest64" or something like that.
>
>
> So to me, #3 is a group need, and I have no problem if it's amd64 only.
The current "64" configuration matches this. I do note virtio is mostly
about performance. Enough x86 hardware can be emulated in better than
real-time that virtio shouldn't strictly be an absolute requirement.
> #2 and #4 should depend upon someone who wants to maintain it.
> #2 is 32-bit, so really has nothing in common with the rest.
There is a vote for merging "geode" into "legacy":
https://github.com/openwrt/openwrt/pull/22997
I'm presently unsure whether or not it should be merged in. I'm
sympathetic to not merging as they were in production less than a decade
ago. Yet at the same time all Linux 32-bit platform support is slowly
degrading.
> #4 could be 32-bit or amd64. 32-bit VM guest systems used to use their ram
> better, and that mattered a decade ago when many small-office users were
> using recycled hosts that were 4-8 years older. Today....
Right now the best combination would be an amd64 kernel with userspace
using the x32 ABI (https://wiki.debian.org/X32Port
https://en.wikipedia.org/wiki/X32_ABI). The additional and larger
registers are highly valuable.
> > I think instead the various hypervisors may deserve specialized
> > subtargets. In particular I note while x86 computers with 128MB of
> > memory are rare, hypervisors allow for VMs of 128MB. I notice at least
> > 10% of the memory of a 128MB VM will be consumed by unusable drivers.
>
> That's okay. A long time ago (2008) I used *a lot* of tiny VMs as routers as
> part of a virtual desktop infrastructure, and having them small was more
> important. I remember we couldn't make RHEL even install with less than 1GB
> (yum!), but I can't recall if we settled for OpenWRT or Debian. Company died soon.
>
> > Perhaps the biggest issue right now is decisions are needed. Rather a
> > lot of mold has built up on x86 and a direction is needed.
>
> :-)
The trend is 32-bit platforms are disappearing. Older, slower targets
are good targets for OpenWRT as there are similarities to embedded
targets. Yet if all 32-bit target support is removed from the Linux
kernel OpenWRT's situation will be interesting. I don't expect ARM32 or
MIPS32 to disappear soon, but the writing is on the wall.
The real news is:
https://www.phoronix.com/news/Linux-7.1-VFS-Kino-32-bit
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b2600f81cefcdfcda58d50df7be8fd48ada8ce2
So the question is when to merge 32-bit targets together and how to split
the x86 64-bit target. I'm in favor of Vm targets. Someone else had
been proposing to split 64 based on processor generation. I do note
only very early amd64 targets are likely to have PATA hardware.
--
(\___(\___(\______ --=> 8-) EHM <=-- ______/)___/)___/)
\BS ( | ehem+sigmsg at m5p.com PGP 87145445 | ) /
\_CS\ | _____ -O #include <stddisclaimer.h> O- _____ | / _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445
More information about the openwrt-devel
mailing list