Merge ~ian-may/+git/autotest-client-tests:jammy-focal-pts-compat-mp into ~canonical-kernel-team/+git/autotest-client-tests:master

Proposed by Ian May
Status: Superseded
Proposed branch: ~ian-may/+git/autotest-client-tests:jammy-focal-pts-compat-mp
Merge into: ~canonical-kernel-team/+git/autotest-client-tests:master
Diff against target: 81 lines (+12/-11)
3 files modified
ubuntu_performance_pts/control (+0/-1)
ubuntu_performance_pts/ubuntu_performance_pts.py (+10/-8)
ubuntu_performance_pts/user-config.xml (+2/-2)
Reviewer Review Type Date Requested Status
Po-Hsu Lin Needs Information
Review via email: mp+444071@code.launchpad.net

This proposal has been superseded by a proposal from 2023-06-13.

Description of the change

DGX Performance testing is moving from Bionic/Focal to Focal/Jammy. The ubuntu_performance_pts test needs some fixups for Jammy. These patches provide updates for Jammy compatibility with pts/john-the-ripper and pts/openssl

To post a comment you must log in.
Revision history for this message
Andrei Gherzan (agherzan) wrote :

I'm unsure if I understand the "UBUNTU: SAUCE: ubuntu_performance_pts: update user-config.xml" change. I would recommend expanding git log a bit.

Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Apart from the comment from Andrei, I am curious why we don't need to use squid.internal proxy anymore.

Also, with older releases the platform.dist() will error out with:
  AttributeError: module 'platform' has no attribute 'dist'

Do we need to run this test with Focal or even older releases? If the answer is yes then we might need to modify this part.

Other than this the code is looking good.

review: Needs Information
Revision history for this message
Ian May (ian-may) wrote :

> Apart from the comment from Andrei, I am curious why we don't need to use
> squid.internal proxy anymore.
>

I apologize for not providing better context. When using 'squid.internal' and running the openssl test "phoronix-test-suite batch-benchmark openssl-3.0.1". The test fails to download. I'll update the commit message with a summary.

$ sudo phoronix-test-suite batch-benchmark openssl-3.0.1

    Evaluating External Test Dependencies ........................................................................................................................................................................................................................

Phoronix Test Suite v10.8.4

    To Install: pts/openssl-3.0.1

    Determining File Requirements ................................................................................................................................................................................................................................
    Searching Download Caches ....................................................................................................................................................................................................................................

    1 Test To Install
        1 File To Download [14.41MB]
        430MB Of Disk Space Is Needed
        2 Minutes, 32 Seconds Estimated Install Time

    pts/openssl-3.0.1:
        Test Installation 1 of 1
        1 File Needed [14.41 MB / 1 Minute]
        Downloading: openssl-openssl-3.0.0.tar.gz [14.41MB]
            Download Failed: https://github.com/openssl/openssl/archive/refs/tags/openssl-3.0.0.tar.gz
            If able to locate the file elsewhere, place it in the download cache and re-run the command.

            Download Cache: /var/lib/phoronix-test-suite/download-cache/
            File Name: openssl-openssl-3.0.0.tar.gz
            SHA256: b39653402e398a2b89c3f1779f09fe273fda6b6d7873d2816b954b949a185b83
            Downloading of needed test files failed.

    [PROBLEM] pts/openssl-3.0.1 is not installed.

Removing the proxy the test downloads fine. If you know of a way to make this work via squid.internal I can pursue that method for as a resolution.

> Also, with older releases the platform.dist() will error out with:
> AttributeError: module 'platform' has no attribute 'dist'
>
> Do we need to run this test with Focal or even older releases? If the answer
> is yes then we might need to modify this part.

Thanks, there is a wrapper script for running the DGX Perf tests, it installs python2-minimal on Focal and Jammy which is why I didn't see any issues with platform.dist() in my testing. I'm adding a patch that will wrap that call to protect against errors on Python 3.8 and up.

>
> Other than this the code is looking good.

Unmerged commits

f950d5c... by Ian May

UBUNTU: SAUCE: ubuntu_performance_pts: update user-config.xml

Signed-off-by: Ian May <email address hidden>

ecf7d5d... by Ian May

UBUNTU: SAUCE: ubuntu_performance_pts: update openssl test

For Jammy compat we need to test against Openssl-3. If
running on Jammy use the pts openssl-3.0.1 test.

Add a PRESET_OPTION so we are only running the test we want
to measure.

Signed-off-by: Ian May <email address hidden>

e52690f... by Ian May

UBUNTU: SAUCE: ubuntu_performance_pts: update john-the-ripper version

For Jammy compat, update to john-the-ripper-1.8.0 to fix a compile error that was
introduced using gcc-11. Continue running john-the-ripper-1.7.2 for Focal.

Signed-off-by: Ian May <email address hidden>

fa0a4a1... by Ian May

UBUNTU: SAUCE: ubuntu_performance_pts: remove john-the-ripper DES test

This test is not valid on Focal and later. We no longer
run Perf tests on Bionic so we can remove the test.

Signed-off-by: Ian May <email address hidden>

ba505b4... by Ian May

UBUNTU: SAUCE: ubuntu_performance_pts update version of PTS

This version provides proper functionality on Jammy, such as
better batch interactive support and updated JTR and openssl
tests.

