On Saturday 02 January 2016 11:59:29 Sudip Mukherjee wrote:
Just to be sure we are talking about the same thing: you mean running a 64-bit kernel in a kvm guest with a 32-bit file system, right? Running a 32-bit kvm guest on a 64-bit host would not be interesting of course.
The kvm (actually qemu, started from virt-manager with -enable-kvm) that I just configured shows the following:
lscpu shows:
Architecture: i686 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 6 Stepping: 3 CPU MHz: 2993.200 BogoMIPS: 5986.40 Virtualization: VT-x Hypervisor vendor: KVM Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 4096K
uname -i shows: i686
Will it be ok to test in this one?
If 'uname -i' reports i686, that usually means you have configured the kernel for 32-bit. Try rebuilding the kernel with 'CONFIG_64BIT' and 'CONFIG_IA32_EMULATION' enabled to test that the 32-bit user space now also works under a 64-bit kernel.
That reminds me, we should now remove the code from fs/compat_ioctl.c that was handling emulating the other ioctl commands, the new .compat_ioctl callback in ppdev takes care of that along with the PPGETTIME/PPSETTIME calls, see below
Arnd
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index dcf26537c935..e65e7d932566 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -1019,28 +1019,6 @@ COMPATIBLE_IOCTL(PPPIOCGL2TPSTATS) /* PPPOX */ COMPATIBLE_IOCTL(PPPOEIOCSFWD) COMPATIBLE_IOCTL(PPPOEIOCDFWD) -/* ppdev */ -COMPATIBLE_IOCTL(PPSETMODE) -COMPATIBLE_IOCTL(PPRSTATUS) -COMPATIBLE_IOCTL(PPRCONTROL) -COMPATIBLE_IOCTL(PPWCONTROL) -COMPATIBLE_IOCTL(PPFCONTROL) -COMPATIBLE_IOCTL(PPRDATA) -COMPATIBLE_IOCTL(PPWDATA) -COMPATIBLE_IOCTL(PPCLAIM) -COMPATIBLE_IOCTL(PPRELEASE) -COMPATIBLE_IOCTL(PPYIELD) -COMPATIBLE_IOCTL(PPEXCL) -COMPATIBLE_IOCTL(PPDATADIR) -COMPATIBLE_IOCTL(PPNEGOT) -COMPATIBLE_IOCTL(PPWCTLONIRQ) -COMPATIBLE_IOCTL(PPCLRIRQ) -COMPATIBLE_IOCTL(PPSETPHASE) -COMPATIBLE_IOCTL(PPGETMODES) -COMPATIBLE_IOCTL(PPGETMODE) -COMPATIBLE_IOCTL(PPGETPHASE) -COMPATIBLE_IOCTL(PPGETFLAGS) -COMPATIBLE_IOCTL(PPSETFLAGS) /* Big A */ /* sparc only */ /* Big Q for sound/OSS */