Mixing amd64 kernel with i386 world

Konstantin Belousov kostikbel at gmail.com
Sat Sep 28 14:27:29 UTC 2013


On Sat, Sep 28, 2013 at 01:25:39PM +0200, Dimitry Andric wrote:
> On Sep 28, 2013, at 12:37, Peter Jeremy <peter at rulingia.com> wrote:
> > I have a system with 4GB RAM and hence need to use an amd64 kernel to use
> > all the RAM (I can only access 3GB RAM with an i386 kernel).  OTOH, amd64
> > processes are significantly (50-100%) larger than equivalent i386 processes
> > and none none of the applications I'll be running on the system need to be
> > 64-bit.
> > 
> > This implies that the optimal approach is an amd64 kernel with i386
> > userland (I'm ignoring PAE as a useable approach).  I've successfully
> > run i386 jails on amd64 systems so I know this mostly works.  I also
> > know that there are some gotchas:
> > - kdump needs to match the kernel
> > - anything accessing /dev/mem or /dev/kmem (which implies anything that
> >  uses libkvm) probably needs to match the kernel.
> > 
> > Has anyone investigated this approach?
> 
> I have only run i386 jails on amd64, just like you.  Though for the use
> case you are describing, the really optimal approach would be to have
> real x32 support.  Unfortunately, that is quite a lot of work... :)

The management interfaces usually do not work for compat32 on amd64. The
biggest exception I am aware of is nmount(2). But you would be without
network. The same is true for almost all sysctls, again kern.proc.*
hierarchy is an exception and works.

Syscalls required to normal usermode operation do work, at least most
developers care about this, except for capsicum.

Using 32bit jail or, even easier, chroot, for now, is the easiest proposition.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20130928/d66ce3c5/attachment.sig>


More information about the freebsd-hackers mailing list