mirror of
https://github.com/cathugger/mkp224o.git
synced 2025-04-20 13:59:11 +00:00
use size_t for counter, some statistics tweaks
This commit is contained in:
parent
90f42c1675
commit
00df4f8416
1 changed files with 33 additions and 6 deletions
37
main.c
37
main.c
|
@ -527,14 +527,20 @@ struct statstruct {
|
||||||
u32 v;
|
u32 v;
|
||||||
size_t align;
|
size_t align;
|
||||||
} numsuccess;
|
} numsuccess;
|
||||||
|
union {
|
||||||
|
u32 v;
|
||||||
|
size_t align;
|
||||||
|
} numrestart;
|
||||||
} ;
|
} ;
|
||||||
VEC_STRUCT(statsvec,struct statstruct);
|
VEC_STRUCT(statsvec,struct statstruct);
|
||||||
|
|
||||||
struct tstatstruct {
|
struct tstatstruct {
|
||||||
u64 numcalc;
|
u64 numcalc;
|
||||||
u64 numsuccess;
|
u64 numsuccess;
|
||||||
|
u64 numrestart;
|
||||||
u32 oldnumcalc;
|
u32 oldnumcalc;
|
||||||
u32 oldnumsuccess;
|
u32 oldnumsuccess;
|
||||||
|
u32 oldnumrestart;
|
||||||
} ;
|
} ;
|
||||||
VEC_STRUCT(tstatsvec,struct tstatstruct);
|
VEC_STRUCT(tstatsvec,struct tstatstruct);
|
||||||
#endif
|
#endif
|
||||||
|
@ -643,6 +649,9 @@ static void *dowork(void *task)
|
||||||
|
|
||||||
initseed:
|
initseed:
|
||||||
randombytes(seed,sizeof(seed));
|
randombytes(seed,sizeof(seed));
|
||||||
|
#ifdef STATISTICS
|
||||||
|
++st->numrestart.v;
|
||||||
|
#endif
|
||||||
|
|
||||||
again:
|
again:
|
||||||
if (unlikely(endwork))
|
if (unlikely(endwork))
|
||||||
|
@ -706,7 +715,7 @@ static void *dofastwork(void *task)
|
||||||
u8 seed[SEED_LEN];
|
u8 seed[SEED_LEN];
|
||||||
u8 hashsrc[checksumstrlen + PUBLIC_LEN + 1];
|
u8 hashsrc[checksumstrlen + PUBLIC_LEN + 1];
|
||||||
ge_p3 ge_public;
|
ge_p3 ge_public;
|
||||||
u64 counter;
|
size_t counter;
|
||||||
size_t i;
|
size_t i;
|
||||||
char *sname;
|
char *sname;
|
||||||
#ifdef STATISTICS
|
#ifdef STATISTICS
|
||||||
|
@ -724,13 +733,16 @@ static void *dofastwork(void *task)
|
||||||
memcpy(sname, workdir, workdirlen);
|
memcpy(sname, workdir, workdirlen);
|
||||||
|
|
||||||
initseed:
|
initseed:
|
||||||
|
#ifdef STATISTICS
|
||||||
|
++st->numrestart.v;
|
||||||
|
#endif
|
||||||
randombytes(seed,sizeof(seed));
|
randombytes(seed,sizeof(seed));
|
||||||
ed25519_seckey_expand(sk,seed);
|
ed25519_seckey_expand(sk,seed);
|
||||||
|
|
||||||
ge_scalarmult_base(&ge_public,sk);
|
ge_scalarmult_base(&ge_public,sk);
|
||||||
ge_p3_tobytes(pk,&ge_public);
|
ge_p3_tobytes(pk,&ge_public);
|
||||||
|
|
||||||
for (counter = 0;counter < U64_MAX-8;counter += 8) {
|
for (counter = 0;counter < SIZE_MAX-8;counter += 8) {
|
||||||
ge_p1p1 sum;
|
ge_p1p1 sum;
|
||||||
|
|
||||||
if (unlikely(endwork))
|
if (unlikely(endwork))
|
||||||
|
@ -984,7 +996,11 @@ int main(int argc,char **argv)
|
||||||
if (!quietflag)
|
if (!quietflag)
|
||||||
printfilters();
|
printfilters();
|
||||||
|
|
||||||
|
#ifdef STATISTICS
|
||||||
|
if (!filters_count() && !reportdelay)
|
||||||
|
#else
|
||||||
if (!filters_count())
|
if (!filters_count())
|
||||||
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (outfile)
|
if (outfile)
|
||||||
|
@ -1058,7 +1074,7 @@ int main(int argc,char **argv)
|
||||||
#ifdef STATISTICS
|
#ifdef STATISTICS
|
||||||
clock_gettime(CLOCK_MONOTONIC,&nowtime);
|
clock_gettime(CLOCK_MONOTONIC,&nowtime);
|
||||||
inowtime = (1000000 * (u64)nowtime.tv_sec) + (nowtime.tv_nsec / 1000);
|
inowtime = (1000000 * (u64)nowtime.tv_sec) + (nowtime.tv_nsec / 1000);
|
||||||
u64 sumcalc = 0,sumsuccess = 0;
|
u64 sumcalc = 0,sumsuccess = 0,sumrestart = 0;
|
||||||
for (size_t i = 0;i < numthreads;++i) {
|
for (size_t i = 0;i < numthreads;++i) {
|
||||||
u32 newt,tdiff;
|
u32 newt,tdiff;
|
||||||
// numcalc
|
// numcalc
|
||||||
|
@ -1073,6 +1089,12 @@ int main(int argc,char **argv)
|
||||||
VEC_BUF(tstats,i).oldnumsuccess = newt;
|
VEC_BUF(tstats,i).oldnumsuccess = newt;
|
||||||
VEC_BUF(tstats,i).numsuccess += (u64)tdiff;
|
VEC_BUF(tstats,i).numsuccess += (u64)tdiff;
|
||||||
sumsuccess += VEC_BUF(tstats,i).numsuccess;
|
sumsuccess += VEC_BUF(tstats,i).numsuccess;
|
||||||
|
// numrestart
|
||||||
|
newt = VEC_BUF(stats,i).numrestart.v;
|
||||||
|
tdiff = newt - VEC_BUF(tstats,i).oldnumrestart;
|
||||||
|
VEC_BUF(tstats,i).oldnumrestart = newt;
|
||||||
|
VEC_BUF(tstats,i).numrestart += (u64)tdiff;
|
||||||
|
sumrestart += VEC_BUF(tstats,i).numrestart;
|
||||||
}
|
}
|
||||||
if (reportdelay && (!ireporttime || inowtime - ireporttime >= reportdelay)) {
|
if (reportdelay && (!ireporttime || inowtime - ireporttime >= reportdelay)) {
|
||||||
if (ireporttime)
|
if (ireporttime)
|
||||||
|
@ -1083,13 +1105,17 @@ int main(int argc,char **argv)
|
||||||
ireporttime = 1;
|
ireporttime = 1;
|
||||||
|
|
||||||
double calcpersec = (1000000.0 * sumcalc) / (inowtime - istarttime);
|
double calcpersec = (1000000.0 * sumcalc) / (inowtime - istarttime);
|
||||||
double successpersec = (1000000.0 * sumsuccess) / (inowtime - istarttime);
|
double succpersec = (1000000.0 * sumsuccess) / (inowtime - istarttime);
|
||||||
fprintf(stderr,">calc/sec:%8lf, success/sec:%8lf, elapsed:%5.6lfsec\n",calcpersec,successpersec,(inowtime - istarttime + elapsedoffset) / 1000000.0);
|
double restpersec = (1000000.0 * sumrestart) / (inowtime - istarttime);
|
||||||
|
fprintf(stderr,">calc/sec:%8lf, succ/sec:%8lf, rest/sec:%8lf, elapsed:%5.6lfsec\n",
|
||||||
|
calcpersec,succpersec,restpersec,
|
||||||
|
(inowtime - istarttime + elapsedoffset) / 1000000.0);
|
||||||
|
|
||||||
if (realtimestats) {
|
if (realtimestats) {
|
||||||
for (size_t i = 0;i < numthreads;++i) {
|
for (size_t i = 0;i < numthreads;++i) {
|
||||||
VEC_BUF(tstats,i).numcalc = 0;
|
VEC_BUF(tstats,i).numcalc = 0;
|
||||||
VEC_BUF(tstats,i).numsuccess = 0;
|
VEC_BUF(tstats,i).numsuccess = 0;
|
||||||
|
VEC_BUF(tstats,i).numrestart = 0;
|
||||||
}
|
}
|
||||||
elapsedoffset += inowtime - istarttime;
|
elapsedoffset += inowtime - istarttime;
|
||||||
istarttime = inowtime;
|
istarttime = inowtime;
|
||||||
|
@ -1099,6 +1125,7 @@ int main(int argc,char **argv)
|
||||||
for (size_t i = 0;i < numthreads;++i) {
|
for (size_t i = 0;i < numthreads;++i) {
|
||||||
VEC_BUF(tstats,i).numcalc /= 2;
|
VEC_BUF(tstats,i).numcalc /= 2;
|
||||||
VEC_BUF(tstats,i).numsuccess /= 2;
|
VEC_BUF(tstats,i).numsuccess /= 2;
|
||||||
|
VEC_BUF(tstats,i).numrestart /= 2;
|
||||||
}
|
}
|
||||||
u64 timediff = (inowtime - istarttime + 1) / 2;
|
u64 timediff = (inowtime - istarttime + 1) / 2;
|
||||||
elapsedoffset += timediff;
|
elapsedoffset += timediff;
|
||||||
|
|
Loading…
Add table
Reference in a new issue