|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 05/10] automation: Add Arm containers to containerize script
Hi Jiamei,
On 20/10/2022 09:13, Jiamei Xie wrote:
>
>
> Hi Michal,
>
>> -----Original Message-----
>> From: Michal Orzel <michal.orzel@xxxxxxx>
>> Sent: Thursday, October 20, 2022 2:59 PM
>> To: Jiamei Xie <Jiamei.Xie@xxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx
>> Cc: Doug Goldstein <cardoe@xxxxxxxxxx>; Stefano Stabellini
>> <sstabellini@xxxxxxxxxx>
>> Subject: Re: [PATCH v3 05/10] automation: Add Arm containers to
>> containerize script
>>
>> Hi Jiamei,
>>
>> On 20/10/2022 05:00, Jiamei Xie wrote:
>>>
>>>
>>> Hi Michal,
>>>
>>>> -----Original Message-----
>>>> From: Xen-devel <xen-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf Of
>>>> Michal Orzel
>>>> Sent: Tuesday, September 27, 2022 5:47 PM
>>>> To: xen-devel@xxxxxxxxxxxxxxxxxxxx
>>>> Cc: Michal Orzel <michal.orzel@xxxxxxx>; Doug Goldstein
>>>> <cardoe@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>
>>>> Subject: [PATCH v3 05/10] automation: Add Arm containers to
>> containerize
>>>> script
>>>>
>>>> Script automation/scripts/containerize makes it easy to build Xen within
>>>> predefined containers from gitlab container registry. This script is
>>>> currently missing the helpers to select Arm containers, so populate the
>>>> necessary entries.
>>>>
>>>> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
>>>> Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
>>>> ---
>>
>>>
>>> [Jiamei Xie]
>>> I wonder if an default container for arm can be added. For example, if
>>> "CONTAINER=arm64 automation/scripts/containerize bash",
>>> set the default CONTAINER as "registry.gitlab.com/xen-
>> project/xen/alpine:3.12-arm64v8"
>>>
>>
>> It can be added doing the following:
>>
>> diff --git a/automation/scripts/containerize
>> b/automation/scripts/containerize
>> index 0f4645c4cccb..b395bd359ecf 100755
>> --- a/automation/scripts/containerize
>> +++ b/automation/scripts/containerize
>> @@ -25,7 +25,7 @@ die() {
>> BASE="registry.gitlab.com/xen-project/xen"
>> case "_${CONTAINER}" in
>> _alpine) CONTAINER="${BASE}/alpine:3.12" ;;
>> - _alpine-arm64v8) CONTAINER="${BASE}/alpine:3.12-arm64v8" ;;
>> + _alpine-arm64v8|_arm64) CONTAINER="${BASE}/alpine:3.12-arm64v8" ;;
>> _archlinux|_arch) CONTAINER="${BASE}/archlinux:current" ;;
>> _riscv64) CONTAINER="${BASE}/archlinux:riscv64" ;;
>> _centos7) CONTAINER="${BASE}/centos:7" ;;
>>
>> The question is whether it would be beneficial. After all you would still
>> need
>> to
>> type CONTAINER=arm64, whereas at the moment, you need to type
>> CONTAINER=alpine-arm64v8.
>> TBH I'm not sure it is improving anything (?).
>>
>> ~Michal
> [Jiamei Xie]
> I am not sure about this either. I added something like below f to run it on
> arm64 machine. But it didn't take "running container for a different
> architecture" into consideration.
>
So your question is not about adding default container when selecting
CONTAINER=arm64, but adding
a default one when running on arm64 platform. Right now, the default one is
debian:stretch
(if you don't type CONTAINER= at all). Do I understand it right that you would
like the same
behavior when running on arm64 platform (currently, it would also select
debian:stretch)?
So that when executing:
./automation/scripts/containerize ...
it would automatically select alpine-arm64v8?
> --- a/automation/scripts/containerize
> +++ b/automation/scripts/containerize
> @@ -18,6 +18,12 @@ die() {
> exit 1
> }
>
> +# There are two containers that can run on aarch64, unstable and alpine.
> +# Set the default container to alpine for aarch64
> +if [[ $(uname -m) = "aarch64" && -z ${CONTAINER} ]]; then
The output from `uname -m` for arm64 can be aarch64 and arm64.
> + CONTAINER="alpine"
> +fi
> +
> #
> # The caller is expected to override the CONTAINER environment
> # variable with the container they wish to launch.
> @@ -41,6 +47,11 @@ case "_${CONTAINER}" in
> _opensuse-tumbleweed|_tumbleweed)
> CONTAINER="${BASE}/suse:opensuse-tumbleweed" ;;
> esac
>
> +# Containers for aarch64 have a sufix "-arm64v8"
> +if [[ $(uname -m) = "aarch64" ]]; then
> + CONTAINER="${CONTAINER}-arm64v8"
> +fi
This is not needed. CONTAINER can be selected on the first check and let
case/esac block
to determine the full path to container.
> +
> # Use this variable to control whether root should be used
> case "_${CONTAINER_UID0}" in
> _1) userarg= ;;
>
>
> Best wishes
> Jiamei Xie
>
>
What you are asking for can be done in a simpler way. The following is enough:
diff --git a/automation/scripts/containerize b/automation/scripts/containerize
index 0f4645c4cccb..4e7e8bb48e3a 100755
--- a/automation/scripts/containerize
+++ b/automation/scripts/containerize
@@ -18,6 +18,11 @@ die() {
exit 1
}
+# Select default container when running on arm64 machine.
+if [ -z "${CONTAINER}" ] && uname -m | grep -qE 'aarch64|arm64'; then
+ CONTAINER="alpine-arm64v8"
+fi
+
#
# The caller is expected to override the CONTAINER environment
# variable with the container they wish to launch.
~Michal
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |