Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARM support for Cilium #1104

Closed
aalemayhu opened this issue Jul 11, 2017 · 14 comments
Closed

ARM support for Cilium #1104

aalemayhu opened this issue Jul 11, 2017 · 14 comments

Comments

@aalemayhu
Copy link
Contributor

@aalemayhu aalemayhu commented Jul 11, 2017

There is probably more issues to address, but some of the ones I noticed / potential

  • New Docker images for ARM
  • Fix any ARM specific issues from the Go vendor dependencies.
  • Fix header issues, for example gnu/stubs-32.h.
@aalemayhu aalemayhu changed the title Add ARM support for Cilium ARM support for Cilium Jul 11, 2017
@aalemayhu
Copy link
Contributor Author

@aalemayhu aalemayhu commented Jul 11, 2017

Just tried to run on packet.net (machine Type 2A) using Ubuntu 17.04.
Some issues observed

  • The Go project does not offer a aarch64 binary, so needed
    to compile Go. Which took some minutes.
  • The docker install script at https://get.docker.com does not support aarch64,
    but not big issue since local package manager.
  • Compile errors, see output below. Not sure how to fix these since gcc-multilib has no install candidate.
clang -DUNKNOWN -Iinclude -D__NR_CPUS__=96 -O2 -target bpf -I. -Wall -Werror -Wno-address-of-packed-member -Wno-unknown-warning-option -c bpf_lxc.c -o /dev/null;  clang -DDROP_ALL -Iinclude -D__NR_CPUS__=96 -O2 -target bpf -I. -Wall -Werror -Wno-address-of-packed-member -Wno-unknown-warning-option -c bpf_lxc.c -o /dev/null;
In file included from bpf_lxc.c:23:
In file included from include/bpf/api.h:11:
In file included from include/linux/type_mapper.h:4:
In file included from /usr/lib/llvm-4.0/bin/../lib/clang/4.0.0/include/stdint.h:61:
In file included from /usr/include/stdint.h:25:
/usr/include/features.h:364:12: fatal error: 'sys/cdefs.h' file not found
#  include <sys/cdefs.h>
           ^~~~~~~~~~~~~
1 error generated.
In file included from bpf_lxc.c:23:
In file included from include/bpf/api.h:11:
In file included from include/linux/type_mapper.h:4:
In file included from /usr/lib/llvm-4.0/bin/../lib/clang/4.0.0/include/stdint.h:61:
In file included from /usr/include/stdint.h:25:
/usr/include/features.h:364:12: fatal error: 'sys/cdefs.h' file not found
#  include <sys/cdefs.h>
           ^~~~~~~~~~~~~
1 error generated.
Makefile:40: recipe for target 'bpf_lxc.o' failed
make[1]: *** [bpf_lxc.o] Error 1
make[1]: Leaving directory '/root/opt/og/src/github.com/cilium/cilium/bpf'
Makefile:10: recipe for target 'bpf' failed
make: *** [bpf] Error 2

@aalemayhu
Copy link
Contributor Author

@aalemayhu aalemayhu commented Dec 26, 2017

Tried reproducing the steps again on armv7l but seeing different error this time

# github.com/cilium/cilium/pkg/proxy
../pkg/proxy/proxy.go:43:2: constant 4277796864 overflows int
../pkg/proxy/proxy.go:44:2: constant 4277862400 overflows int

@aalemayhu
Copy link
Contributor Author

@aalemayhu aalemayhu commented Dec 26, 2017

Just to see if it would otherwise compile applied

diff --git a/pkg/proxy/proxy.go b/pkg/proxy/proxy.go
index 904cce464d9f..cd3226587aa2 100644
--- a/pkg/proxy/proxy.go
+++ b/pkg/proxy/proxy.go
@@ -40,8 +40,8 @@ var log = logging.DefaultLogger
 // the packet is coming from a proxy at ingress or egress. The lower 16 bits
 // can be used to carry the security identity.
 const (
-       magicMarkIngress int = 0xFEFA << 16
-       magicMarkEgress  int = 0xFEFB << 16
+       magicMarkIngress int = 0xFEFA << 8
+       magicMarkEgress  int = 0xFEFB << 8
 )

 // field names used while logging

@aalemayhu
Copy link
Contributor Author

@aalemayhu aalemayhu commented Dec 26, 2017

Next failure is

msg="linking environment: NOT OK, please make sure you have 'glibc-devel.i686' if you use fedora system or 'libc6-dev-i386' if you use ubuntu system"

@aalemayhu aalemayhu self-assigned this Jan 4, 2018
@tgraf tgraf closed this Jul 2, 2018
@braudel
Copy link

@braudel braudel commented Oct 5, 2019

Hello, I am looking forward to try cillium on arm64-based clusters and found this ticket was closed last year. Are there any plans/blockers to get cillium built/supported on arm64?

@brb brb reopened this Oct 8, 2019
@zhangyongsu
Copy link

@zhangyongsu zhangyongsu commented Dec 6, 2019

any update? AArch64 seems still not be supported yet.

@tgraf
Copy link
Member

@tgraf tgraf commented Dec 6, 2019

@braudel @zhangyongsu There are no blockers but there is also nobody currently assigned to work on this. We are happy to support anybody working on this.

@stale
Copy link

@stale stale bot commented Feb 4, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale label Feb 4, 2020
@aanm aanm removed the stale label Feb 7, 2020
@aanm aanm added this to the 1.8 milestone Feb 7, 2020
@Sh4d1
Copy link
Contributor

@Sh4d1 Sh4d1 commented Mar 13, 2020

@tgraf still no one working on this? I'm willing to give it a try 😄

@braudel
Copy link

@braudel braudel commented Mar 13, 2020

Prob we should link this issue to #9898?

@Sh4d1
Copy link
Contributor

@Sh4d1 Sh4d1 commented Mar 13, 2020

Nice, it's almost done then 😄

@aanm
Copy link
Member

@aanm aanm commented Apr 13, 2020

cc @tinatsou
Next items:

  • Current CI connects to Packet.net, and then runs x86 VMs inside
    Action Item (Tina): Figure out how to run arm64 VMs
    Do we need arm64 hosts provisioned as well, etc.

Please keep discussion here #9898

@joestringer joestringer added this to Issues in ARM64 support Apr 14, 2020
@errordeveloper
Copy link
Member

@errordeveloper errordeveloper commented May 4, 2020

@cilium/maintainers is this issue actually tracking anything that #9898 isn't? I can see references to CI, should there be a separate ticket to track CI/testing items in relation to Arm?

@joestringer
Copy link
Member

@joestringer joestringer commented May 4, 2020

I don't think there's anything particular that this issue is tracking, it's just the older version of the issue and is now duplicate with #9898.

We can file new area/CI-improvement issues etc. if it helps tracking the status and how we get to the point where arm64 builds are considered stable.

Closing.

@joestringer joestringer closed this May 4, 2020
ARM64 support automation moved this from Issues to Done May 4, 2020
@joestringer joestringer removed this from Done in ARM64 support May 4, 2020
@joestringer joestringer removed this from the 1.8 milestone May 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
9 participants