At the moment, the static-mem check relies on the way Xen exposes the
memory banks in device tree. As this might change, the check should be
modified to be generic and not to rely on device tree. In this case,
let's use /proc/iomem which exposes the memory ranges in %08x format
as follows:
<start_addr>-<end_addr> : <description>
This way, we can grep in /proc/iomem for an entry containing memory
region defined by the static-mem configuration with "System RAM"
description. If it exists, mark the test as passed. Also, take the
opportunity to add 0x prefix to domu_{base,size} definition rather than
adding it in front of each occurence.
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
---
Patch made as part of the discussion:
https://lore.kernel.org/xen-devel/ba37ee02-c07c-2803-0867-149c779890b6@amd.com/
CC: Julien, Ayan
---
automation/scripts/qemu-smoke-dom0less-arm64.sh | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh
index 2b59346fdcfd..182a4b6c18fc 100755
--- a/automation/scripts/qemu-smoke-dom0less-arm64.sh
+++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh
@@ -16,14 +16,13 @@ fi
if [[ "${test_variant}" == "static-mem" ]]; then
# Memory range that is statically allocated to DOM1
- domu_base="50000000"
- domu_size="10000000"
+ domu_base="0x50000000"
+ domu_size="0x10000000"
passed="${test_variant} test passed"
domU_check="
-current=\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/memory@${domu_base}/reg 2>/dev/null)
-expected=$(printf \"%016x%016x\" 0x${domu_base} 0x${domu_size})
-if [[ \"\${expected}\" == \"\${current}\" ]]; then
- echo \"${passed}\"
+mem_range=$(printf \"%08x-%08x\" ${domu_base} $(( ${domu_base} + ${domu_size} - 1 )))
+if grep -q -x \"\${mem_range} : System RAM\" /proc/iomem; then
+ echo \"${passed}\"
fi
"
fi
@@ -126,7 +125,7 @@ UBOOT_SOURCE="boot.source"
UBOOT_SCRIPT="boot.scr"' > binaries/config
if [[ "${test_variant}" == "static-mem" ]]; then
- echo -e "\nDOMU_STATIC_MEM[0]=\"0x${domu_base} 0x${domu_size}\"" >> binaries/config
+ echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> binaries/config
fi
if [[ "${test_variant}" == "boot-cpupools" ]]; then
--
2.25.1
On Mon, 23 Jan 2023, Michal Orzel wrote: > At the moment, the static-mem check relies on the way Xen exposes the > memory banks in device tree. As this might change, the check should be > modified to be generic and not to rely on device tree. In this case, > let's use /proc/iomem which exposes the memory ranges in %08x format > as follows: > <start_addr>-<end_addr> : <description> > > This way, we can grep in /proc/iomem for an entry containing memory > region defined by the static-mem configuration with "System RAM" > description. If it exists, mark the test as passed. Also, take the > opportunity to add 0x prefix to domu_{base,size} definition rather than > adding it in front of each occurence. > > Signed-off-by: Michal Orzel <michal.orzel@amd.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org> > --- > Patch made as part of the discussion: > https://lore.kernel.org/xen-devel/ba37ee02-c07c-2803-0867-149c779890b6@amd.com/ > > CC: Julien, Ayan > --- > automation/scripts/qemu-smoke-dom0less-arm64.sh | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh > index 2b59346fdcfd..182a4b6c18fc 100755 > --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh > +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh > @@ -16,14 +16,13 @@ fi > > if [[ "${test_variant}" == "static-mem" ]]; then > # Memory range that is statically allocated to DOM1 > - domu_base="50000000" > - domu_size="10000000" > + domu_base="0x50000000" > + domu_size="0x10000000" > passed="${test_variant} test passed" > domU_check=" > -current=\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/memory@${domu_base}/reg 2>/dev/null) > -expected=$(printf \"%016x%016x\" 0x${domu_base} 0x${domu_size}) > -if [[ \"\${expected}\" == \"\${current}\" ]]; then > - echo \"${passed}\" > +mem_range=$(printf \"%08x-%08x\" ${domu_base} $(( ${domu_base} + ${domu_size} - 1 ))) > +if grep -q -x \"\${mem_range} : System RAM\" /proc/iomem; then > + echo \"${passed}\" > fi > " > fi > @@ -126,7 +125,7 @@ UBOOT_SOURCE="boot.source" > UBOOT_SCRIPT="boot.scr"' > binaries/config > > if [[ "${test_variant}" == "static-mem" ]]; then > - echo -e "\nDOMU_STATIC_MEM[0]=\"0x${domu_base} 0x${domu_size}\"" >> binaries/config > + echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> binaries/config > fi > > if [[ "${test_variant}" == "boot-cpupools" ]]; then > -- > 2.25.1 >
On 1/23/23 15:10, Michal Orzel wrote: > At the moment, the static-mem check relies on the way Xen exposes the > memory banks in device tree. As this might change, the check should be > modified to be generic and not to rely on device tree. In this case, > let's use /proc/iomem which exposes the memory ranges in %08x format > as follows: > <start_addr>-<end_addr> : <description> > > This way, we can grep in /proc/iomem for an entry containing memory > region defined by the static-mem configuration with "System RAM" > description. If it exists, mark the test as passed. Also, take the > opportunity to add 0x prefix to domu_{base,size} definition rather than > adding it in front of each occurence. > > Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Xenia Ragiadakou <burzalodowa@gmail.com> Also you fixed the hard tab. > --- > Patch made as part of the discussion: > https://lore.kernel.org/xen-devel/ba37ee02-c07c-2803-0867-149c779890b6@amd.com/ > > CC: Julien, Ayan > --- > automation/scripts/qemu-smoke-dom0less-arm64.sh | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh b/automation/scripts/qemu-smoke-dom0less-arm64.sh > index 2b59346fdcfd..182a4b6c18fc 100755 > --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh > +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh > @@ -16,14 +16,13 @@ fi > > if [[ "${test_variant}" == "static-mem" ]]; then > # Memory range that is statically allocated to DOM1 > - domu_base="50000000" > - domu_size="10000000" > + domu_base="0x50000000" > + domu_size="0x10000000" > passed="${test_variant} test passed" > domU_check=" > -current=\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/memory@${domu_base}/reg 2>/dev/null) > -expected=$(printf \"%016x%016x\" 0x${domu_base} 0x${domu_size}) > -if [[ \"\${expected}\" == \"\${current}\" ]]; then > - echo \"${passed}\" > +mem_range=$(printf \"%08x-%08x\" ${domu_base} $(( ${domu_base} + ${domu_size} - 1 ))) > +if grep -q -x \"\${mem_range} : System RAM\" /proc/iomem; then > + echo \"${passed}\" > fi > " > fi > @@ -126,7 +125,7 @@ UBOOT_SOURCE="boot.source" > UBOOT_SCRIPT="boot.scr"' > binaries/config > > if [[ "${test_variant}" == "static-mem" ]]; then > - echo -e "\nDOMU_STATIC_MEM[0]=\"0x${domu_base} 0x${domu_size}\"" >> binaries/config > + echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> binaries/config > fi > > if [[ "${test_variant}" == "boot-cpupools" ]]; then -- Xenia
On 23/01/2023 14:30, Xenia Ragiadakou wrote: > > On 1/23/23 15:10, Michal Orzel wrote: >> At the moment, the static-mem check relies on the way Xen exposes the >> memory banks in device tree. As this might change, the check should be >> modified to be generic and not to rely on device tree. In this case, >> let's use /proc/iomem which exposes the memory ranges in %08x format >> as follows: >> <start_addr>-<end_addr> : <description> >> >> This way, we can grep in /proc/iomem for an entry containing memory >> region defined by the static-mem configuration with "System RAM" >> description. If it exists, mark the test as passed. Also, take the >> opportunity to add 0x prefix to domu_{base,size} definition rather than >> adding it in front of each occurence. >> >> Signed-off-by: Michal Orzel <michal.orzel@amd.com> > > Reviewed-by: Xenia Ragiadakou <burzalodowa@gmail.com> Reviewed-by: Ayan Kumar Halder <ayan.kumar.halder@amd.com> > > Also you fixed the hard tab. > >> --- >> Patch made as part of the discussion: >> https://lore.kernel.org/xen-devel/ba37ee02-c07c-2803-0867-149c779890b6@amd.com/ >> >> >> CC: Julien, Ayan >> --- >> automation/scripts/qemu-smoke-dom0less-arm64.sh | 13 ++++++------- >> 1 file changed, 6 insertions(+), 7 deletions(-) >> >> diff --git a/automation/scripts/qemu-smoke-dom0less-arm64.sh >> b/automation/scripts/qemu-smoke-dom0less-arm64.sh >> index 2b59346fdcfd..182a4b6c18fc 100755 >> --- a/automation/scripts/qemu-smoke-dom0less-arm64.sh >> +++ b/automation/scripts/qemu-smoke-dom0less-arm64.sh >> @@ -16,14 +16,13 @@ fi >> if [[ "${test_variant}" == "static-mem" ]]; then >> # Memory range that is statically allocated to DOM1 >> - domu_base="50000000" >> - domu_size="10000000" >> + domu_base="0x50000000" >> + domu_size="0x10000000" >> passed="${test_variant} test passed" >> domU_check=" >> -current=\$(hexdump -e '16/1 \"%02x\"' >> /proc/device-tree/memory@${domu_base}/reg 2>/dev/null) >> -expected=$(printf \"%016x%016x\" 0x${domu_base} 0x${domu_size}) >> -if [[ \"\${expected}\" == \"\${current}\" ]]; then >> - echo \"${passed}\" >> +mem_range=$(printf \"%08x-%08x\" ${domu_base} $(( ${domu_base} + >> ${domu_size} - 1 ))) >> +if grep -q -x \"\${mem_range} : System RAM\" /proc/iomem; then >> + echo \"${passed}\" >> fi >> " >> fi >> @@ -126,7 +125,7 @@ UBOOT_SOURCE="boot.source" >> UBOOT_SCRIPT="boot.scr"' > binaries/config >> if [[ "${test_variant}" == "static-mem" ]]; then >> - echo -e "\nDOMU_STATIC_MEM[0]=\"0x${domu_base} 0x${domu_size}\"" >> >> binaries/config >> + echo -e "\nDOMU_STATIC_MEM[0]=\"${domu_base} ${domu_size}\"" >> >> binaries/config >> fi >> if [[ "${test_variant}" == "boot-cpupools" ]]; then >
© 2016 - 2024 Red Hat, Inc.