Hello community, here is the log from the commit of package stress-ng for openSUSE:Factory checked in at 2019-11-10 22:54:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/stress-ng (Old) and /work/SRC/openSUSE:Factory/.stress-ng.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "stress-ng" Sun Nov 10 22:54:57 2019 rev:69 rq:747239 version:0.10.10 Changes: -------- --- /work/SRC/openSUSE:Factory/stress-ng/stress-ng.changes 2019-11-07 23:19:01.336697012 +0100 +++ /work/SRC/openSUSE:Factory/.stress-ng.new.2990/stress-ng.changes 2019-11-10 22:54:59.294709756 +0100 @@ -1,0 +2,12 @@ +Sun Nov 10 15:06:32 UTC 2019 - Martin Hauke <[email protected]> + +- Update to version 0.10.10 + * stress-ipsec-mb: rename IPSEC to IPSec + * stress-ipsec-mb: add helper function to get and memset the next job + * stress-ipsec-mb: increment jobs count in stress_job_check_status + * stress-ipsec-mb: check that jobs are complete as soon as possible + * stress-funcret: rename counter ii to i + * README: Fix typo in requests + * README: Add contributing information + +------------------------------------------------------------------- Old: ---- stress-ng-0.10.09.tar.xz New: ---- stress-ng-0.10.10.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ stress-ng.spec ++++++ --- /var/tmp/diff_new_pack.cBIgRG/_old 2019-11-10 22:54:59.910710543 +0100 +++ /var/tmp/diff_new_pack.cBIgRG/_new 2019-11-10 22:54:59.918710554 +0100 @@ -18,7 +18,7 @@ Name: stress-ng -Version: 0.10.09 +Version: 0.10.10 Release: 0 Summary: Tool to load and stress a computer License: GPL-2.0-only ++++++ stress-ng-0.10.09.tar.xz -> stress-ng-0.10.10.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stress-ng-0.10.09/Makefile new/stress-ng-0.10.10/Makefile --- old/stress-ng-0.10.09/Makefile 2019-11-06 02:05:43.000000000 +0100 +++ new/stress-ng-0.10.10/Makefile 2019-11-08 14:45:09.000000000 +0100 @@ -16,7 +16,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # -VERSION=0.10.09 +VERSION=0.10.10 # # Codename "systematic system smasher" # diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stress-ng-0.10.09/README new/stress-ng-0.10.10/README --- old/stress-ng-0.10.09/README 2019-11-06 02:05:43.000000000 +0100 +++ new/stress-ng-0.10.10/README 2019-11-08 14:45:09.000000000 +0100 @@ -112,3 +112,8 @@ I am keen to add to the stress-ng project page any citations to research or projects that use stress-ng. I also appreciate information concerning kernel bugs or performance regressions found with stress-ng. + +Contributing to stress-ng: + +Send patches to [email protected] or merge requests at +https://github.com/ColinIanKing/stress-ng diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stress-ng-0.10.09/stress-funcret.c new/stress-ng-0.10.10/stress-funcret.c --- old/stress-ng-0.10.09/stress-funcret.c 2019-11-06 02:05:43.000000000 +0100 +++ new/stress-ng-0.10.10/stress-funcret.c 2019-11-08 14:45:09.000000000 +0100 @@ -172,16 +172,16 @@ \ static void NOINLINE stress_funcret_ ## type(const args_t *args) \ { \ - register size_t ii; \ + register size_t i; \ type a; \ uint8_t data[sizeof(a)]; \ \ - for (ii = 0; ii < sizeof(data); ii++) \ - data[ii] = mwc8(); \ + for (i = 0; i < sizeof(data); i++) \ + data[i] = mwc8(); \ (void)memcpy(&a, data, sizeof(a)); \ \ do { \ - for (ii = 0; ii < 1000; ii++) { \ + for (i = 0; i < 1000; i++) { \ volatile type b; \ a = stress_funcret_ ## type ## 1(a); \ a = stress_funcret_deep_ ## type ## 1(a); \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stress-ng-0.10.09/stress-ipsec-mb.c new/stress-ng-0.10.10/stress-ipsec-mb.c --- old/stress-ng-0.10.09/stress-ipsec-mb.c 2019-11-06 02:05:43.000000000 +0100 +++ new/stress-ng-0.10.10/stress-ipsec-mb.c 2019-11-08 14:45:09.000000000 +0100 @@ -25,7 +25,7 @@ #include "stress-ng.h" static const help_t help[] = { - { NULL, "ipsec-mb N", "start N workers exercising the IPSEC MB encoding" }, + { NULL, "ipsec-mb N", "start N workers exercising the IPSec MB encoding" }, { NULL, "ipsec-mb-ops N", "stop after N ipsec bogo encoding operations" }, { NULL, NULL, NULL } }; @@ -111,6 +111,49 @@ ; } +static inline struct JOB_AES_HMAC *stress_job_get_next(struct MB_MGR *mb_mgr) +{ + struct JOB_AES_HMAC *job; + + job = IMB_GET_NEXT_JOB(mb_mgr); + (void)memset(job, 0, sizeof(*job)); + + return job; +} + +/* + * stress_job_check_status() + * check if jobs has completed, report error if not + */ +static void stress_job_check_status( + const args_t *args, + const char *name, + struct JOB_AES_HMAC *job, + int *jobs_done) +{ + (*jobs_done)++; + + if (job->status != STS_COMPLETED) { + pr_err("%s: %s: job not completed\n", + args->name, name); + } +} + +/* + * stress_jobs_done() + * check if all the jobs have completed + */ +static void stress_jobs_done( + const args_t *args, + const char *name, + const int jobs, + const int jobs_done) +{ + if (jobs_done != jobs) + pr_err("%s: %s: only processed %d of %d jobs\n", + args->name, name, jobs_done, jobs); +} + static void stress_sha( const args_t *args, struct MB_MGR *mb_mgr, @@ -118,45 +161,38 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; const int sha_digest_size = 64; struct JOB_AES_HMAC *job; - uint8_t digest[jobs * sha_digest_size]; - - stress_rnd_fill(digest, sizeof(digest)); + uint8_t padding[16]; + const size_t alloc_len = sha_digest_size + (sizeof(padding) * 2); + uint8_t *auth; + uint8_t auth_data[alloc_len * jobs]; + static const char name[] = "sha"; stress_job_empty(mb_mgr); - for (j = 0; j < jobs; j++) { - uint8_t *auth = digest + (j * sha_digest_size); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (auth = auth_data, j = 0; j < jobs; j++, auth += alloc_len) { + job = stress_job_get_next(mb_mgr); job->cipher_direction = ENCRYPT; job->chain_order = HASH_CIPHER; - job->auth_tag_output = auth; + job->auth_tag_output = auth + sizeof(padding); job->auth_tag_output_len_in_bytes = sha_digest_size; job->src = data; job->msg_len_to_hash_in_bytes = data_len; job->cipher_mode = NULL_CIPHER; job->hash_alg = PLAIN_SHA_512; + job->user_data = auth; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: sha: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: sha: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } static void stress_des( @@ -166,7 +202,7 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; struct JOB_AES_HMAC *job; uint8_t encoded[jobs * data_len] ALIGNED(16); @@ -174,18 +210,16 @@ uint8_t iv[16] ALIGNED(16); uint32_t enc_keys[15*4] ALIGNED(16); uint32_t dec_keys[15*4] ALIGNED(16); + uint8_t *dst; + static const char name[] = "des"; stress_rnd_fill(k, sizeof(k)); stress_rnd_fill(iv, sizeof(iv)); stress_job_empty(mb_mgr); IMB_AES_KEYEXP_256(mb_mgr, k, enc_keys, dec_keys); - for (j = 0; j < jobs; j++) { - uint8_t *dst = encoded + (j * data_len); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (dst = encoded, j = 0; j < jobs; j++, dst += data_len) { + job = stress_job_get_next(mb_mgr); job->cipher_direction = ENCRYPT; job->chain_order = CIPHER_HASH; job->src = data; @@ -202,21 +236,15 @@ job->user_data2 = (void *)((uint64_t)j); job->hash_alg = NULL_HASH; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: des: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: des: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } static void stress_cmac( @@ -226,7 +254,7 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; struct JOB_AES_HMAC *job; uint8_t key[16] ALIGNED(16); @@ -234,18 +262,16 @@ uint32_t dust[4 * 15] ALIGNED(16); uint32_t skey1[4], skey2[4]; uint8_t output[jobs * data_len] ALIGNED(16); + static const char name[] = "cmac"; + uint8_t *dst; stress_rnd_fill(key, sizeof(key)); IMB_AES_KEYEXP_128(mb_mgr, key, expkey, dust); IMB_AES_CMAC_SUBKEY_GEN_128(mb_mgr, expkey, skey1, skey2); stress_job_empty(mb_mgr); - for (j = 0; j < jobs; j++) { - uint8_t *dst = output + (j * 16); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (dst = output, j = 0; j < jobs; j++, dst += 16) { + job = stress_job_get_next(mb_mgr); job->cipher_direction = ENCRYPT; job->chain_order = HASH_CIPHER; job->cipher_mode = NULL_CIPHER; @@ -260,21 +286,15 @@ job->u.CMAC._skey2 = skey2; job->user_data = dst; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: cmac: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: cmac: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } static void stress_ctr( @@ -284,7 +304,7 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; struct JOB_AES_HMAC *job; uint8_t encoded[jobs * data_len] ALIGNED(16); @@ -292,18 +312,16 @@ uint8_t iv[12] ALIGNED(16); /* 4 byte nonce + 8 byte IV */ uint32_t expkey[4 * 15] ALIGNED(16); uint32_t dust[4 * 15] ALIGNED(16); + uint8_t *dst; + static const char name[] = "ctr"; stress_rnd_fill(key, sizeof(key)); stress_rnd_fill(iv, sizeof(iv)); IMB_AES_KEYEXP_256(mb_mgr, key, expkey, dust); stress_job_empty(mb_mgr); - for (j = 0; j < jobs; j++) { - uint8_t *dst = encoded + (j * data_len); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (dst = encoded, j = 0; j < jobs; j++, dst += data_len) { + job = stress_job_get_next(mb_mgr); job->cipher_direction = ENCRYPT; job->chain_order = CIPHER_HASH; job->cipher_mode = CNTR; @@ -318,21 +336,15 @@ job->cipher_start_src_offset_in_bytes = 0; job->msg_len_to_cipher_in_bytes = data_len; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: ctr: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: ctr: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } static void stress_hmac_md5( @@ -342,7 +354,7 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; size_t i; struct JOB_AES_HMAC *job; @@ -353,6 +365,8 @@ uint8_t ipad_hash[digest_size] ALIGNED(16); uint8_t opad_hash[digest_size] ALIGNED(16); uint8_t output[jobs * digest_size] ALIGNED(16); + uint8_t *dst; + static const char name[] = "hmac_md5"; stress_rnd_fill(key, sizeof(key)); for (i = 0; i < sizeof(key); i++) @@ -364,12 +378,8 @@ stress_job_empty(mb_mgr); - for (j = 0; j < jobs; j++) { - uint8_t *dst = output + (j * digest_size); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (dst = output, j = 0; j < jobs; j++, dst += digest_size) { + job = stress_job_get_next(mb_mgr); job->aes_enc_key_expanded = NULL; job->aes_dec_key_expanded = NULL; job->cipher_direction = ENCRYPT; @@ -391,21 +401,15 @@ job->hash_alg = MD5; job->user_data = dst; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: hmac md5: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: hmac md5: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } static void stress_hmac_sha1( @@ -415,7 +419,7 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; size_t i; struct JOB_AES_HMAC *job; @@ -426,6 +430,8 @@ uint8_t ipad_hash[digest_size] ALIGNED(16); uint8_t opad_hash[digest_size] ALIGNED(16); uint8_t output[jobs * digest_size] ALIGNED(16); + uint8_t *dst; + static const char name[] = "hmac_sha1"; stress_rnd_fill(key, sizeof(key)); for (i = 0; i < sizeof(key); i++) @@ -437,12 +443,8 @@ stress_job_empty(mb_mgr); - for (j = 0; j < jobs; j++) { - uint8_t *dst = output + (j * digest_size); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (dst = output, j = 0; j < jobs; j++, dst += digest_size) { + job = stress_job_get_next(mb_mgr); job->aes_enc_key_expanded = NULL; job->aes_dec_key_expanded = NULL; job->cipher_direction = ENCRYPT; @@ -464,21 +466,15 @@ job->hash_alg = SHA1; job->user_data = dst; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: hmac sha1: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: hmac sha1: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } static void stress_hmac_sha512( @@ -488,7 +484,7 @@ const size_t data_len, const int jobs) { - int j; + int j, jobs_done = 0; size_t i; struct JOB_AES_HMAC *job; @@ -500,6 +496,8 @@ uint8_t ipad_hash[digest_size] ALIGNED(16); uint8_t opad_hash[digest_size] ALIGNED(16); uint8_t output[jobs * digest_size] ALIGNED(16); + uint8_t *dst; + static const char name[] = "hmac_sha512"; stress_rnd_fill(rndkey, sizeof(rndkey)); @@ -514,12 +512,8 @@ stress_job_empty(mb_mgr); - for (j = 0; j < jobs; j++) { - uint8_t *dst = output + (j * digest_size); - - job = IMB_GET_NEXT_JOB(mb_mgr); - (void)memset(job, 0, sizeof(*job)); - + for (dst = output, j = 0; j < jobs; j++, dst += digest_size) { + job = stress_job_get_next(mb_mgr); job->aes_enc_key_expanded = NULL; job->aes_dec_key_expanded = NULL; job->cipher_direction = ENCRYPT; @@ -541,21 +535,15 @@ job->hash_alg = SHA_512; job->user_data = dst; job = IMB_SUBMIT_JOB(mb_mgr); - (void)job; + if (job) + stress_job_check_status(args, name, job, &jobs_done); } - for (j = 0; j < jobs; j++) { - job = IMB_FLUSH_JOB(mb_mgr); - if (!job) - break; - if (job->status != STS_COMPLETED) { - pr_err("%s: hmac sha512: job %d not completed\n", - args->name, j); - } - } - if (j != jobs) - pr_err("%s: hmac sha512: only processed %d of %d jobs\n", - args->name, j, jobs); + while ((job = IMB_FLUSH_JOB(mb_mgr)) != NULL) + stress_job_check_status(args, name, job, &jobs_done); + + stress_jobs_done(args, name, jobs, jobs_done); + stress_job_empty(mb_mgr); } @@ -589,11 +577,11 @@ p_mgr = alloc_mb_mgr(0); if (!p_mgr) { - pr_inf("%s: failed to setup Intel IPSEC MB library, skipping\n", args->name); + pr_inf("%s: failed to setup Intel IPSec MB library, skipping\n", args->name); return EXIT_NO_RESOURCE; } if (imb_get_version() < IMB_VERSION(0, 51, 0)) { - pr_inf("%s: version %s of Intel IPSEC MB library is too low, skipping\n", + pr_inf("%s: version %s of Intel IPSec MB library is too low, skipping\n", args->name, imb_get_version_str()); free_mb_mgr(p_mgr); return EXIT_NOT_IMPLEMENTED; @@ -609,7 +597,7 @@ } } if (!got_features) { - pr_inf("%s: not enough CPU features to support Intel IPSEC MB library, skipping\n", args->name); + pr_inf("%s: not enough CPU features to support Intel IPSec MB library, skipping\n", args->name); free_mb_mgr(p_mgr); return EXIT_NOT_IMPLEMENTED; } @@ -661,7 +649,7 @@ static int stress_ipsec_mb_supported(void) { pr_inf("ipsec_mb stressor will be skipped, CPU " - "needs to be an x86-64 and a recent IPSEC MB library is required.\n"); + "needs to be an x86-64 and a recent IPSec MB library is required.\n"); return -1; }
