From: Perry Gagne pgagne@redhat.com
Found a few issues when enabling catalog support for Neper style results. Also added version information to NeperFlowMeasurementResults
Perry Gagne (3): NeperFlowMeasurement.py: Add request/response size to server params NeperFlowMeasurement.py: Add neper version Neper.py: Fixed handling of stderr.
.../Perf/Measurements/NeperFlowMeasurement.py | 14 ++++++++++++++ lnst/Tests/Neper.py | 5 +++-- 2 files changed, 17 insertions(+), 2 deletions(-)
From: Perry Gagne pgagne@redhat.com
Turns out if neper doesn't have the response size definied on the server side, it defaults to 1, instead of whatever the client param is.
Signed-off-by: Perry Gagne pgagne@redhat.com --- lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py b/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py index 84a00c16..6976547d 100644 --- a/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py +++ b/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py @@ -78,6 +78,10 @@ class NeperFlowMeasurement(BaseFlowMeasurement): elif flow.cpupin is not None: raise RecipeError("Negative perf cpupin value provided.")
+ if flow.msg_size: + server_params["request_size"] = flow.msg_size + server_params["response_size"] = flow.msg_size + return host.prepare_job(NeperServer(**server_params), job_level=ResultLevel.NORMAL)
From: Perry Gagne pgagne@redhat.com
We might want to know what version of neper was used when looking at result data. Neper reports its version in one of its outputted lines (VERSION=...). So we should save that as part of the FlowMeasurement
Signed-off-by: Perry Gagne pgagne@redhat.com --- .../Perf/Measurements/NeperFlowMeasurement.py | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py b/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py index 6976547d..236c2c9b 100644 --- a/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py +++ b/lnst/RecipeCommon/Perf/Measurements/NeperFlowMeasurement.py @@ -20,11 +20,17 @@ class NeperFlowMeasurement(BaseFlowMeasurement): self._flows = flows self._running_measurements = [] self._finished_measurements = [] + self._host_versions = {}
@property def flows(self) -> List[Flow]: return self._flows
+ @property + def version(self): + return {"measurement_version": self._MEASUREMENT_VERSION, + "hosts_neper_versions": self._host_versions} + def start(self): if len(self._running_measurements) > 0: raise MeasurementError("Measurement already running!") @@ -127,10 +133,14 @@ class NeperFlowMeasurement(BaseFlowMeasurement): generator_stats = self._parse_job_samples(test_flow.client_job) flow_results.generator_results = generator_stats[0] flow_results.generator_cpu_stats = generator_stats[1] + self._host_versions[test_flow.flow.generator] = \ + test_flow.client_job.result["data"]["VERSION"]
receiver_stats = self._parse_job_samples(test_flow.server_job) flow_results.receiver_results = receiver_stats[0] flow_results.receiver_cpu_stats = receiver_stats[1] + self._host_versions[test_flow.flow.receiver] = \ + test_flow.server_job.result["data"]["VERSION"]
results.append(flow_results)
From: Perry Gagne pgagne@redhat.com
stderr in result dict wasn't getting populated when the job failed, due to it returning before it could be set.
Signed-off-by: Perry Gagne pgagne@redhat.com --- lnst/Tests/Neper.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lnst/Tests/Neper.py b/lnst/Tests/Neper.py index 69d96adf..3c2b6445 100644 --- a/lnst/Tests/Neper.py +++ b/lnst/Tests/Neper.py @@ -64,6 +64,9 @@ class NeperBase(BaseTestModule): universal_newlines=True, shell=True, close_fds=True, cwd=NEPER_PATH)
+ self._res_data["stderr"] = res.stderr + self._res_data["data"] = self._parse_result(res) + if res.stderr != "": self._res_data["msg"] = f"errors reported by {self.params.workload}" logging.error(self._res_data["msg"]) @@ -75,8 +78,6 @@ class NeperBase(BaseTestModule): logging.error(self._res_data["msg"]) return False
- self._res_data["data"] = self._parse_result(res) - self._res_data["stderr"] = res.stderr self._res_data["samples"] = [r for r in csv.DictReader(sf)]
return True
Tue, Mar 23, 2021 at 04:42:17PM CET, pgagne@redhat.com wrote:
From: Perry Gagne pgagne@redhat.com
Found a few issues when enabling catalog support for Neper style results. Also added version information to NeperFlowMeasurementResults
Perry Gagne (3): NeperFlowMeasurement.py: Add request/response size to server params NeperFlowMeasurement.py: Add neper version Neper.py: Fixed handling of stderr.
.../Perf/Measurements/NeperFlowMeasurement.py | 14 ++++++++++++++ lnst/Tests/Neper.py | 5 +++-- 2 files changed, 17 insertions(+), 2 deletions(-)
-- 2.30.2 _______________________________________________ LNST-developers mailing list -- lnst-developers@lists.fedorahosted.org To unsubscribe send an email to lnst-developers-leave@lists.fedorahosted.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedorahosted.org/archives/list/lnst-developers@lists.fedorahos... Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
Ack to series.
Acked-by: Jan Tluka jtluka@redhat.com
pushed, thanks.
-Ondrej
On Tue, Mar 23, 2021 at 11:42:17AM -0400, pgagne@redhat.com wrote:
From: Perry Gagne pgagne@redhat.com
Found a few issues when enabling catalog support for Neper style results. Also added version information to NeperFlowMeasurementResults
Perry Gagne (3): NeperFlowMeasurement.py: Add request/response size to server params NeperFlowMeasurement.py: Add neper version Neper.py: Fixed handling of stderr.
.../Perf/Measurements/NeperFlowMeasurement.py | 14 ++++++++++++++ lnst/Tests/Neper.py | 5 +++-- 2 files changed, 17 insertions(+), 2 deletions(-)
-- 2.30.2 _______________________________________________ LNST-developers mailing list -- lnst-developers@lists.fedorahosted.org To unsubscribe send an email to lnst-developers-leave@lists.fedorahosted.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedorahosted.org/archives/list/lnst-developers@lists.fedorahos... Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
lnst-developers@lists.fedorahosted.org