Hi,
Here's quickly cleaned notes from etherpad:
People affiliated with at least Debian, Fedora, OpenEmbedded,
OpenSUSE, Redhat, Ubuntu and Yocto were present and voiced opinions.
Kernel:
- Good: most Interesting platforms mainline now
- Qualcomm IFC (in progress), raspi2, hikey probably mostly wanted?
- Bad: sometimes mainline kernels features limited "it boots to serial console"
- OEMs still put their own kernels on everything they ship
Kernel testing:
- http://kernelci.org is gaining traction by kernel devs, but so far
tests mostly defconfigs (which are rather minimal)
- all options needed by the new pid 1 and other hard requirements to
boot a modern distro should be in the arm64 defconfig and multi_v*
configs
- if not, kernel developers present think adding them is definetly OK
- make allmodconfig testing at kernelci.orghttp://kernelci.org/build/mainline/kernel/v3.19-rc7-200-gda2d96d3aa18/defco…
- TODO: make allmodconfig boot!
- ACTION Koen volunteered to put some distro-style config fragments
into the kernel
Kernel command line options
- Now firmware can tell where console= is instead of defining in command
- https://www.kernel.org/doc/Documentation/devicetree/bindings/chosen.txt
- Similar setting exists for ACPI (SPCR)
- Userspace support needs to be done
- ACTION device tree files need to get chosen/stdout-path added
- Systemd should magically use that as serial console if
CONFIG_FHANDLE is enabled
Page size:
- 64/4K? (AArch64 Fedora/Red Hat kernels will differ: 4K for Fedora
for now, 64K for RH, there are a few issues with 64K left for triage)
- 32bit binaries compiled with latest binutils work with 64k pages
(trunk, so not in 2.25)
- 20-30 packages already fixed.
- probably more things making assumptions (BTRFS was glaring example)
Kernel trapping for old instructions not supported on v8. (mostly
android). SWP, SETEND, cp15 barriers.
- Some current packages have SWP due to embedded libatomicops. being fixed.
- need to make the personality do the right thing for chroots. linux32
says armv8l Would be nice to have a armv8l for building (or just fix
things)
- coreutils repeats uname name (aarch64 x3 - could be improved) Riku
will look into
32bit kernels on 64bit machines?
- Works with QEMU, but you don't get KVM acceleration.
- has worked on XEN - should still be working. IJC will fix if not.
Graphics
- framebuffer/drm/hdmi/panel drivers often half-done
- should DRM be built as modules or builtin?
- graphics developers prefer built-in, server people want them as modules...
- libdrm: enable tegra, exynos, freedreno, omap
- conclusion: nobody in the session was confident enough to take lead
on graphics issues
Applications still needing porting?
- golang in progress. Should arrive in 1.5 (release in August)
- gccgo also works for docker (esp gcc5)
- ocaml already fixed upstream
- mogodb, libv8, nodejs is tangled. (only new libv8 has arm64
support, mongodb forked the old one - big job to update). nodejs .12
needs to be released. ubuntu still maintains external libv8. suse gave
up. some pressure to stabilise ABI would help (and stop everyone
embedding copies)
- mono is done/built, still needs upstreaming ("some legal
issues"). $someone should build Microsofts code?
- GHCi - give some people a board, and wait longer
- freepascal, etc have bugs - time to tell upstreams that hardware exist
maybe hand out some boards to people to get stuff done.
Is booting solved problem?
- Document requirements/recommendations for OEMS
- Common requirements:
- boot into EL2 / Hyp mode!
- SPCR is serial port console redirection. No problem to
implement.(MS promise)
- there are two sets of EFIvars. You need to mount the newer
psedofilesystem (efivarfs). This is kernel build option.
ILP32 (some network people want it). Distros don't want to support
it!. Demo OE in a container and tell them to use that. (ssh broken on
ILP32) has different syscalls. Are they turned on?
Post-meeting discussion:
- Monthly Cross-Distro Google hangout planned (ACTION Riku)
Hi all,
This is just a quick heads-up to advise that I've found quite a nasty
bug in the Mozilla Javascript engine:
https://bugzilla.mozilla.org/show_bug.cgi?id=1143022
On systems running with a 48-bit VA, bit [47] is being incorrectly
masked out by the Javascript engine due to it being used internally
for tagging. This will cause random crashes (depending upon where mmap
returns memory).
In my case it even prevented the system from booting properly due to
polkitd crashing.
I would recommend anyone packaging the Mozilla Javascript engine to
keep an eye on this bug, I've flagged it as a "blocker".
Cheers,
--
Steve
Hi,
At connect, it was discussed if it is possible to run 32bit arm guests
on arm64 machines. This wanted especially by distributions that do
native builds, as server class 32bit hardware is rare. I've now added
this as testcase to linaro KVM CI, and wrote a small howto:
https://wiki.linaro.org/Core/Virtualization/HowTo/Arm32GuestOnAarch64
At least in my tests the VM returns "armv7l" for "uname -m", so this
is less confusing for build systems than chroots under Aarch64 where
linux32 personlity returns "armv8l".
Riku
Hi; this email is intended mainly to raise awareness of an
issue which some people here might care about but be currently
unaware of, and to see if anybody already has a plan to deal with it.
The VM System Specification for ARM Processors:
http://www.linaro.org/docs/vm-system-specification-arm-processors/
defines the contract between a VM implementaton (like KVM/QEMU or
Xen) and an image to run on it (like a distro's ISO installer image).
This specification mandates that we boot by treating the image as
a UEFI ISO image with a FAT32 filesystem. So the VM (and QEMU in
particular) needs to have a custom UEFI firmware image if it wants to
support booting these images, and that UEFI needs to understand FAT32.
Unfortunately the Tianocore UEFI implementation, though mostly BSD
licensed, has a critical piece which is not. The FAT filesystem driver
license is "BSD plus may only be used as part of EFI"; full license
text on this web page:
http://tianocore.sourceforge.net/wiki/Edk2-fat-driver
This is redistributable, but obviously not Free by either the OSI or
Debian Free Software Guidelines definitions. Accordingly it would have
to go in Debian "non-free" and other distro equivalents. (This is
exactly where the x86 Tianocore-derived UEFI implementation, OVMF,
is currently distributed.)
So the default place we're likely to end up if nobody takes any
action is that to use typically distributed ISO images with QEMU
the end-user will need to install the UEFI blob on their host system
from non-free or other distro equivalent (or download it themselves
from the upstream Tianocore website, perhaps).
The question then is: is this outcome unacceptable or undesirable
to anybody? Is anybody planning some other approach?
Some notes:
(1) The VM spec doesn't require that the VM supports *only* the UEFI
ISO image format, so it's not the case that QEMU is useless
without the UEFI firmware. For instance, you could have a Free UEFI
variant which omitted the FAT driver, and pick one of the other
filesystem types that Tianocore supports for your distro's CD images.
(Obviously those images would then probably not be able to boot on h/w,
and conversely "standard" images wouldn't boot on the Free-UEFI.)
(2) When describing or proposing a solution to this it's important
to be clear about the distinction between copyright licensing issues
and patent issues. The problem with the tianocore FAT driver is its
copyright license. Anybody proposing a reimplementation with a different
license needs to consider whether they run into patent problems.
(I'm not going to state an opinion either way about whether such
a reimplementation would potentially intersect any FAT related
patents or whether the MS license for purposes of implementing EFI
would avoid problems or not.)
(3) I imagine that a lot of this ground has already been covered
when considering x86 and OVMF; the only difference for ARM is that
there's no standard Free-licensed alternative firmware, so the problem
is a little more acute. If anybody has a pointer to previous
discussion or conclusions that might save us some argument.
(4) If the "default outcome" is actually at least not unacceptable
to anybody then we can of course simply do nothing...
thanks
-- PMM
Hi All,
This is just a heads-up that we've run into quite a horrible crash +
data corruption issue with MariaDB when running sysbench with a large
number of threads on a couple of AArch64 platforms.
I believe the problem can be attributed to the code used to release
the custom mutexes used by the storage engine.
I have logged a ticket (and attached an emergency fix) here:
https://mariadb.atlassian.net/browse/MDEV-6615
Cheers,
--
Steve Capper