Signed-off-by: Ian May <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/ubuntu_performance_pts/control b/ubuntu_performance_pts/control
2index 9ccb7d7..80d6767 100644
3--- a/ubuntu_performance_pts/control
4+++ b/ubuntu_performance_pts/control
5@@ -17,7 +17,6 @@ result = job.run_test_detail(NAME, test_name='setup', tag='setup', subtest='setu
6 if result == 'GOOD':
7 jobs = [
8 [ 'john-the-ripper', 'john-the-ripper-blowfish', 30 ],
9- [ 'john-the-ripper', 'john-the-ripper-des', 30 ],
10 [ 'openssl', 'openssl', 30 ],
11 [ 'povray', 'povray', 80 ],
12 [ 'ttsiod-renderer', 'ttsiod-renderer', 30 ],
13diff --git a/ubuntu_performance_pts/phoronix-test-suite_10.8.4_all.deb b/ubuntu_performance_pts/phoronix-test-suite_10.8.4_all.deb
14new file mode 100644
15index 0000000..d3bcd8b
16Binary files /dev/null and b/ubuntu_performance_pts/phoronix-test-suite_10.8.4_all.deb differ
17diff --git a/ubuntu_performance_pts/phoronix-test-suite_7.8.0_all.deb b/ubuntu_performance_pts/phoronix-test-suite_7.8.0_all.deb
18deleted file mode 100644
19index 797f6bb..0000000
20Binary files a/ubuntu_performance_pts/phoronix-test-suite_7.8.0_all.deb and /dev/null differ
21diff --git a/ubuntu_performance_pts/ubuntu_performance_pts.py b/ubuntu_performance_pts/ubuntu_performance_pts.py
22index 60228c8..b9d91c7 100644
23--- a/ubuntu_performance_pts/ubuntu_performance_pts.py
24+++ b/ubuntu_performance_pts/ubuntu_performance_pts.py
25@@ -136,7 +136,7 @@ class ubuntu_performance_pts(test.test):
26 self.results += self.setup_config(pwd.getpwnam(username)[5])
27 self.results += self.setup_config(os.path.expanduser("~"))
28
29- self.results += utils.system_output('dpkg -i %s' % os.path.join(self.bindir, 'phoronix-test-suite_7.8.0_all.deb'), retain_output=True)
30+ self.results += utils.system_output('dpkg -i %s' % os.path.join(self.bindir, 'phoronix-test-suite_10.8.4_all.deb'), retain_output=True)
31 self.results += utils.system_output('phoronix-test-suite enterprise-setup', retain_output=True)
32 self.results += utils.system_output('yes n | phoronix-test-suite batch-setup', retain_output=True)
33
34@@ -228,15 +228,18 @@ class ubuntu_performance_pts(test.test):
35 print("NOTRUN: test not run, no data")
36
37 def run_john_the_ripper_blowfish(self, test_name, tag):
38- cmd = 'export PRESET_OPTIONS="john-the-ripper.run-test=Blowfish"; %s phoronix-test-suite batch-benchmark john-the-ripper-1.7.2' % force_times_to_run
39+ if platform.dist()[1].split('.')[0] > "20":
40+ cmd = 'export PRESET_OPTIONS="john-the-ripper.run-test=Blowfish"; %s phoronix-test-suite batch-benchmark john-the-ripper-1.8.0' % force_times_to_run
41+ else:
42+ cmd = 'export PRESET_OPTIONS="john-the-ripper.run-test=Blowfish"; %s phoronix-test-suite batch-benchmark john-the-ripper-1.7.2' % force_times_to_run
43 self.print_stats('john_the_ripper_blowfish', cmd)
44
45- def run_john_the_ripper_des(self, test_name, tag):
46- cmd = 'export PRESET_OPTIONS="john-the-ripper.run-test=Traditional DES"; %s phoronix-test-suite batch-benchmark john-the-ripper-1.6.2' % force_times_to_run
47- self.print_stats('john_the_ripper_des', cmd)
48-
49 def run_openssl(self, test_name, tag):
50- cmd = '%s phoronix-test-suite batch-benchmark openssl-1.11.0' % force_times_to_run
51+ #If series is greater than focal(20) we need to use Openssl-3
52+ if platform.dist()[1].split('.')[0] > "20":
53+ cmd = 'export PRESET_OPTIONS="openssl.algo=RSA4096"; %s phoronix-test-suite batch-benchmark openssl-3.0.1' % force_times_to_run
54+ else:
55+ cmd = 'export PRESET_OPTIONS="openssl.algo=RSA4096"; %s phoronix-test-suite batch-benchmark openssl-1.11.0' % force_times_to_run
56 self.print_stats(test_name, cmd)
57
58 def run_povray(self, test_name, tag):
59@@ -277,7 +280,6 @@ class ubuntu_performance_pts(test.test):
60 'git': self.run_generic,
61 'build-llvm': self.run_generic,
62 'john-the-ripper-blowfish' : self.run_john_the_ripper_blowfish,
63- 'john-the-ripper-des': self.run_john_the_ripper_des,
64 'openssl': self.run_openssl,
65 'osbench-files': self.run_osbench_files,
66 'osbench-processes': self.run_osbench_files,
67diff --git a/ubuntu_performance_pts/user-config.xml b/ubuntu_performance_pts/user-config.xml
68index de80ed8..19ba6cb 100644
69--- a/ubuntu_performance_pts/user-config.xml
70+++ b/ubuntu_performance_pts/user-config.xml
71@@ -56,8 +56,8 @@
72 <NoInternetCommunication>FALSE</NoInternetCommunication>
73 <NoNetworkCommunication>FALSE</NoNetworkCommunication>
74 <Timeout>20</Timeout>
75- <ProxyAddress>squid.internal</ProxyAddress>
76- <ProxyPort>3128</ProxyPort>
77+ <ProxyAddress></ProxyAddress>
78+ <ProxyPort></ProxyPort>
79 <ProxyUser></ProxyUser>
80 <ProxyPassword></ProxyPassword>
81 </Networking>

Subscribers

People subscribed via source and target branches

to all changes: