group.of.nepali.translators team mailing list archive
-
group.of.nepali.translators team
-
Mailing list archive
-
Message #27780
[Bug 1807743] Re: QEMU timerfd_create support on PowerPC
This bug was fixed in the package qemu - 1:2.5+dfsg-5ubuntu10.34
---------------
qemu (1:2.5+dfsg-5ubuntu10.34) xenial; urgency=medium
* d/p/ubuntu/lp1807743-linux-user-timerfd.patch: fix define for
timerfd_create system call (LP: #1807743)
-- Christian Ehrhardt <christian.ehrhardt@xxxxxxxxxxxxx> Wed, 12 Dec
2018 13:18:01 +0100
** Changed in: qemu (Ubuntu Xenial)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1807743
Title:
QEMU timerfd_create support on PowerPC
Status in qemu package in Ubuntu:
Fix Released
Status in qemu source package in Precise:
Invalid
Status in qemu source package in Trusty:
Invalid
Status in qemu source package in Xenial:
Fix Released
Status in qemu source package in Bionic:
Fix Released
Status in qemu source package in Cosmic:
Fix Released
Bug description:
[Impact]
* A bad named define made timerfd_create be in the code but not
available
* two smaller fixes to be backported from upstream that change the define
names; This will enable the timerfd_create in qemu-user
[Test Case]
* Compile the attached source code using your host C compiler.
=> https://launchpadlibrarian.net/401131808/timerfd_support_test.c
$ apt install build-essential
$ gcc -Wall timertest.c -o timertest
* Run the resulting binary.
It should run for 3 seconds and print timer information. (sanity
test)
$ ./timertest
* Compile the attached source code using a PowerPC cross compiler with
static linking enabled (to make the remaining steps simpler).
$ apt install gcc-powerpc64-linux-gnu
$ powerpc64-linux-gnu-gcc -static -Wall timertest.c -o timertest
* Run the resulting binary using the unpatched qemu-user or qemu-user-
static executable for your selected PowerPC architecture. It should
exit immediately complaining about an unsupported syscall.
$ apt install qemu-user
$ qemu-ppc64 ./timertest
qemu: Unsupported syscall: 306
timerfd_create(CLOCK_REALTIME): Function not implemented
* Run the same binary using the patched qemu-user or qemu-user-static
executable for your selected PowerPC architecture.
It should behave as the host version did.
Note: If you chose a big-endian PowerPC architecture, the "timer
expirations" output may be "72057594037927936" instead of "1" because
the bytes read were in host byte order instead of target byte order.
[Regression Potential]
* The headers are only used internally so no outside regression should
happen.
* Even then only the names changed but the number stayed, that means even
if it would be an external ABI (it isn't) the number would be the same
* Internally the old define was only used when defining it, but not used
(see grep in comment #1)
* The one regression I could think of is software running in qemu-user
today and working by having a path like "does this have timerfd create
-> no, ok then do A", with the change this might become "-> yes, so do
B" and if that B is broken there would be a regression, but I'd
consider it unlikely since all versions after Xenials 2.5 had the new
variant and I have seen no complaints about it.
[Other Info]
* n/a
---
QEMU erroneously fails to detect support for the timerfd_create
syscall when running user-mode emulation of PowerPC targets. QEMU
supports the timerfd_create syscall, but because the PowerPC target
syscall header has it named "timerfd" instead of "timerfd_create",
support is erroneously not enabled. This notably affects anything that
uses Boost.Asio with deadline timers because it uses timerfds under
the hood. I have attached a patch to fix the problem. For now I have a
custom-built qemu-user-static.deb file with this fix implemented, but
I would appreciate it if you could officially backport this patch to
16.04 LTS (Xenial) so our developers can use the official package
repositories.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1807743/+subscriptions