-
Notifications
You must be signed in to change notification settings - Fork 36.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add perf counter data to GetStrongRandBytes state in scheduler #10372
Conversation
941db6c
to
addee9f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK addee9fe03d4529b3e13c829861f98374f6f0d92. Implementation looks good and concept seems fine. There was discussion about it here: https://botbot.me/freenode/bitcoin-core-dev/msg/85210380/
src/random.cpp
Outdated
memcpy(rng_state, buf + 32, 32); | ||
} | ||
memory_cleanse((void*)&nPerfCounter1, sizeof(nPerfCounter1)); | ||
memory_cleanse((void*)&nPerfCounter2, sizeof(nPerfCounter2)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think you actually need these casts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed, I had just copied code from above.
* This sleeps for a millisecond, so should only be called when there is | ||
* no other work to be done. | ||
*/ | ||
void RandAddSeedSleep(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe move declaration up nearer to RandAddSeed()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I deliberately left it down by the GetStrongRandBytes instead of up by the RAND_add stuff. I'll let @sipa handle moving things around when he removes OpenSSL's rng.
addee9f
to
1dd6c61
Compare
src/random.cpp
Outdated
CSHA512 hasher; | ||
// Combine with and update state | ||
{ | ||
std::unique_lock<std::mutex> lock(cs_rng_state); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be nice to factor out the 'add this data to the random state' to a function, to make sure the same algorithm is used everywhere (e.g. to reduce the chance of accidental 'oops I replaced the state with all zeros' when there are more of these functions that add different entropy measurements).
utACK 1dd6c6151381a39d4f734e05a38f71021c9c719c. Only change since last review was removing void* casts. |
1dd6c61
to
888cce5
Compare
Added a separate AddDataToRng function for general use later. |
utACK 888cce5 |
utACK 888cce5 |
…heduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
…e in scheduler 888cce5 Add perf counter data to GetStrongRandBytes state in scheduler (Matt Corallo) 399fb8f Add internal method to add new random data to our internal RNG state (Matt Corallo) Tree-SHA512: 9732a3804d015eaf48d56b60c73880014845fd17a098f1ac2eff6bd50a4beb8b8be65956ac1f0d641e96e3a53c17daddd919401edbf2e3797c3fb687730fb913
No description provided.