qemu-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: amd64 application does not work on Apple Silicon because asynchronou


From: Fernando T. Reagan
Subject: Re: amd64 application does not work on Apple Silicon because asynchronous I/O is not detected
Date: Mon, 11 Jul 2022 13:19:17 +0200

Hi, Peter.

Thank you for your answer.

We tried our image with the latest version of Podman and qemu in version 7.0.0. It did not work with them.

Unfortunately, I can not provide you with a reproducible example without Podman/Docker since I am not allowed to distribute the proprietary application.

However, one can easily reproduce the error on an Apple Silicon CPU by starting this public Docker image.

Executing the command

docker run --platform linux/amd64 nguoianphu/docker-sybase

will lead to the following error:

Kernel asynchronous I/O not initialized because it is not supported by this host. Install the appropriate asynchronous I/O libraries.
I/O controller 2 (NetController) is running as task 786438 on thread 7 (LWP 27).
Attempt to resize 'Disk Controller Manager' failed because a new controller could not be created.
It was not possible to create the disk controllers for the server, the server will now shutdown.

I am sorry that I can't provide you with a better example.

Thank you and best regards
Fernando

Am So., 10. Juli 2022 um 18:23 Uhr schrieb Peter Maydell <peter.maydell@linaro.org>:
On Fri, 8 Jul 2022 at 15:06, Fernando T. Reagan
<fernando.t.reagan@gmail.com> wrote:
> I have a custom amd64 Docker image that is based on CentOS 7 and has a UNIX application installed in it.
> The amd64 Docker image and the application inside work without problems on an amd64 computer.
>
> However, when starting this image with Docker Desktop or Podman on an Apple Silicon CPU, the application does not start.
> The error we get from the application is something like this:
> "Kernel asynchronous I/O not initialized because it is not supported by this host. Install the appropriate asynchronous I/O libraries."
>
> As far as I know, Docker and Podman are using qemu to emulate processors.
> Is it a known limitation that asynchronous I/O of amd64 processors does not work on Apple Silicon? Or is there a way I can get this amd64 image to work on an Apple Silicon computer?

This probably isn't Apple Silicon specific -- likely it just means
that QEMU does not implement some syscall that your application is
using, and your application doesn't have a fallback codepath to do
something else. You can test this hypothesis by trying the app on
QEMU on a Linux host.

You should check you're using the most recent version of QEMU,
in case the bug has been fixed. If it's still there, if you can
provide a reproducible test case not involving Docker/Podman
then you can file a bug report in the QEMU bug tracker.

thanks
-- PMM

reply via email to

[Prev in Thread] Current Thread [Next in Thread]