-
Notifications
You must be signed in to change notification settings - Fork 816
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
Latest kncasic fixes from kncasic-neptune branch #599
base: bfgminer
Are you sure you want to change the base?
Conversation
This reduces CPU load dramatically. The same was done for Titan.
Also reduce severity of "Communication error" and "timeout" messages
@@ -72,6 +72,7 @@ struct knc_core_state { | |||
int slot; | |||
uint32_t nonce; | |||
} last_nonce; | |||
uint32_t last_nonce_verified; |
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.
Is it normal for duplicate nonces?? :/
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 am not sure what is your point here... Can you please elaborate?
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.
If duplicate nonces are normal, it makes sense to detect and suppress them. If they're indicative of a problem or rare, it may be better to let the user find out by not filtering them.
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.
The majority of those duplicates is caused by communication errors due to external noise and crosstalks in the ribbon cable. So, basically they are expected; that's why I want to filter them out.
As to how frequent they are: in some setups I have seen up to 2% of duplicates, depending on level of external noise.
That exposure to the communication errors is something that was expected. We have checksums in the communication protocol, communication errors are being detected, but in kncasic driver we decided to process errored messages as well, just in hope that some of the reported nonces are still valid and we want to deliver valid nonces to the pool as soon as possible. So, in some sense filtering of duplicates is a tall we pay for ASAP delivery of golden nonce.
@@ -72,6 +72,7 @@ struct knc_core_state { | |||
int slot; | |||
uint32_t nonce; |
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.
Flush
What's the status of this? Should I merge it? |
@@ -155,8 +155,7 @@ struct knc_state { | |||
/* lock to protect resources between different threads */ | |||
pthread_mutex_t state_lock; | |||
|
|||
/* Do not add anything below here!! core[] must be last */ | |||
struct knc_core_state core[]; | |||
struct knc_core_state core[KNC_MAX_ASICS * KNC_MAX_DIES_PER_ASIC * KNC_MAX_CORES_PER_DIE]; | |||
}; | |||
|
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.
be happy
No description provided.