Unsupported syscalls 370 and 355

Bug #1470170 reported by Jussi Pakkanen on 2015-06-30
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
QEMU
Undecided
Unassigned

Bug Description

Qemu seems to be missing syscalls 370 and 355 when running qemu usermode arm. These are used by systemd or some similar new package. This can be detected by creating an debian sid armhf with qemu debootstrap. When the system is launched with "systemd-nspawn -bD sid-arm" this happens (newest git as of today):

pawning container sid-arm on /home/jpakkane/qemutest/sid-arm.
Press ^] three times within 1s to kill container.
Failed to create directory /home/jpakkane/qemutest/sid-arm//sys/fs/selinux: Read-only file system
Failed to create directory /home/jpakkane/qemutest/sid-arm//sys/fs/selinux: Read-only file system
/etc/localtime is not a symlink, not updating container timezone.
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 384
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
qemu: Unsupported syscall: 370
systemd 221 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT -GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
Detected virtualization systemd-nspawn.
Detected architecture arm.

Welcome to Debian GNU/Linux stretch/sid!

Set hostname to <manos>.
qemu: Unsupported syscall: 355
Failed to allocate manager object: Function not implemented
[!!!!!!] Failed to allocate manager object, freezing.

Peter Maydell (pmaydell) wrote :

Syscall 370 is name_to_handle_at, and 355 is signalfd4. (Likely if name_to_handle_at succeeds then it'll want open_by_handle_at too.)

This patch implements the signalfd syscalls, though we haven't got to reviewing it yet.
http://patchwork.ozlabs.org/patch/478072/

It looks like systemd is coping with 370 not being implemented, so that might be enough to get it running.

Le 30/06/2015 19:49, Peter Maydell a écrit :
> Syscall 370 is name_to_handle_at, and 355 is signalfd4. (Likely if
> name_to_handle_at succeeds then it'll want open_by_handle_at too.)
>
> This patch implements the signalfd syscalls, though we haven't got to reviewing it yet.
> http://patchwork.ozlabs.org/patch/478072/
>
> It looks like systemd is coping with 370 not being implemented, so that
> might be enough to get it running.
>

I have also a patch for name_to_handle_at:

https://github.com/vivier/qemu-m68k/commit/2ebda8d4578345a60dadc4d85cfb1b8d69b8aa10

I've written open_by_handle_at for testing purpose. It is not needed by
systemd.

https://github.com/vivier/qemu-m68k/commit/030b720a0ba75a81ec689621f4fac696ccbff22d

I can post them if needed.

I'm also trying to boot systemd (fedora 21/ppc64).

But, for me, this is not enough. Netlink seems needed too.
I'm working on this...

Laurent

Laurent,

I just encountered the same missing syscall on qemu-m68k:

Unpacking udev (228-2) over (227-2) ...
Preparing to unpack .../libsystemd0_228-2_m68k.deb ...
Unpacking libsystemd0:m68k (228-2) over (227-2) ...
Processing triggers for man-db (2.7.5-1) ...
Not building database; man-db/auto-update is not 'true'.
Processing triggers for libc-bin (2.21-3) ...
Setting up libsystemd0:m68k (228-2) ...
Processing triggers for libc-bin (2.21-3) ...
(Reading database ... 26780 files and directories currently installed.)
Preparing to unpack .../systemd_228-2_m68k.deb ...
Unpacking systemd (228-2) over (227-2) ...
Processing triggers for man-db (2.7.5-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up systemd (228-2) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/logind.conf ...
Installing new version of config file /etc/systemd/system.conf ...
qemu: Unsupported syscall: 352
qemu: Unsupported syscall: 352
qemu: Unsupported syscall: 352
addgroup: The group `systemd-journal' already exists as a system group. Exiting.
qemu: Unsupported syscall: 352
(Reading database ... 26779 files and directories currently installed.)
Preparing to unpack .../systemd-sysv_228-2_m68k.deb ...
Unpacking systemd-sysv (228-2) over (227-2) ...
Processing triggers for man-db (2.7.5-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up systemd-sysv (228-2) ...
Setting up udev (228-2) ...
qemu: Unsupported syscall: 352
addgroup: The group `input' already exists as a system group. Exiting.
A chroot environment has been detected, udev not started.
Reading package lists... Done
Building dependency tree
Reading state information... Done

This just happened for the first time and it's apparently related to very recent versions of systemd (228).

Adrian

pranith (bobby-prani) wrote :

Fix has been committed upstream.

Changed in qemu:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers