►
From YouTube: Support Arm64 platform in Envoy - Lizan Zhou
Description
Support Arm64 platform in Envoy - Lizan Zhou
Envoy Arm64 will be released from 1.16.0. In this LT Lizan will discuss about the effort to make Envoy officially support Arm64 based Linux. This includes some code / test change caused by different endian / memory layout and compiler defaults, how we identified these problems, and how we built CI infrastructure.
A
A
A
A
A
A
A
A
Each
test
target
have
tens
or
100
test
cases,
so
this
is
really
time
consuming
to
run
with
small
machines.
How
to
make
this
run
within
time
is,
was
also
a
challenge
to
get
proper
arm.
Support
in
unvoice
ci
also
envoy
have
a
lot
of
build
dependencies,
namely
the
big
one
is
g-perf
tools
which
is
a
metallog
extension
and
ng
hdb2
or
http,
2,
codec
and
ammo
and
other
like
protocol
buffers
and
so
on.
A
Luckily,
we
didn't
have
any
major
issue
with
those
dependencies
we
need.
We
had
to
do
some
small
patches
to
make
them
work
with
arm
build,
but
overall
that
was
a
small
part.
A
So,
let's
talk
about
the
ci,
the
unvoice
ci
runs
on
azure
pipelines.
Before
we
have
the
arm
support.
A
We
we
run
format,
check
and
do
the
release
and
that
the
binary
build
in
the
release,
you'll
go
to
the
docker
image
and
we
run
some
sanitizers
coverage
and
gcc
gccn,
etc.
I
omit
the
mac
os
and
windows
support
here
then,
with
arm.
We
added
a
new
arm,
64
release
job
here
and
then
we
take
the
binaries
build
from
xd
64
release
and
arm
64
release
to
a
docker
multi-arch
job.
A
This
one
builds
a
multi-arch
image
for
both
x64
and
arm
64
and
push
that
to
a
docker
hub.
A
So
there
were
some
challenges
for
support
arm.
The
first
one
is
basil:
bezel
wasn't
bezel
didn't
have
official
release
before
3.4.
We
worked
with
team
in
google
to
make
the
official
release
happen.
Azure
pipeline
started
support
arm
64
in
q2,
which
is
actually
when
we
looked
at
it.
So
this
was
the
right
timing
and
because
the
azure
pipeline
doesn't
provide
the
managed
instance
for
the
for
its
ci
workers.
A
A
A
A
The
the
biggest
one
we
have
to
handle
is
the
exception
handling
initially,
when
we
started
arm
building,
while
the
build
produces
a
binary,
but
it
fails
like
100
out
of
600
of
tests.
A
A
We
needed
to
pass
the
dash
f
exceptions
to
compile
c
code.
This
is
this
was
very
important
because
our
http
codex
depends
on
this
behavior
we're
we're
on
the
path
to
remove
the
remove
the
exception
from
http
2
codecs,
but
that
one
was
still
at
the
issue.
At
that
moment.
A
A
So
let's
talk
about
the
build
performance.
We
use
the
aws
r60g
8x
large
instance.
This
one
has
32
cores
and
256
gigabytes
memory.
We
do
cache
with
bazel
remote,
which
helps
a
lot
on
the
build
performance
without
cache.
This
one
cost
like
40
minutes
for
every
full
ci
job
with
the
cache
it
normally
runs
within
15
minutes
this,
including
like
pull,
pulling
build
docker
image
and
producing
test
results.
A
A
Also
there
are
some
downstream
builds,
doesn't
have
arm
64
support,
yet,
like
is
still
proxy
or
get
envoy.
We
will
work
on
this
soon.