From 52fde944a5739b6ff4e0a4a019a974611b0fbf37 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Tue, 25 Jun 2024 09:01:36 -0700 Subject: [PATCH 1/3] resources: Update client_query to trim gem5 version (#1284) - gem5 was querying the full version of gem5 that is `24.0.0.0` while searching for resources. This was causing an error to find resources on staging branch. This change trims the gem5 version to be just the major.minor version. Change-Id: I30c3a1b38c631981f797ef0fd2b616e6a66ca18e --- src/python/gem5/resources/client_api/client_query.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/python/gem5/resources/client_api/client_query.py b/src/python/gem5/resources/client_api/client_query.py index b41ef6b2f8..88fb149d9f 100644 --- a/src/python/gem5/resources/client_api/client_query.py +++ b/src/python/gem5/resources/client_api/client_query.py @@ -45,7 +45,10 @@ class ClientQuery: ): self.resource_id = resource_id self.resource_version = resource_version - self.gem5_version = gem5_version + # We only need the major and minor version numbers. + # As on database side, we only store the major and minor + # version numbers. + self.gem5_version = ".".join(gem5_version.split(".")[:2]) def get_resource_id(self) -> str: return self.resource_id From 144a2071fef2ee5fb937d7a8fdfdf2c69f869364 Mon Sep 17 00:00:00 2001 From: Harshil Patel Date: Tue, 25 Jun 2024 16:30:07 -0700 Subject: [PATCH 2/3] resources: fix check for additional_params for workloads Change-Id: I0a4b5f0eef6e2f9faf35cea8130572a066aab6cd --- src/python/gem5/resources/resource.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/python/gem5/resources/resource.py b/src/python/gem5/resources/resource.py index b3432ffe07..bccf0a1b87 100644 --- a/src/python/gem5/resources/resource.py +++ b/src/python/gem5/resources/resource.py @@ -1164,7 +1164,10 @@ def _get_workload( ) # Adding the additional parameters to the workload parameters - if workload["additional_params"]: + if ( + "additional_params" in workload.keys() + and workload["additional_params"] + ): for key in workload["additional_params"].keys(): assert isinstance(key, str) value = workload["additional_params"][key] From 3ce5e0584af9019693aff72b2b6b12c76e3bc3df Mon Sep 17 00:00:00 2001 From: Rajesh Shashi Kumar <35628747+rajesh-s@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:03:50 -0500 Subject: [PATCH 3/3] arch-arm: This commit fixes a typo in the ARM ldaddalx instruction (#1279) The acquire-release flavor of the ldadd instruction should read ldaddalx (eg. ldaddalb/ldaddalh) according to specification. However, this is currently noted as ldadd"la"x (eg. ldaddlab/ldaddlah). Issue: https://github.com/gem5/gem5/issues/1224 Change-Id: Ib932fa0e572207729c923c27f24c34cc21dff0e5 Co-authored-by: Bobby R. Bruce --- src/arch/arm/isa/formats/aarch64.isa | 8 ++++---- src/arch/arm/isa/insts/amo64.isa | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/arch/arm/isa/formats/aarch64.isa b/src/arch/arm/isa/formats/aarch64.isa index 246d1a7836..537393aa23 100644 --- a/src/arch/arm/isa/formats/aarch64.isa +++ b/src/arch/arm/isa/formats/aarch64.isa @@ -741,7 +741,7 @@ namespace Aarch64 if (o3 == 1) return new SWPLAB(machInst, rt, rnsp, rs); else - return new LDADDLAB(machInst, rt, rnsp, rs); + return new LDADDALB(machInst, rt, rnsp, rs); case 0x4: if (o3 == 1) return new SWPH(machInst, rt, rnsp, rs); @@ -765,7 +765,7 @@ namespace Aarch64 if (o3 == 1) return new SWPLAH(machInst, rt, rnsp, rs); else - return new LDADDLAH(machInst, rt, rnsp, rs); + return new LDADDALH(machInst, rt, rnsp, rs); case 0x8: if (o3 == 1) return new SWP(machInst, rt, rnsp, rs); @@ -789,7 +789,7 @@ namespace Aarch64 if (o3 == 1) return new SWPLA(machInst, rt, rnsp, rs); else - return new LDADDLA(machInst, rt, rnsp, rs); + return new LDADDAL(machInst, rt, rnsp, rs); case 0xc: if (o3 == 1) return new SWP64(machInst, rt, rnsp, rs); @@ -814,7 +814,7 @@ namespace Aarch64 if (o3 == 1) return new SWPLA64(machInst, rt, rnsp, rs); else - return new LDADDLA64(machInst, rt, rnsp, rs); + return new LDADDAL64(machInst, rt, rnsp, rs); default: GEM5_UNREACHABLE; } diff --git a/src/arch/arm/isa/insts/amo64.isa b/src/arch/arm/isa/insts/amo64.isa index 3de9a41bfe..5e1b351470 100644 --- a/src/arch/arm/isa/insts/amo64.isa +++ b/src/arch/arm/isa/insts/amo64.isa @@ -427,7 +427,7 @@ let {{ flavor="release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldaddab", "LDADDAB", 1, unsign=True, flavor="acquire").emit(OP_DICT['ADD']) - AtomicArithmeticSingleOp("ldaddlab", "LDADDLAB", 1, unsign=True, + AtomicArithmeticSingleOp("ldaddalb", "LDADDALB", 1, unsign=True, flavor="acquire_release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldaddh", "LDADDH", 2, unsign=True, flavor="normal").emit(OP_DICT['ADD']) @@ -435,7 +435,7 @@ let {{ flavor="release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldaddah", "LDADDAH", 2, unsign=True, flavor="acquire").emit(OP_DICT['ADD']) - AtomicArithmeticSingleOp("ldaddlah", "LDADDLAH", 2, unsign=True, + AtomicArithmeticSingleOp("ldaddalh", "LDADDALH", 2, unsign=True, flavor="acquire_release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldadd", "LDADD", 4, unsign=True, flavor="normal").emit(OP_DICT['ADD']) @@ -443,7 +443,7 @@ let {{ flavor="release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldadda", "LDADDA", 4, unsign=True, flavor="acquire").emit(OP_DICT['ADD']) - AtomicArithmeticSingleOp("ldaddla", "LDADDLA", 4, unsign=True, + AtomicArithmeticSingleOp("ldaddal", "LDADDAL", 4, unsign=True, flavor="acquire_release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldadd64", "LDADD64", 8, unsign=True, flavor="normal").emit(OP_DICT['ADD']) @@ -451,7 +451,7 @@ let {{ flavor="release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldadda64", "LDADDA64", 8, unsign=True, flavor="acquire").emit(OP_DICT['ADD']) - AtomicArithmeticSingleOp("ldaddla64", "LDADDLA64", 8, unsign=True, + AtomicArithmeticSingleOp("ldaddal64", "LDADDAL64", 8, unsign=True, flavor="acquire_release").emit(OP_DICT['ADD']) AtomicArithmeticSingleOp("ldclrb", "LDCLRB", 1, unsign=True,