Any plan for basic mainline linux support?

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sat Dec 28, 2019 5:29 pm

tobetter wrote:
Sat Dec 28, 2019 5:11 pm
Oh...can you see the file if my repository is added properly? If there no cotrib, please add it and do run apt update. This will let you install mali-bifrost-dkms to build mali_kbase.ko.
awesome now installed by adding contrib. Ill install ubuntu-desktop and try again

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sat Dec 28, 2019 6:42 pm

tobetter wrote:
Sat Dec 28, 2019 3:09 pm
Unlike Ubuntu Bionic, the version of Weston on Ubuntu Disco is 5.0.0 and gives an error that the symbol gbm_bo_get_plane_count is missing.
Ok with mutter it is now failing for missing "gbm_bo_create_with_modifiers". I also broke my installation trying to remove mali-bifrost-wayland-drivers to I could install compile dependencies for mutter. no commands would run were all complaining about missing libgbm1 share library. It can be a bit of a dependency nightmare trying to compile with mali binary packages conflicting.

User avatar
tobetter
Posts: 4460
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 71 times
Been thanked: 296 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by tobetter » Sat Dec 28, 2019 7:02 pm

brad wrote:
Sat Dec 28, 2019 6:42 pm
tobetter wrote:
Sat Dec 28, 2019 3:09 pm
Unlike Ubuntu Bionic, the version of Weston on Ubuntu Disco is 5.0.0 and gives an error that the symbol gbm_bo_get_plane_count is missing.
Ok with mutter it is now failing for missing "gbm_bo_create_with_modifiers". I also broke my installation trying to remove mali-bifrost-wayland-drivers to I could install compile dependencies for mutter. no commands would run were all complaining about missing libgbm1 share library. It can be a bit of a dependency nightmare trying to compile with mali binary packages conflicting.
Can you install another package libgbm1-compat which has the missing symbols of libgbm actually libmali from Amlogic. Installing the package will let you load /usr/lib/aarch64-linux-gnu/libgbm-compat.so whenever a command is invoked and it won't make the error.

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sat Dec 28, 2019 8:06 pm

tobetter wrote:
Sat Dec 28, 2019 7:02 pm
Can you install another package libgbm1-compat which has the missing symbols of libgbm actually libmali from Amlogic. Installing the package will let you load /usr/lib/aarch64-linux-gnu/libgbm-compat.so whenever a command is invoked and it won't make the error.
Unfortunately not, I've now rebooted and cannot get back in but will re-flash.

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sun Dec 29, 2019 2:44 pm

I found some more info from mutter (strangely had to use valgrind to get them)

(mutter:1775): mutter-WARNING **: 03:24:13.948: Failed to initialize accelerated iGPU/dGPU framebuffer sharing: Missing OpenGL ES extensions: EGL_EXT_device_base
/usr/bin/Xwayland: symbol lookup error: /usr/bin/Xwayland: undefined symbol: gbm_bo_create_with_modifiers
(mutter:1775): mutter-WARNING **: 03:24:20.595: X Wayland crashed; exiting

When this happens gnome / kde falls back to x11 (non accelerated) using llvmpipe

Might be able to workaround gbm_bo_create_with_modifiers but not the missing EGL_EXT_device_base I suspect

I also triied using a rockchip libmali - libmali-rk-bifrost-g31-rxp0-x11-gbm_1.7-1_arm64 but the kernel driver is too new and I could not make older kernel driver work with 5.4

User avatar
tobetter
Posts: 4460
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 71 times
Been thanked: 296 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by tobetter » Sun Dec 29, 2019 4:51 pm

brad wrote:
Sun Dec 29, 2019 2:44 pm
I found some more info from mutter (strangely had to use valgrind to get them)

(mutter:1775): mutter-WARNING **: 03:24:13.948: Failed to initialize accelerated iGPU/dGPU framebuffer sharing: Missing OpenGL ES extensions: EGL_EXT_device_base
/usr/bin/Xwayland: symbol lookup error: /usr/bin/Xwayland: undefined symbol: gbm_bo_create_with_modifiers
(mutter:1775): mutter-WARNING **: 03:24:20.595: X Wayland crashed; exiting

When this happens gnome / kde falls back to x11 (non accelerated) using llvmpipe

Might be able to workaround gbm_bo_create_with_modifiers but not the missing EGL_EXT_device_base I suspect

I also triied using a rockchip libmali - libmali-rk-bifrost-g31-rxp0-x11-gbm_1.7-1_arm64 but the kernel driver is too new and I could not make older kernel driver work with 5.4
I've made kmscube and another example gbm_es2_demo, and now I am looking into weston why it does not show up the screen. Look like weston-5 is not working properly.

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sun Dec 29, 2019 5:37 pm

tobetter wrote:
Sun Dec 29, 2019 4:51 pm
another example gbm_es2_demo, and now I am looking into weston why it does not show up the screen. Look like weston-5 is not working properly.
weston is overwriting useful error information but I managed to pull it

Code: Select all

==1424== Command: weston -B drm-backend.so
==1424==
Date: 2019-12-29 UTC
[08:18:09.713] weston 5.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: unknown (not built from git or tarball)
[08:18:09.829] Command line: weston -B drm-backend.so
[08:18:09.831] OS: Linux, 5.4.0-odroid-arm64, #1 SMP PREEMPT Ubuntu 5.4.6-201912241446~disco (2019-12-24), aarch64
[08:18:09.857] Starting with no config file.
[08:18:09.905] Output repaint window is 7 ms maximum.
[08:18:09.933] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/drm-backend.so'
[08:18:10.133] initializing drm backend
[08:18:10.719] logind: session control granted
[08:18:11.062] using /dev/dri/card0
[08:18:11.069] DRM: supports universal planes
[08:18:11.070] DRM: supports atomic modesetting
[08:18:11.071] DRM: supports picture aspect ratio
[08:18:11.072] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/gl-renderer.so'
MESA-LOADER: failed to open meson (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)
failed to load driver: meson
[08:18:18.273] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
               EGL_KHR_platform_gbm EGL_KHR_platform_wayland
               EGL_EXT_platform_wayland
[08:18:18.292] warning: either no EGL_EXT_platform_base support or specific platform support; falling back to eglGetDisplay.
[08:18:18.298] failed to create display
[08:18:18.417] failed to initialize egl
[08:18:18.458] fatal: failed to create compositor backend
I have been looking into how to workaround the missing EGL_EXT_platform_base extension (same issue with mutter) with no solutions as yet. If I remember correctly from the C2 libmali was missing the same extention in the blob and a new blob solved it. viewtopic.php?f=138&t=28426&p=210786&hi ... se#p211399

Does amlogic / arm have any other blobs for bifrost we can check?

User avatar
memeka
Posts: 4418
Joined: Mon May 20, 2013 10:22 am
languages_spoken: english
ODROIDs: XU rev2 + eMMC + UART
U3 + eMMC + IO Shield + UART
Has thanked: 2 times
Been thanked: 57 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by memeka » Sun Dec 29, 2019 8:28 pm

In the log above, I think it’s using mesa/panfrost.
So make sure you have panfrost disabled in kernel config and also with ldd that it’s loading the correct libEGL files (links to libmali).
Also for missing gbm symbols, try winning Weston/mutter with LD_PRELOAD=/path/libgbm_compat.so weston_launch.
If you have more patience I’ll look into it in a week or so :)

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sun Dec 29, 2019 8:41 pm

memeka wrote:
Sun Dec 29, 2019 8:28 pm
In the log above, I think it’s using mesa/panfrost.
So make sure you have panfrost disabled in kernel config and also with ldd that it’s loading the correct libEGL files (links to libmali).
Also for missing gbm symbols, try winning Weston/mutter with LD_PRELOAD=/path/libgbm_compat.so weston_launch.
If you have more patience I’ll look into it in a week or so :)
panfrost is a module but was not being loaded so I think that is ok. Also it was using the libMali.so drivers. weston runs in software mode when I give it a --use-pixman

For interests sake I did try panfrost not expecting much and weston looks like this, seems to be missing the support as expected for bifrost and trying to fall back to software so will have to wait some more for this.

Code: Select all

==1166== Command: weston -B drm-backend.so
==1166==
Date: 2019-12-29 UTC
[10:52:14.606] weston 5.0.0
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: unknown (not built from git or tarball)
[10:52:14.695] Command line: weston -B drm-backend.so
[10:52:14.697] OS: Linux, 5.4.0-odroid-arm64, #1 SMP PREEMPT Ubuntu 5.4.6-201912241446~disco (2019-12-24), aarch64
[10:52:14.718] Starting with no config file.
[10:52:14.757] Output repaint window is 7 ms maximum.
[10:52:14.780] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/drm-backend.so'
[10:52:14.975] initializing drm backend
[10:52:15.455] logind: session control granted
[10:52:15.732] using /dev/dri/card0
[10:52:15.736] DRM: supports universal planes
[10:52:15.737] DRM: supports atomic modesetting
[10:52:15.738] DRM: supports picture aspect ratio
[10:52:15.739] Loading module '/usr/lib/aarch64-linux-gnu/libweston-5/gl-renderer.so'
MESA-LOADER: failed to open kms_swrast (search paths /usr/local/lib/aarch64-linux-gnu/dri)
failed to load driver: kms_swrast
[10:52:20.330] EGL client extensions: EGL_EXT_client_extensions
               EGL_EXT_device_base EGL_EXT_device_enumeration
               EGL_EXT_device_query EGL_EXT_platform_base
               EGL_KHR_client_get_all_proc_addresses EGL_KHR_debug
               EGL_EXT_platform_wayland EGL_EXT_platform_x11
               EGL_MESA_platform_gbm EGL_MESA_platform_surfaceless
               EGL_EXT_platform_device
libEGL warning: did not find extension DRI_DRI2 version 2
[10:52:20.384] failed to initialize display
[10:52:20.386] EGL error state: EGL_NOT_INITIALIZED (0x3001)
[10:52:20.454] failed to initialize egl
[10:52:20.489] fatal: failed to create compositor backend

User avatar
tobetter
Posts: 4460
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 71 times
Been thanked: 296 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by tobetter » Sun Dec 29, 2019 10:00 pm

I've updated my repository to run Weston and glmark2-es2-wayland on Disco. For some reason, I had to do some trick with libgbm1-compat package as well as the Weston has to apply one patch on top of 5.0.0-3. After these updates, I am also able to run kmscube and gbm_es2_demo.
I've uploaded the patch to my git as well.
https://github.com/tobetter/weston/tree ... on-5.0.0-3
https://github.com/tobetter/gbm_es2_demo

This is the commands to install necessary components what I tested on the Ubuntu Disco minimal image.

Code: Select all

sudo apt update
sudo apt install -y linux-headers-$(uname -r)
sudo apt install -y mali-bifrost-wayland-driver mali-bifrost-dkms
sudo apt install -y libgbm-dev libgbm1-compat
sudo reboot
sudo apt install -y weston glmark2-es2-wayland
You should be able to check if packages are properly updated.

Code: Select all

$ lsmod | grep mali
mali_kbase            450560  3

Code: Select all

$ uname -a
Linux disco-minimal 5.4.0-odroid-arm64 #1 SMP PREEMPT Ubuntu 5.4.6-201912241446~disco (2019-12-24) aarch64 aarch64 aarch64 GNU/Linux
$ dpkg -l | grep weston
ii  libweston-5-0                     5:5.0.0-3+201912292123~disco          arm64        reference implementation of a wayland compositor (shared libs)
ii  weston                            5:5.0.0-3+201912292123~disco          arm64        reference implementation of a wayland compositor

Code: Select all

$ dpkg -S /usr/lib/aarch64-linux-gnu/libgbm*
libgbm-dev:arm64: /usr/lib/aarch64-linux-gnu/libgbm.so
libgbm1:arm64: /usr/lib/aarch64-linux-gnu/libgbm.so.1
libgbm1:arm64: /usr/lib/aarch64-linux-gnu/libgbm.so.1.0.0

Code: Select all

$ dpkg -S /usr/lib/aarch64-linux-gnu/lib*GL*
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libEGL.so
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libEGL.so.1
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libEGL.so.1.1.0
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libGLESv1_CM.so
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libGLESv1_CM.so.1
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libGLESv2.so
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libGLESv2.so.2
mali-bifrost-wayland-driver:arm64: /usr/lib/aarch64-linux-gnu/libGLESv2.so.2.1.0
Last edited by tobetter on Mon Dec 30, 2019 8:49 am, edited 1 time in total.
These users thanked the author tobetter for the post:
brad (Sun Dec 29, 2019 10:27 pm)

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Sun Dec 29, 2019 10:27 pm

@tobetter very nice :) I can try to test some more tomorrow.

Edit: I could not wait gnome is now working on wayland :D Performance is a little laggy at times but I feel this is in the kernel rather than gpu. Thank you for your hard work

I am seeing this in dmesg which may be related

Code: Select all

[  162.247965] meson_clk_pll_set_rate: pll did not lock, trying to restore old rate 3792000000
[  177.527644] meson_clk_pll_set_rate: pll did not lock, trying to restore old rate 3792000000
[  256.389379] broken atomic modeset userspace detected, disabling atomic
[  286.539776] broken atomic modeset userspace detected, disabling atomic
[  369.935761] meson_clk_pll_set_rate: pll did not lock, trying to restore old rate 3216000000
[  509.203993] meson_clk_pll_set_rate: pll did not lock, trying to restore old rate 3408000000
[  565.235194] meson_clk_pll_set_rate: pll did not lock, trying to restore old rate 3216000000
[  992.980580] meson_clk_pll_set_rate: pll did not lock, trying to restore old rate 3216000000
[ 1082.701837] hrtimer: interrupt took 13832358 ns
Another small issue I have is that usb devices are not detected sometimes, I have to unplug and plug back in a few times to get them to work.

I could not get kde to start will look at this some more tomorrow

For fun here is a screenshot from gnome on wayland
Screenshot from 2019-12-29 14-34-11.png
Screenshot from 2019-12-29 14-34-11.png (188.18 KiB) Viewed 2270 times
Screenshot from 2019-12-29 14-43-08.png
Screenshot from 2019-12-29 14-43-08.png (1011.5 KiB) Viewed 2270 times
These users thanked the author brad for the post (total 2):
Sav (Mon Dec 30, 2019 12:35 am) • odroid (Thu Jan 02, 2020 9:29 am)

User avatar
tobetter
Posts: 4460
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 71 times
Been thanked: 296 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by tobetter » Sun Dec 29, 2019 11:54 pm

@brad, you are ahead of me. I was about to post the same and wanted to make sure it really is working on Wayland. Actually, I am building a complete Gnome Desktop image with my changes, it will take some time. Let me do the same with the fresh image and will upload to my repository.

I think N2 mainline kernel debugging party could be started in a good shape for 2020. :D

Thank you, and big thank you @memeka and @Neil Armstrong.
These users thanked the author tobetter for the post:
Sav (Mon Dec 30, 2019 12:35 am)

Sav
Posts: 108
Joined: Mon Sep 02, 2019 2:33 am
languages_spoken: english
ODROIDs: odroid-n2
Has thanked: 26 times
Been thanked: 6 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by Sav » Mon Dec 30, 2019 12:37 am

tobetter wrote:@brad, you are ahead of me. I was about to post the same and wanted to make sure it really is working on Wayland. Actually, I am building a complete Gnome Desktop image with my changes, it will take some time. Let me do the same with the fresh image and will upload to my repository.

I think N2 mainline kernel debugging party could be started in a good shape for 2020. :D

Thank you, and big thank you @memeka and @Neil Armstrong.
Thanks a lot. I'm looking forward to test It.

Inviato dal mio GM1913 utilizzando Tapatalk


brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Mon Dec 30, 2019 10:50 am

tobetter wrote:
Sun Dec 29, 2019 11:54 pm
I think N2 mainline kernel debugging party could be started in a good shape for 2020. :D
I think so :)

Can you suggest how I can download your 5.4.0 kernel source package onto the system? I have a few things I would like to try

- enable some debug and kernel latency tracking (kworker event per cpu seems to be causing some small stalls & usb debug)
- Add a new kernel package with realtime patches applied

Thanks Brad.

User avatar
tobetter
Posts: 4460
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 71 times
Been thanked: 296 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by tobetter » Mon Dec 30, 2019 11:35 am

brad wrote:
Mon Dec 30, 2019 10:50 am
tobetter wrote:
Sun Dec 29, 2019 11:54 pm
I think N2 mainline kernel debugging party could be started in a good shape for 2020. :D
I think so :)

Can you suggest how I can download your 5.4.0 kernel source package onto the system? I have a few things I would like to try

- enable some debug and kernel latency tracking (kworker event per cpu seems to be causing some small stalls & usb debug)
- Add a new kernel package with realtime patches applied

Thanks Brad.
My 5.4 kernel is built with this branch, I am not building the source package as of now.
https://github.com/tobetter/linux/tree/stable-v5.4

Your patches are always welcome. :)

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Mon Dec 30, 2019 12:12 pm

brad wrote:
Sun Dec 29, 2019 10:27 pm
...Performance is a little laggy at times ...
Maybe pinning it to a big core, smp_affinity_list, or the minimum clock frequency 100Mhz to 667Mhz patch.

So many things to test on wayland; vpu, gl4es, GLESv2-QT5.

User avatar
tobetter
Posts: 4460
Joined: Mon Feb 25, 2013 10:55 am
languages_spoken: Korean, English
ODROIDs: X, X2, U2, U3, XU3, C1
Location: Paju, South Korea
Has thanked: 71 times
Been thanked: 296 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by tobetter » Tue Dec 31, 2019 3:08 am

I've failed to build a bootable Ubuntu Disco image that Gnom Session does not come on booting, I have not figured out yet. If any of you want to try Ubuntu Disco, please use the Ubuntu Disco Minimal image or Ubuntu Netboot installer.
http://ppa.linuxfactory.or.kr/installer ... etinst.img
viewtopic.php?f=182&t=37109

In order to install the Wayland userspace driver, I've made mali-bifrost-wayland-driver to install other packages except for Linux kernel header package so the command is like this.

Code: Select all

sudo apt update
sudo apt install -y linux-headers-$(uname -r)
sudo apt install -y mali-bifrost-wayland-driver
sudo reboot
Using the Netboot installer, the default installed kernel version is 4.9 but you can switch to 5.4.6 with a couple of commands.

Code: Select all

$ sudo apt update
$ sudo apt install linux-image-odroid-generic linux-headers-odroid-generic
$ sudo reboot

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Wed Jan 01, 2020 12:50 am

If anyone is playing with tobetter's minimal image here is some more info for installing gnome and wayland

As per tobetter's instructions install the kernel and userspace mali drivers

NOTE: Edit the file "/etc/apt/sources.list.d/ppa-linuxfactory-or-kr.list" and add the word contrib to the end of the lines like this to install mali

Code: Select all

deb http://ppa.linuxfactory.or.kr disco main non-free contrib
deb-src http://ppa.linuxfactory.or.kr disco main non-free contrib

Code: Select all

sudo apt update
sudo apt install -y linux-headers-$(uname -r)
sudo apt install -y mali-bifrost-wayland-driver
sudo reboot
Now you can install gnome with the following packages

Code: Select all

sudo apt-get install ubuntu-desktop gnome-session-wayland xwayland weston glmark2-es2-wayland 
- ubuntu-desktop is full install you can use ubuntu-desktop-minimal instead if you don't want it all or short on space
- gnome-session-wayland will enable the wayland backend. It will also enable you to use the ''cog" icon on the login screen to select wayland versions. You can use Ubuntu or GNOME (they are both gnome but different look/ feel)
- xwayland will provide the ability to run X11 applications on top of the wayland backend - it works well
- weston - another wayland desktop manager helpful for testing basic functions with egl backend
- glmark2-es2-wayland - you can use this to confirm that egl is working once logged into gnome

You should add your user to the following groups

Code: Select all

$ usermod -aG video odroid
$ usermod -aG tty odroid
$ usermod -aG audio odroid
- video allows the user to access the card0 and fb0 devices which is needed for EGL support
- tty is nice to have if you want to ensure your user can access all the tty consoles if running egl from non desktop environment
- audio allows access to alsa sound pcm interfaces although its not working out of box yet for HDMI (I have been able to get audio over HDMI working via alsa but been a manual process configuring sources, sinks etc and will often cause my machine to crash)

You can now reboot and should see a gdm login on boot

Code: Select all

$ sudo reboot
Im also a big fan of kde/ plasma desktop but unable to get it to work when I installed it, when I start in manually in wayland mode it causes all my tty's to go blank, something going on with DRM here so I will try again another time.

For Gnome Firefox and Chromium run in X11 mode (ie they use xwayland which is an interface to allow X11 to run on top of wayland). It works relatively well even for video although not 100%. At 1080p both chrome and firefox can display video quiet well and sit on a steady load of around 4. The xwayland process converting to wayland uses minimal CPU. I could even watch 4K quality video in chrome (although I only have a 1080p display)

Firefox can be started in wayland mode and shows all the arm mali extensions but it says the GPU is only using llvmpipe and that acceleration is disabled by vendor. In this mode xwayland is not used and response is a little better with native wayland backend. Video quality is a little better and load a tiny bit lower.

To start firefox in this mode do the following from command line

Code: Select all

$ export MOZ_ENABLE_WAYLAND=1;
$ firefox
Chromium does not support wayland with the ubuntu release and there are no nightly builds from Mozilla for arm64 on Linux. I might try to compile from source at some stage. I did try to install the amlogic version binary of chromium (https://dn.odroid.com/S922X/ODROID-N2/Wayland/) but missing libraries were needed (I think it was libamcodec.so)

Im trying to work on alsa and pulse audio config at the moment to get HDMI audio working with a default configuration, its a bit buggy and causes my machine to freeze at times so it a bit of trial and error.

I had some issues with USB devices intermittently not connecting on boot and having to unplug and re plug to get them to work. I enable debug in the kernel but since then the problem no longer occurs so im still waiting to reproduce this.

The machine seems a bit laggy at times which appears to be inside the kernel (when I say laggy I mean mouse movement, some very small freeze in video, etc) and it appears to be related to the kernel (kworker processes). I did some initial tracing and looks to be related to the emmc card IRQ but im still unsure at the moment need to recompile with more debug and tracing. Ive lost my UART serial adaptor so im struggling to see debug messaging on the console so will have a good look for it tomorrow.

Happy new year all! Hope you all stay safe and see you next year. (Well its already 2020 here in Australia) : )
Last edited by brad on Thu Jan 02, 2020 11:58 am, edited 2 times in total.

chewitt
Posts: 27
Joined: Mon Aug 12, 2019 12:27 pm
languages_spoken: english
Has thanked: 0
Been thanked: 23 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by chewitt » Wed Jan 01, 2020 2:12 am

@brad have a look at my linux/amlogic-5.5-integ and LE/amlogic-master branch for audio patches, mixer settings and alsa conf .. all working for PCM output AFAICT.
These users thanked the author chewitt for the post:
brad (Wed Jan 01, 2020 11:23 am)

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Wed Jan 01, 2020 11:20 pm


Sav
Posts: 108
Joined: Mon Sep 02, 2019 2:33 am
languages_spoken: english
ODROIDs: odroid-n2
Has thanked: 26 times
Been thanked: 6 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by Sav » Thu Jan 02, 2020 2:12 am

tobetter wrote:
Tue Dec 31, 2019 3:08 am
I've failed to build a bootable Ubuntu Disco image that Gnom Session does not come on booting, I have not figured out yet. If any of you want to try Ubuntu Disco, please use the Ubuntu Disco Minimal image or Ubuntu Netboot installer.
http://ppa.linuxfactory.or.kr/installer ... etinst.img
viewtopic.php?f=182&t=37109

In order to install the Wayland userspace driver, I've made mali-bifrost-wayland-driver to install other packages except for Linux kernel header package so the command is like this.

Code: Select all

sudo apt update
sudo apt install -y linux-headers-$(uname -r)
sudo apt install -y mali-bifrost-wayland-driver
sudo reboot
Using the Netboot installer, the default installed kernel version is 4.9 but you can switch to 5.4.6 with a couple of commands.

Code: Select all

$ sudo apt update
$ sudo apt install linux-image-odroid-generic linux-headers-odroid-generic
$ sudo reboot
I can't install the wayland driver on disco minimal:

Code: Select all

odroid@disco-minimal:~$ sudo apt install -y mali-bifrost-wayland-driver
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 mali-bifrost-wayland-driver : Depends: mali-bifrost-dkms but it is not installable
E: Unable to correct problems, you have held broken packages.

Sav
Posts: 108
Joined: Mon Sep 02, 2019 2:33 am
languages_spoken: english
ODROIDs: odroid-n2
Has thanked: 26 times
Been thanked: 6 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by Sav » Thu Jan 02, 2020 2:25 am

Sorry, I missed a previous tobetter's post about his "contrib" repository.

Sav
Posts: 108
Joined: Mon Sep 02, 2019 2:33 am
languages_spoken: english
ODROIDs: odroid-n2
Has thanked: 26 times
Been thanked: 6 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by Sav » Thu Jan 02, 2020 4:00 am

Thanks Brad. I'm posting from firefox under gnome-wayland.
Some bugs:
glmark2-es2-wayland crashed with segmentation fault

Firefox runs fine but I have some rendering error. For example this site is displayed in pink.

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Thu Jan 02, 2020 8:29 am

Sav wrote:
Thu Jan 02, 2020 4:00 am
Thanks Brad. I'm posting from firefox under gnome-wayland.
Some bugs:
glmark2-es2-wayland crashed with segmentation fault

Firefox runs fine but I have some rendering error. For example this site is displayed in pink.
I added a quick note about the contrib missing from the sources list.

Interesting I haven't seen any rendering issues myself like that, I wonder if its a one off thing and reboot would fix issue or its related to something else. I see the segmentation fault at the end of glmark2-es2-wayland as well. Did it display the test on your screen first?

Thanks to @chewitt for the alsa config exactly what I was after, I need to add some pactches to the kernel now to see if I can get that part working.

I force enabled GPU acceleration in Firefox wayland mode but it starts as a black screen so need to look further at that also and try out chromium some more.

I also see Neil Armstrong is posting HEVC and VP9 decoding support patches in the mailing list but unsure if we will be able to get this working without panfrost.

Sav
Posts: 108
Joined: Mon Sep 02, 2019 2:33 am
languages_spoken: english
ODROIDs: odroid-n2
Has thanked: 26 times
Been thanked: 6 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by Sav » Thu Jan 02, 2020 9:02 am

Glmark2 displayed the Windows test and crashed at the end After displayng the result value (which is way lower than the One achieved in a simply Weston environment).
Rebooting the n2 solved the Firefox rendering issue.
Thanks for your effort.


Inviato dal mio iPad utilizzando Tapatalk

erm67
Posts: 26
Joined: Sat Jun 22, 2019 10:53 pm
languages_spoken: english,german,italian
ODROIDs: N2
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Any plan for basic mainline linux support?

Unread post by erm67 » Thu Jan 02, 2020 12:18 pm

brad wrote:
Sat Dec 21, 2019 12:14 pm
erm67 wrote:
Fri Dec 20, 2019 7:14 am
Maybe it is not important but I added the fdt addr command to my boot.ini as well like this:
I don't believe the vendor uboot can correctly understand the format of mainline dtb so it is unable to read or modify the image even if it knows the memory location.
uboot has no problems reading and manipulating mainline dtb apparently:

Code: Select all

odroidn2#fatload mmc 1:1 0x1000000 n2.dtb
reading n2.dtb
46757 bytes read in 10 ms (4.5 MiB/s)
odroidn2#fdt addr 0x1000000
odroidn2#fdt list
/ {
        interrupt-parent = <0x00000001>;
        #address-cells = <0x00000002>;
        #size-cells = <0x00000002>;
        compatible = "hardkernel,odroid-n2", "amlogic,s922x", "amlogic,g12b";
        model = "Hardkernel ODROID-N2";
        chosen {
        };
        efuse {
        };
        psci {
        };
        reserved-memory {
        };
        secure-monitor {
        };
        soc {
        };
        timer {
        };
        xtal-clk {
        };
        audio-controller-0 {
        };
        audio-controller-1 {
        };
        audio-controller-2 {
        };
        cpus {
        };
        opp-table-0 {
        };
        opp-table-1 {
        };
        aliases {
        };
        memory@0 {
        };
        emmc-pwrseq {
        };
        leds {
        };
        regulator-tflash_vdd {
        };
        gpio-regulator-tf_io {
        };
        regulator-flash_1v8 {
        };
        regulator-main_12v {
        };
        regulator-vcc_5v {
        };
        regulator-vcc_1v8 {
        };
        regulator-vcc_3v3 {
        };
        regulator-vddcpu-a {
        };
        regulator-vddcpu-b {
        };
        regulator-hub_5v {
        };
        regulator-usb_pwr_en {
        };
        regulator-vddao_1v8 {
        };
        regulator-vddao_3v3 {
        };
        hdmi-connector {
        };
        sound {
        };
};
odroidn2#

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Thu Jan 02, 2020 12:41 pm

erm67 wrote:
Thu Jan 02, 2020 12:18 pm
I don't believe the vendor uboot can correctly understand the format of mainline dtb so it is unable to read or modify the image even if it knows the memory location.
I must have been wrong, I recall I had issues when I first got my N2 trying with kernel 5.1 but looks like I was on the wrong path with the error messages viewtopic.php?f=176&t=33993#p250058

erm67
Posts: 26
Joined: Sat Jun 22, 2019 10:53 pm
languages_spoken: english,german,italian
ODROIDs: N2
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Any plan for basic mainline linux support?

Unread post by erm67 » Thu Jan 02, 2020 6:29 pm

Maybe there was really a problem with the dtb, who knows .... I hooked the serial yesterday because I could not boot after installing kernel 5.4.7 to the sd card, it turned out that I probably typed shutdown too soon and the sd card was completely destroyed :-) even the partitions were missing.

Also it happened to me as well that after the uboot boot(x) command fails and control returns to uboot, it gives out those messages about the dtb, however without a fdt addr command uboot doesn't know that what you loaded was a dtb. And that is probably why odroid uses the fdt addr command, if the boot fails the operator at the console can fix the dtb.
The errors about a dtbo partition not found are probably because it looks for a dtb.img packed with mkdtimg: https://source.android.com/devices/arch ... partitions

Once upon a time libreelec was shipping a regular dtb renamed to dtb.img but apparently that is not the correct way. At the next kernel update snafu I will try with a dtb.img correctly formatted :-)

erm67
Posts: 26
Joined: Sat Jun 22, 2019 10:53 pm
languages_spoken: english,german,italian
ODROIDs: N2
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Any plan for basic mainline linux support?

Unread post by erm67 » Thu Jan 02, 2020 9:34 pm

Did Anyone notice this message with kernel 5.5?

[ 0.112815] ARM_SMCCC_ARCH_WORKAROUND_1 missing from firmware

https://lore.kernel.org/linux-arm-kerne ... ation.org/
We currently have a list of CPUs affected by Spectre-v2, for which
we check that the firmware implements ARCH_WORKAROUND_1. It turns
out that not all firmwares do implement the required mitigation,
and that we fail to let the user know about it.

Instead, let's slightly revamp our checks, and rely on a whitelist
of cores that are known to be non-vulnerable, and let the user know
the status of the mitigation in the kernel log.
It's me missing some updates or the firmware or what?

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Fri Jan 03, 2020 11:31 am

elatllat wrote:
Mon Dec 30, 2019 12:12 pm
brad wrote:
Sun Dec 29, 2019 10:27 pm
...Performance is a little laggy at times ...
Maybe pinning it to a big core, smp_affinity_list, or the minimum clock frequency 100Mhz to 667Mhz patch.

So many things to test on wayland; vpu, gl4es, GLESv2-QT5.
I think you are on to something here I need to look further and the minimum clock frequency patch, when I completely disable DVFS user experiance is much better (no more mouse laging etc) even though the cpu cores are running at a limited speed.

With DVFS enabled I did some latency tracing and I found some very large latencies performing hard irq operations when it was switching frequencies, especially during disk writes to the emmc (using irq 16 for the emmc).

I might ask Neil for more information on this as the latencies seem to be occuring from the gic interupt driver combined with core frequency changes and monitoring.
These users thanked the author brad for the post:
rooted (Wed Jan 08, 2020 10:47 am)

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Mon Jan 06, 2020 1:07 am

Last edited by elatllat on Mon Jan 06, 2020 8:27 pm, edited 1 time in total.
These users thanked the author elatllat for the post:
istanbulls (Mon Jan 06, 2020 2:33 am)

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Mon Jan 06, 2020 4:26 pm

brad wrote:
Fri Jan 03, 2020 11:31 am
elatllat wrote:
Mon Dec 30, 2019 12:12 pm
brad wrote:
Sun Dec 29, 2019 10:27 pm
...Performance is a little laggy at times ...
Maybe pinning it to a big core, smp_affinity_list, or the minimum clock frequency 100Mhz to 667Mhz patch.

So many things to test on wayland; vpu, gl4es, GLESv2-QT5.
I think you are on to something here I need to look further and the minimum clock frequency patch, when I completely disable DVFS user experiance is much better (no more mouse laging etc) even though the cpu cores are running at a limited speed.

With DVFS enabled I did some latency tracing and I found some very large latencies performing hard irq operations when it was switching frequencies, especially during disk writes to the emmc (using irq 16 for the emmc).

I might ask Neil for more information on this as the latencies seem to be occuring from the gic interupt driver combined with core frequency changes and monitoring.
So this ended up due to me not setting the governor to performance. Now with DVFS enabled and performance governor set the lag is gone.

Realtime dev kernel also boots fine with the 5.4.6-rt3 patches applied on tobetter's kernel and configured in PREEMT_RT mode. (Still trying to package it up into Ubuntu debs properly)

Code: Select all

root@disco-minimal:/home/odroid# uname -a
Linux disco-minimal 5.4.6-rt3rt-arm64-gb6720efa3-dirty #1 SMP PREEMPT_RT Fri Jan 3 03:34:28 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
I still haven't done any testing or tuning of it yet but I want to connect some USB audio and see what kind of DSP latencies it can achieve and also test with machinekit for motor control, ill add those results to this discussion once done - viewtopic.php?f=179&t=33966

I still haven't played with the onboard audio / hdmi audio again but will try this soon
These users thanked the author brad for the post (total 2):
Sav (Mon Jan 06, 2020 5:37 pm) • odroid (Mon Jan 06, 2020 5:57 pm)

User avatar
odroid
Site Admin
Posts: 33043
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 296 times
Been thanked: 417 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by odroid » Tue Jan 07, 2020 6:16 pm

Can you guys please run a simple 7-zip benchmark on Kernel 5.4.x for comparison?
My N2 runs Kernel 4.9.196 with performance governor and my score is around 8,100 as expected. Note that XU4 was around 7,000 and C2 was around 4,000.

Code: Select all

root@odroid:~# 7z b -mmt 1

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:  1839  1797  1798  1798  1797  1798  1797  1798  1797

RAM size:    3712 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       6068   538   1097   5903  |     120368   545   1884  10265
23:       5973   552   1102   6086  |     117622   545   1868  10178
24:       5777   562   1104   6212  |     114178   542   1849  10022
25:       5651   574   1124   6453  |     110612   542   1816   9844
----------------------------------  | ------------------------------
Avr:             557   1107   6164  |              543   1854  10077
Tot:             550   1481   8120

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Tue Jan 07, 2020 9:56 pm

Code: Select all

N2> 7z b -mmt 1

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:  1889  1892  1892  1892  1892  1892  1892  1892  1892

RAM size:    3743 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       4338   461    916   4220  |      78068   525   1268   6658
23:       4255   464    933   4335  |      81494   531   1327   7052
24:       4207   480    942   4524  |      79413   527   1324   6970
25:       4136   497    950   4722  |      77886   533   1301   6931
----------------------------------  | ------------------------------
Avr:             476    935   4450  |              529   1305   6903
Tot:             502   1120   5677
N2> uname -r
5.4.8-dirty
N2> grep . /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:ondemand
...(Edited out some wrong info)...
Last edited by elatllat on Wed Jan 08, 2020 10:09 am, edited 1 time in total.

User avatar
odroid
Site Admin
Posts: 33043
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 296 times
Been thanked: 417 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by odroid » Wed Jan 08, 2020 9:33 am

Thank you for the test result. It seems to be around 30% slower than stock Kernel 4.9. :(

Can you change "scaling_min_freq" to 1.896Ghz(for little cores) and 1.800Ghz(for big cores) to emulate the performance governor?

How about the DDR4 memory band width?

Code: Select all

root@odroid:~# mbw 100
Long uses 8 bytes. Allocating 2*13107200 elements = 209715200 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0       Method: MEMCPY  Elapsed: 0.02845        MiB: 100.00000  Copy: 3514.691 MiB/s
1       Method: MEMCPY  Elapsed: 0.02818        MiB: 100.00000  Copy: 3548.994 MiB/s
2       Method: MEMCPY  Elapsed: 0.02820        MiB: 100.00000  Copy: 3545.974 MiB/s
3       Method: MEMCPY  Elapsed: 0.02826        MiB: 100.00000  Copy: 3538.070 MiB/s
4       Method: MEMCPY  Elapsed: 0.02819        MiB: 100.00000  Copy: 3547.483 MiB/s
5       Method: MEMCPY  Elapsed: 0.02816        MiB: 100.00000  Copy: 3550.758 MiB/s
6       Method: MEMCPY  Elapsed: 0.02822        MiB: 100.00000  Copy: 3543.335 MiB/s
7       Method: MEMCPY  Elapsed: 0.02820        MiB: 100.00000  Copy: 3546.602 MiB/s
8       Method: MEMCPY  Elapsed: 0.02821        MiB: 100.00000  Copy: 3544.591 MiB/s
9       Method: MEMCPY  Elapsed: 0.02864        MiB: 100.00000  Copy: 3491.133 MiB/s
AVG     Method: MEMCPY  Elapsed: 0.02827        MiB: 100.00000  Copy: 3537.068 MiB/s
0       Method: DUMB    Elapsed: 0.02822        MiB: 100.00000  Copy: 3544.214 MiB/s
1       Method: DUMB    Elapsed: 0.02816        MiB: 100.00000  Copy: 3551.389 MiB/s
2       Method: DUMB    Elapsed: 0.02824        MiB: 100.00000  Copy: 3541.453 MiB/s
3       Method: DUMB    Elapsed: 0.02819        MiB: 100.00000  Copy: 3547.106 MiB/s
4       Method: DUMB    Elapsed: 0.02818        MiB: 100.00000  Copy: 3548.742 MiB/s
5       Method: DUMB    Elapsed: 0.02821        MiB: 100.00000  Copy: 3545.219 MiB/s
6       Method: DUMB    Elapsed: 0.02820        MiB: 100.00000  Copy: 3546.225 MiB/s
7       Method: DUMB    Elapsed: 0.02825        MiB: 100.00000  Copy: 3540.324 MiB/s
8       Method: DUMB    Elapsed: 0.02819        MiB: 100.00000  Copy: 3546.980 MiB/s
9       Method: DUMB    Elapsed: 0.02815        MiB: 100.00000  Copy: 3552.524 MiB/s
AVG     Method: DUMB    Elapsed: 0.02820        MiB: 100.00000  Copy: 3546.414 MiB/s
0       Method: MCBLOCK Elapsed: 0.01256        MiB: 100.00000  Copy: 7958.615 MiB/s
1       Method: MCBLOCK Elapsed: 0.01252        MiB: 100.00000  Copy: 7984.669 MiB/s
2       Method: MCBLOCK Elapsed: 0.01256        MiB: 100.00000  Copy: 7963.051 MiB/s
3       Method: MCBLOCK Elapsed: 0.01249        MiB: 100.00000  Copy: 8004.483 MiB/s
4       Method: MCBLOCK Elapsed: 0.01252        MiB: 100.00000  Copy: 7984.669 MiB/s
5       Method: MCBLOCK Elapsed: 0.01251        MiB: 100.00000  Copy: 7991.050 MiB/s
6       Method: MCBLOCK Elapsed: 0.01253        MiB: 100.00000  Copy: 7980.846 MiB/s
7       Method: MCBLOCK Elapsed: 0.01250        MiB: 100.00000  Copy: 7998.080 MiB/s
8       Method: MCBLOCK Elapsed: 0.01249        MiB: 100.00000  Copy: 8003.842 MiB/s
9       Method: MCBLOCK Elapsed: 0.01255        MiB: 100.00000  Copy: 7968.127 MiB/s
AVG     Method: MCBLOCK Elapsed: 0.01253        MiB: 100.00000  Copy: 7983.713 MiB/s
We really want to make a Ubuntu 20.04 LTS image with a newer Kernel on April or May.
But the performance difference is too big and we need to find root causes.
These users thanked the author odroid for the post:
xabolcs (Thu Jan 09, 2020 8:26 pm)

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Wed Jan 08, 2020 10:11 am

Code: Select all

N2> mbw 100
Long uses 8 bytes. Allocating 2*13107200 elements = 209715200 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0	Method: MEMCPY	Elapsed: 0.05073	MiB: 100.00000	Copy: 1971.259 MiB/s
1	Method: MEMCPY	Elapsed: 0.04721	MiB: 100.00000	Copy: 2118.106 MiB/s
2	Method: MEMCPY	Elapsed: 0.05142	MiB: 100.00000	Copy: 1944.806 MiB/s
3	Method: MEMCPY	Elapsed: 0.03560	MiB: 100.00000	Copy: 2808.594 MiB/s
4	Method: MEMCPY	Elapsed: 0.04747	MiB: 100.00000	Copy: 2106.505 MiB/s
5	Method: MEMCPY	Elapsed: 0.06460	MiB: 100.00000	Copy: 1548.083 MiB/s
6	Method: MEMCPY	Elapsed: 0.07180	MiB: 100.00000	Copy: 1392.835 MiB/s
7	Method: MEMCPY	Elapsed: 0.04889	MiB: 100.00000	Copy: 2045.575 MiB/s
8	Method: MEMCPY	Elapsed: 0.07051	MiB: 100.00000	Copy: 1418.239 MiB/s
9	Method: MEMCPY	Elapsed: 0.05407	MiB: 100.00000	Copy: 1849.523 MiB/s
AVG	Method: MEMCPY	Elapsed: 0.05423	MiB: 100.00000	Copy: 1844.022 MiB/s
0	Method: DUMB	Elapsed: 0.06426	MiB: 100.00000	Copy: 1556.202 MiB/s
1	Method: DUMB	Elapsed: 0.06896	MiB: 100.00000	Copy: 1450.116 MiB/s
2	Method: DUMB	Elapsed: 0.09780	MiB: 100.00000	Copy: 1022.484 MiB/s
3	Method: DUMB	Elapsed: 0.06740	MiB: 100.00000	Copy: 1483.613 MiB/s
4	Method: DUMB	Elapsed: 0.03444	MiB: 100.00000	Copy: 2903.685 MiB/s
5	Method: DUMB	Elapsed: 0.04624	MiB: 100.00000	Copy: 2162.489 MiB/s
6	Method: DUMB	Elapsed: 0.07151	MiB: 100.00000	Copy: 1398.328 MiB/s
7	Method: DUMB	Elapsed: 0.07793	MiB: 100.00000	Copy: 1283.203 MiB/s
8	Method: DUMB	Elapsed: 0.07158	MiB: 100.00000	Copy: 1396.960 MiB/s
9	Method: DUMB	Elapsed: 0.05566	MiB: 100.00000	Copy: 1796.590 MiB/s
AVG	Method: DUMB	Elapsed: 0.06558	MiB: 100.00000	Copy: 1524.869 MiB/s
0	Method: MCBLOCK	Elapsed: 0.06176	MiB: 100.00000	Copy: 1619.223 MiB/s
1	Method: MCBLOCK	Elapsed: 0.03973	MiB: 100.00000	Copy: 2516.926 MiB/s
2	Method: MCBLOCK	Elapsed: 0.03334	MiB: 100.00000	Copy: 2998.950 MiB/s
3	Method: MCBLOCK	Elapsed: 0.03380	MiB: 100.00000	Copy: 2958.230 MiB/s
4	Method: MCBLOCK	Elapsed: 0.02787	MiB: 100.00000	Copy: 3588.474 MiB/s
5	Method: MCBLOCK	Elapsed: 0.02756	MiB: 100.00000	Copy: 3628.447 MiB/s
6	Method: MCBLOCK	Elapsed: 0.03707	MiB: 100.00000	Copy: 2697.672 MiB/s
7	Method: MCBLOCK	Elapsed: 0.03326	MiB: 100.00000	Copy: 3006.976 MiB/s
8	Method: MCBLOCK	Elapsed: 0.08330	MiB: 100.00000	Copy: 1200.523 MiB/s
9	Method: MCBLOCK	Elapsed: 0.04288	MiB: 100.00000	Copy: 2331.981 MiB/s
AVG	Method: MCBLOCK	Elapsed: 0.04206	MiB: 100.00000	Copy: 2377.731 MiB/s
N2> uname -r
5.4.8-dirty
Looks like my copy paste regarding scaling_available_governors from before was mangled by my phone so testing again after changing to performance:

Code: Select all

N2> uname -r && grep . /sys/devices/system/cpu/cpu?/cpufreq/scaling_governor && 7z b -mmt 1 && mbw 100
5.4.8-dirty
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:performance
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:performance

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_CA.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:   997   998   998   998   998   998   998   998

RAM size:    3743 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       4348   456    927   4230  |      82474   526   1338   7033
23:       4249   464    933   4330  |      81359   529   1332   7040
24:       4241   483    943   4560  |      79921   529   1326   7015
25:       4211   503    956   4808  |      76697   528   1293   6826
----------------------------------  | ------------------------------
Avr:             477    940   4482  |              528   1322   6978
Tot:             502   1131   5730
Long uses 8 bytes. Allocating 2*13107200 elements = 209715200 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0	Method: MEMCPY	Elapsed: 0.03542	MiB: 100.00000	Copy: 2823.503 MiB/s
1	Method: MEMCPY	Elapsed: 0.03530	MiB: 100.00000	Copy: 2832.861 MiB/s
2	Method: MEMCPY	Elapsed: 0.03529	MiB: 100.00000	Copy: 2833.985 MiB/s
3	Method: MEMCPY	Elapsed: 0.03526	MiB: 100.00000	Copy: 2836.316 MiB/s
4	Method: MEMCPY	Elapsed: 0.03528	MiB: 100.00000	Copy: 2834.306 MiB/s
5	Method: MEMCPY	Elapsed: 0.03529	MiB: 100.00000	Copy: 2833.423 MiB/s
6	Method: MEMCPY	Elapsed: 0.03527	MiB: 100.00000	Copy: 2835.512 MiB/s
7	Method: MEMCPY	Elapsed: 0.03529	MiB: 100.00000	Copy: 2833.343 MiB/s
8	Method: MEMCPY	Elapsed: 0.03527	MiB: 100.00000	Copy: 2835.432 MiB/s
9	Method: MEMCPY	Elapsed: 0.03528	MiB: 100.00000	Copy: 2834.467 MiB/s
AVG	Method: MEMCPY	Elapsed: 0.03529	MiB: 100.00000	Copy: 2833.311 MiB/s
0	Method: DUMB	Elapsed: 0.03348	MiB: 100.00000	Copy: 2986.947 MiB/s
1	Method: DUMB	Elapsed: 0.03346	MiB: 100.00000	Copy: 2988.286 MiB/s
2	Method: DUMB	Elapsed: 0.03347	MiB: 100.00000	Copy: 2987.572 MiB/s
3	Method: DUMB	Elapsed: 0.03350	MiB: 100.00000	Copy: 2985.431 MiB/s
4	Method: DUMB	Elapsed: 0.03349	MiB: 100.00000	Copy: 2986.144 MiB/s
5	Method: DUMB	Elapsed: 0.03351	MiB: 100.00000	Copy: 2983.917 MiB/s
6	Method: DUMB	Elapsed: 0.03346	MiB: 100.00000	Copy: 2988.375 MiB/s
7	Method: DUMB	Elapsed: 0.03349	MiB: 100.00000	Copy: 2986.412 MiB/s
8	Method: DUMB	Elapsed: 0.03351	MiB: 100.00000	Copy: 2984.540 MiB/s
9	Method: DUMB	Elapsed: 0.03349	MiB: 100.00000	Copy: 2986.323 MiB/s
AVG	Method: DUMB	Elapsed: 0.03349	MiB: 100.00000	Copy: 2986.394 MiB/s
0	Method: MCBLOCK	Elapsed: 0.02011	MiB: 100.00000	Copy: 4973.392 MiB/s
1	Method: MCBLOCK	Elapsed: 0.02011	MiB: 100.00000	Copy: 4973.392 MiB/s
2	Method: MCBLOCK	Elapsed: 0.02008	MiB: 100.00000	Copy: 4981.072 MiB/s
3	Method: MCBLOCK	Elapsed: 0.02008	MiB: 100.00000	Copy: 4980.824 MiB/s
4	Method: MCBLOCK	Elapsed: 0.02008	MiB: 100.00000	Copy: 4980.824 MiB/s
5	Method: MCBLOCK	Elapsed: 0.02008	MiB: 100.00000	Copy: 4980.328 MiB/s
6	Method: MCBLOCK	Elapsed: 0.02010	MiB: 100.00000	Copy: 4975.867 MiB/s
7	Method: MCBLOCK	Elapsed: 0.02011	MiB: 100.00000	Copy: 4973.145 MiB/s
8	Method: MCBLOCK	Elapsed: 0.02008	MiB: 100.00000	Copy: 4980.328 MiB/s
9	Method: MCBLOCK	Elapsed: 0.02008	MiB: 100.00000	Copy: 4980.328 MiB/s
AVG	Method: MCBLOCK	Elapsed: 0.02009	MiB: 100.00000	Copy: 4977.948 MiB/s
N2> 

... 7z seems to be reporting different values than the kernel;

Code: Select all


N2> cd /sys/devices/system/cpu/cpu0/cpufreq/ && grep . *
affected_cpus:0 1
cpuinfo_cur_freq:1896000
cpuinfo_max_freq:1896000
cpuinfo_min_freq:100000
cpuinfo_transition_latency:50000
related_cpus:0 1
scaling_available_frequencies:100000 250000 500000 667000 1000000 1200000 1398000 1512000 1608000 1704000 1896000 
scaling_available_governors:ondemand userspace performance schedutil 
scaling_cur_freq:1896000
scaling_driver:cpufreq-dt
scaling_governor:performance
scaling_max_freq:1896000
scaling_min_freq:100000
scaling_setspeed:<unsupported>
grep: stats: Is a directory
N2> cd /sys/devices/system/cpu/cpu1/cpufreq/ && grep . *
affected_cpus:0 1
cpuinfo_cur_freq:1896000
cpuinfo_max_freq:1896000
cpuinfo_min_freq:100000
cpuinfo_transition_latency:50000
related_cpus:0 1
scaling_available_frequencies:100000 250000 500000 667000 1000000 1200000 1398000 1512000 1608000 1704000 1896000 
scaling_available_governors:ondemand userspace performance schedutil 
scaling_cur_freq:1896000
scaling_driver:cpufreq-dt
scaling_governor:performance
scaling_max_freq:1896000
scaling_min_freq:100000
scaling_setspeed:<unsupported>
grep: stats: Is a directory


User avatar
odroid
Site Admin
Posts: 33043
Joined: Fri Feb 22, 2013 11:14 pm
languages_spoken: English
ODROIDs: ODROID
Has thanked: 296 times
Been thanked: 417 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by odroid » Wed Jan 08, 2020 10:25 am

7-zip bench seems to have a cosmetic bug on a big-little platform.

Yes! the memory bandwidth result is much better with the performance governor.
But it is still 40% slower than Kernel 4.9. :(

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Wed Jan 08, 2020 10:26 am

Other than the 7z/kernel frequency discrepancy
It might be an issue is that cpufreq is only on cpu 0-1 not 2-5;

Code: Select all

N2> find /sys/devices/system/cpu/ -iname cpufreq
/sys/devices/system/cpu/cpu1/cpufreq
/sys/devices/system/cpu/cpufreq
/sys/devices/system/cpu/cpu0/cpufreq
N2> ls -1 /sys/devices/system/cpu/cpu5
cache
cpu_capacity
crash_notes
crash_notes_size
hotplug
node0
of_node
online
power
regs
subsystem
topology
uevent
Previously you mentioned a 100Mhz to 667Mhz patch; can you link to it?

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Wed Jan 08, 2020 10:52 am

It looks like only the 2 A53 are adjustable and the 4 A73 are stuck on slow;

Code: Select all

cat /sys/devices/system/cpu/cpufreq/policy0/affected_cpus
0 1
Probably a quick fix for someone better at DTS editing than me... The way the DTS is written there should be a policy1 with 2 3 4 5 in affected_cpus but it is not in /sys ...

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Wed Jan 08, 2020 11:53 am

@chewitt Any ideas?

brad
Posts: 1028
Joined: Tue Mar 29, 2016 1:22 pm
languages_spoken: english
ODROIDs: C2 N1 N2 H2 (64 bit ftw)
Location: Australia
Has thanked: 23 times
Been thanked: 51 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by brad » Wed Jan 08, 2020 5:24 pm

I did some tests but the same results as others so far. Its interesting my realtime kernel with DVFS disabled and cou's locked at 1Ghz performs almost the same (see both results)

This results is for a kernel I built with lots of debug and trace (so it might slow things down) - Its 5.4.7

Code: Select all

Welcome to Ubuntu 19.04 (GNU/Linux 5.4.7arm64-odroidn2-dev aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
 _   _               _ _                        _
| | | | __ _ _ __ __| | | _____ _ __ _ __   ___| |
| |_| |/ _` | '__/ _` | |/ / _ \ '__| '_ \ / _ \ |
|  _  | (_| | | | (_| |   <  __/ |  | | | |  __/ |
|_| |_|\__,_|_|  \__,_|_|\_\___|_|  |_| |_|\___|_|

  ___  ____  ____   ___ ___ ____        _   _ ____
 / _ \|  _ \|  _ \ / _ \_ _|  _ \      | \ | |___ \
| | | | | | | |_) | | | | || | | |_____|  \| | __) |
| |_| | |_| |  _ <| |_| | || |_| |_____| |\  |/ __/
 \___/|____/|_| \_\\___/___|____/      |_| \_|_____|


Welcome to Ubuntu 19.04
Wednesday,  8 January 2020, 12:58:25 AM
Up time:     0 days, 00:00:34
Free memory: 3160736 / 3785260 kB
IP:          192.168.0.14


11 updates can be installed immediately.
0 of these updates are security updates.


[!] Please visit 'https://launchpad.net/odroid-image' to report a bug
Last login: Tue Jan  7 09:25:39 2020 from 192.168.0.22
odroid@disco-minimal:~$ sudo su -
[sudo] password for odroid:
root@disco-minimal:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@disco-minimal:~# 7z b -mmt 1

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:  1862  1869  1869  1862  1862  1862  1175  1085   982

RAM size:    3696 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       3986   436    890   3878  |      68521   475   1230   5844
23:       3934   436    919   4009  |      72418   466   1343   6266
24:       3931   439    962   4227  |      73115   475   1350   6418
25:       4092   447   1046   4673  |      77171   524   1311   6868
----------------------------------  | ------------------------------
Avr:             439    954   4197  |              485   1309   6349
Tot:             462   1132   5273
And this is real-time kernel with DVFS disabled and no governors available locked to 1GHz

Code: Select all

Welcome to Ubuntu 19.04 (GNU/Linux 5.4.6-rt3rt-arm64-gb6720efa3-dirty aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
 _   _               _ _                        _
| | | | __ _ _ __ __| | | _____ _ __ _ __   ___| |
| |_| |/ _` | '__/ _` | |/ / _ \ '__| '_ \ / _ \ |
|  _  | (_| | | | (_| |   <  __/ |  | | | |  __/ |
|_| |_|\__,_|_|  \__,_|_|\_\___|_|  |_| |_|\___|_|

  ___  ____  ____   ___ ___ ____        _   _ ____
 / _ \|  _ \|  _ \ / _ \_ _|  _ \      | \ | |___ \
| | | | | | | |_) | | | | || | | |_____|  \| | __) |
| |_| | |_| |  _ <| |_| | || |_| |_____| |\  |/ __/
 \___/|____/|_| \_\\___/___|____/      |_| \_|_____|


Welcome to Ubuntu 19.04
Monday,  6 January 2020, 11:30:46 PM
Up time:     0 days, 00:00:20
Free memory: 2858816 / 3787856 kB
IP:          192.168.0.14


5 updates can be installed immediately.
0 of these updates are security updates.


[!] Please visit 'https://launchpad.net/odroid-image' to report a bug
Last login: Mon Jan  6 07:07:26 2020 from 192.168.0.22
odroid@disco-minimal:~$ 7z b -mmt 1

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=C.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:   988   990   991   991   991   991   991   990

RAM size:    3699 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       3355   405    807   3265  |      77504   591   1119   6610
23:       3601   453    810   3669  |      76287   592   1115   6601
24:       3852   500    828   4143  |      74537   591   1108   6542
25:       3716   504    842   4243  |      71268   587   1080   6343
----------------------------------  | ------------------------------
Avr:             466    822   3830  |              590   1105   6524
Tot:             528    964   5177
I should try again with a normal kernels, ie no debug / trace

chewitt
Posts: 27
Joined: Mon Aug 12, 2019 12:27 pm
languages_spoken: english
Has thanked: 0
Been thanked: 23 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by chewitt » Wed Jan 08, 2020 8:09 pm

LE sets some boot-time limits on the CPU governor (we use ondemand) and I have the following changes in my WIP branch as the previous iteration of script (which dates from the 3.14 era) assumes there's only a single cpu cluster. Other distro's may need something similar:

https://github.com/chewitt/LibreELEC.tv ... f4c3229fd2

This committ is also upstream for Linux 5.5 to ensure the OS prioritises the A72 cluster over the A53 cluster when possible. We noticed that libretro emulators (which often run on a single core) frequently ended upon an A53 core while the A72's were idle:

https://github.com/torvalds/linux/commi ... 734fc2e088

NB: I'm more interested in core functionality than performance testing (anything that's faster than a Raspberry Pi is good for me) so I won't be much help with tests. I will comment that lots of G12A/B audio changes went into Linux 5.5 so it would be a better kernel target for a desktop distro than 5.4, despite not being an LTS kernel. I've not seen any drama moving from 5.2 > 5.3 > 5.4 > 5.5-rc so I'd also advocate that you keep bumping the kernel instead of sticking to the LTS releases.

Sav
Posts: 108
Joined: Mon Sep 02, 2019 2:33 am
languages_spoken: english
ODROIDs: odroid-n2
Has thanked: 26 times
Been thanked: 6 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by Sav » Wed Jan 08, 2020 11:21 pm

Hi
Here my tests on Armbian 5.4.6 kernel
I can't set the performance governor

Code: Select all

root@odroidn2:~# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
root@odroidn2:~# 7z b -mmt 1

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:   996   998   998   998   998   998   997   998

RAM size:    3698 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       4344   461    916   4226  |      78931   527   1277   6731
23:       4332   467    946   4414  |      77751   527   1276   6728
24:       4283   464    992   4606  |      75958   523   1274   6667
25:       4276   462   1058   4883  |      75705   529   1274   6737
----------------------------------  | ------------------------------
Avr:             463    978   4532  |              527   1275   6716
Tot:             495   1127   5624
root@odroidn2:~# uname -r
5.4.6-meson64
It's strange that the results are similar to elatllat's tests, where the cpu runned at a much higher frequency.
Last edited by Sav on Thu Jan 09, 2020 12:17 am, edited 2 times in total.

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Thu Jan 09, 2020 12:05 am

5.5.0-rc5 (lkml)
builds (and script).
chewitt wrote:
Wed Jan 08, 2020 8:09 pm
...G12A/B audio changes went into Linux 5.5...
Audio may need more work;

Code: Select all

N2> uname -r
5.5.0-rc5-gae6088216-dirty
N2> ffplay test.flac 
ffplay version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2003-2019 the FFmpeg developers
  built with gcc 7 (Ubuntu/Linaro 7.3.0-16ubuntu3)
  configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/aarch64-linux-gnu --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libavresample   3.  7.  0 /  3.  7.  0
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100
Segmentation fault (core dumped)
Last edited by elatllat on Thu Jan 09, 2020 2:03 am, edited 1 time in total.

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Thu Jan 09, 2020 12:22 am

I added some higher clocks from 4.9
rebooted a few times until I got a 2nd cpufreq policy, and got this;

Code: Select all

N2> mbw 100
Long uses 8 bytes. Allocating 2*13107200 elements = 209715200 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0	Method: MEMCPY	Elapsed: 0.02547	MiB: 100.00000	Copy: 3926.496 MiB/s
1	Method: MEMCPY	Elapsed: 0.02529	MiB: 100.00000	Copy: 3954.288 MiB/s
2	Method: MEMCPY	Elapsed: 0.02529	MiB: 100.00000	Copy: 3954.445 MiB/s
3	Method: MEMCPY	Elapsed: 0.02531	MiB: 100.00000	Copy: 3951.476 MiB/s
4	Method: MEMCPY	Elapsed: 0.02528	MiB: 100.00000	Copy: 3956.166 MiB/s
5	Method: MEMCPY	Elapsed: 0.02528	MiB: 100.00000	Copy: 3955.227 MiB/s
6	Method: MEMCPY	Elapsed: 0.02532	MiB: 100.00000	Copy: 3950.071 MiB/s
7	Method: MEMCPY	Elapsed: 0.02549	MiB: 100.00000	Copy: 3922.492 MiB/s
8	Method: MEMCPY	Elapsed: 0.02532	MiB: 100.00000	Copy: 3950.227 MiB/s
9	Method: MEMCPY	Elapsed: 0.02530	MiB: 100.00000	Copy: 3953.194 MiB/s
AVG	Method: MEMCPY	Elapsed: 0.02533	MiB: 100.00000	Copy: 3947.374 MiB/s
0	Method: DUMB	Elapsed: 0.02526	MiB: 100.00000	Copy: 3958.828 MiB/s
1	Method: DUMB	Elapsed: 0.02528	MiB: 100.00000	Copy: 3954.914 MiB/s
2	Method: DUMB	Elapsed: 0.02526	MiB: 100.00000	Copy: 3958.828 MiB/s
3	Method: DUMB	Elapsed: 0.02524	MiB: 100.00000	Copy: 3961.651 MiB/s
4	Method: DUMB	Elapsed: 0.02525	MiB: 100.00000	Copy: 3960.396 MiB/s
5	Method: DUMB	Elapsed: 0.02526	MiB: 100.00000	Copy: 3958.045 MiB/s
6	Method: DUMB	Elapsed: 0.02530	MiB: 100.00000	Copy: 3952.413 MiB/s
7	Method: DUMB	Elapsed: 0.02528	MiB: 100.00000	Copy: 3956.009 MiB/s
8	Method: DUMB	Elapsed: 0.02528	MiB: 100.00000	Copy: 3955.540 MiB/s
9	Method: DUMB	Elapsed: 0.02527	MiB: 100.00000	Copy: 3957.418 MiB/s
AVG	Method: DUMB	Elapsed: 0.02527	MiB: 100.00000	Copy: 3957.403 MiB/s
0	Method: MCBLOCK	Elapsed: 0.01145	MiB: 100.00000	Copy: 8729.812 MiB/s
1	Method: MCBLOCK	Elapsed: 0.01145	MiB: 100.00000	Copy: 8731.337 MiB/s
2	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8723.720 MiB/s
3	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8726.765 MiB/s
4	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8723.720 MiB/s
5	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8724.481 MiB/s
6	Method: MCBLOCK	Elapsed: 0.01147	MiB: 100.00000	Copy: 8716.116 MiB/s
7	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8722.959 MiB/s
8	Method: MCBLOCK	Elapsed: 0.01148	MiB: 100.00000	Copy: 8712.319 MiB/s
9	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8723.720 MiB/s
AVG	Method: MCBLOCK	Elapsed: 0.01146	MiB: 100.00000	Copy: 8723.491 MiB/s
Which is good,
But whenever there are 2 policies (as there should be) 7z errors with "Illegal instruction (core dumped)" or "Decoding ERROR".
With only one policy 7z works but 4 of the cores are stuck on slow... maybe removing the slow options is a workaround until policy0 and polic1 appear every boot. (vs just policy0 or policy0 and 7z breaking policy2)

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Thu Jan 09, 2020 1:48 am

Now patched 5.5 is faster than 4.9;
- mbw is 8.5% faster
- 7z is 8.8% faster
- cryptsetup is 7.8% faster (faster than the H2 as well)

The issue with only one cpufreq policy showing up seems to be fixed or infrequent (<1/5 reboots)
I ran 7z 5 times to test stability.

Code: Select all

N2> uname -r && 7z b -mmt 1 && echo && mbw 100 && echo && cryptsetup benchmark
5.5.0-rc5-gae6088216-dirty

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_CA.UTF-8,Utf16=on,HugeFiles=on,64 bits,6 CPUs LE)

LE
CPU Freq:  1905  1906  1906  1906  1906  1906  1906  1906  1906

RAM size:    3422 MB,  # CPU hardware threads:   6
RAM usage:   1323 MB,  # Benchmark threads:      6

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:       6540   505   1260   6362  |     131122   554   2019  11182
23:       6485   517   1279   6608  |     127320   549   2007  11017
24:       6477   523   1333   6965  |     125171   551   1995  10987
25:       6326   511   1413   7223  |     122344   548   1988  10888
----------------------------------  | ------------------------------
Avr:             514   1321   6790  |              550   2002  11018
Tot:             532   1662   8904

Long uses 8 bytes. Allocating 2*13107200 elements = 209715200 bytes of memory.
Using 262144 bytes as blocks for memcpy block copy test.
Getting down to business... Doing 10 runs per test.
0	Method: MEMCPY	Elapsed: 0.02683	MiB: 100.00000	Copy: 3727.866 MiB/s
1	Method: MEMCPY	Elapsed: 0.02553	MiB: 100.00000	Copy: 3917.574 MiB/s
2	Method: MEMCPY	Elapsed: 0.02685	MiB: 100.00000	Copy: 3724.395 MiB/s
3	Method: MEMCPY	Elapsed: 0.02556	MiB: 100.00000	Copy: 3911.904 MiB/s
4	Method: MEMCPY	Elapsed: 0.02561	MiB: 100.00000	Copy: 3904.115 MiB/s
5	Method: MEMCPY	Elapsed: 0.02638	MiB: 100.00000	Copy: 3790.032 MiB/s
6	Method: MEMCPY	Elapsed: 0.02557	MiB: 100.00000	Copy: 3911.598 MiB/s
7	Method: MEMCPY	Elapsed: 0.02676	MiB: 100.00000	Copy: 3737.060 MiB/s
8	Method: MEMCPY	Elapsed: 0.02553	MiB: 100.00000	Copy: 3916.960 MiB/s
9	Method: MEMCPY	Elapsed: 0.02609	MiB: 100.00000	Copy: 3832.299 MiB/s
AVG	Method: MEMCPY	Elapsed: 0.02607	MiB: 100.00000	Copy: 3835.665 MiB/s
0	Method: DUMB	Elapsed: 0.02605	MiB: 100.00000	Copy: 3838.330 MiB/s
1	Method: DUMB	Elapsed: 0.02552	MiB: 100.00000	Copy: 3917.881 MiB/s
2	Method: DUMB	Elapsed: 0.02673	MiB: 100.00000	Copy: 3740.555 MiB/s
3	Method: DUMB	Elapsed: 0.02552	MiB: 100.00000	Copy: 3919.110 MiB/s
4	Method: DUMB	Elapsed: 0.02666	MiB: 100.00000	Copy: 3751.360 MiB/s
5	Method: DUMB	Elapsed: 0.02684	MiB: 100.00000	Copy: 3725.644 MiB/s
6	Method: DUMB	Elapsed: 0.02581	MiB: 100.00000	Copy: 3874.617 MiB/s
7	Method: DUMB	Elapsed: 0.02623	MiB: 100.00000	Copy: 3811.993 MiB/s
8	Method: DUMB	Elapsed: 0.02551	MiB: 100.00000	Copy: 3919.878 MiB/s
9	Method: DUMB	Elapsed: 0.02524	MiB: 100.00000	Copy: 3961.337 MiB/s
AVG	Method: DUMB	Elapsed: 0.02601	MiB: 100.00000	Copy: 3844.350 MiB/s
0	Method: MCBLOCK	Elapsed: 0.01142	MiB: 100.00000	Copy: 8756.567 MiB/s
1	Method: MCBLOCK	Elapsed: 0.01142	MiB: 100.00000	Copy: 8758.101 MiB/s
2	Method: MCBLOCK	Elapsed: 0.01143	MiB: 100.00000	Copy: 8751.969 MiB/s
3	Method: MCBLOCK	Elapsed: 0.01142	MiB: 100.00000	Copy: 8755.034 MiB/s
4	Method: MCBLOCK	Elapsed: 0.01291	MiB: 100.00000	Copy: 7747.734 MiB/s
5	Method: MCBLOCK	Elapsed: 0.01141	MiB: 100.00000	Copy: 8760.403 MiB/s
6	Method: MCBLOCK	Elapsed: 0.01182	MiB: 100.00000	Copy: 8459.521 MiB/s
7	Method: MCBLOCK	Elapsed: 0.01140	MiB: 100.00000	Copy: 8774.239 MiB/s
8	Method: MCBLOCK	Elapsed: 0.01264	MiB: 100.00000	Copy: 7912.018 MiB/s
9	Method: MCBLOCK	Elapsed: 0.01169	MiB: 100.00000	Copy: 8555.784 MiB/s
AVG	Method: MCBLOCK	Elapsed: 0.01176	MiB: 100.00000	Copy: 8506.801 MiB/s

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       671303 iterations per second for 256-bit key
PBKDF2-sha256    1322290 iterations per second for 256-bit key
PBKDF2-sha512     391844 iterations per second for 256-bit key
PBKDF2-ripemd160  349991 iterations per second for 256-bit key
PBKDF2-whirlpool  132395 iterations per second for 256-bit key
argon2i       4 iterations, 619604 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 622678 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm | Key |  Encryption |  Decryption
        aes-cbc   128b   705.8 MiB/s  1105.5 MiB/s
    serpent-cbc   128b           N/A           N/A
    twofish-cbc   128b           N/A           N/A
        aes-cbc   256b   592.2 MiB/s   959.1 MiB/s
    serpent-cbc   256b           N/A           N/A
    twofish-cbc   256b           N/A           N/A
        aes-xts   256b   782.5 MiB/s   780.3 MiB/s
    serpent-xts   256b           N/A           N/A
    twofish-xts   256b           N/A           N/A
        aes-xts   512b   707.1 MiB/s   701.7 MiB/s
    serpent-xts   512b           N/A           N/A
    twofish-xts   512b           N/A           N/A
These users thanked the author elatllat for the post (total 3):
odroid (Thu Jan 09, 2020 11:39 am) • brad (Thu Jan 09, 2020 3:46 pm) • xabolcs (Thu Jan 09, 2020 8:30 pm)

chewitt
Posts: 27
Joined: Mon Aug 12, 2019 12:27 pm
languages_spoken: english
Has thanked: 0
Been thanked: 23 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by chewitt » Thu Jan 09, 2020 11:30 am

@elatilat are you testing audio from torvalds/master or https://github.com/chewitt/linux/commit ... -5.5-integ ?

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Thu Jan 09, 2020 11:35 am

chewitt wrote:
Thu Jan 09, 2020 11:30 am
@elatilat are you testing audio from torvalds/master or https://github.com/chewitt/linux/commit ... -5.5-integ ?
I was testing from torvalds, A list of relevant commits for audio would be nice because
385 files changed, 20906 insertions(+), 2623 deletions(-)
is not trivial... I could narrow it down to checking the commit log diff on 67 files but still.
Last edited by elatllat on Sat Jan 11, 2020 11:22 am, edited 3 times in total.

chewitt
Posts: 27
Joined: Mon Aug 12, 2019 12:27 pm
languages_spoken: english
Has thanked: 0
Been thanked: 23 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by chewitt » Thu Jan 09, 2020 11:45 am

Those audio changes for GX devices are experimental and haven't been submitted anywhere yet (work in progress from jbrunet at Baylibre). I need to use the GXBB-ODROID-C2 alsa conf in here https://github.com/chewitt/LibreELEC.tv ... 5338821019 to have the devices show up correctly. The equivalent alsa confs for G12 devices are in https://github.com/chewitt/LibreELEC.tv ... 910401a253. I have some other commits for G12 audio too (all things that are submitted to the mailing lsit) but those are burried amongst other things so they're not easily spotted.

elatllat
Posts: 1627
Joined: Tue Sep 01, 2015 8:54 am
languages_spoken: english
ODROIDs: XU4, N1, N2
Has thanked: 26 times
Been thanked: 84 times
Contact:

Re: Any plan for basic mainline linux support?

Unread post by elatllat » Fri Jan 10, 2020 6:25 pm

5.4.10 (LKML)
builds (and script).

(The first minimally patched upstream LTS build that is more stable and faster than 4.9)
These users thanked the author elatllat for the post (total 2):
Sav (Fri Jan 10, 2020 6:44 pm) • mad_ady (Fri Jan 10, 2020 7:19 pm)

Post Reply

Return to “General Topics”

Who is online

Users browsing this forum: No registered users and 3 guests