mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-11 07:17:58 +00:00
Get statistics on how long usb reads and writes wait on the devlock.
This commit is contained in:
parent
87ddfcc8a6
commit
3eece61819
6
miner.h
6
miner.h
@ -481,6 +481,12 @@ struct cgpu_info {
|
||||
#endif
|
||||
#ifdef USE_USBUTILS
|
||||
struct cg_usb_info usbinfo;
|
||||
int usb_bulk_writes;
|
||||
int usb_bulk_reads;
|
||||
int usb_wlock_total_wait;
|
||||
int usb_rlock_total_wait;
|
||||
int usb_wlock_max_wait;
|
||||
int usb_rlock_max_wait;
|
||||
#endif
|
||||
#ifdef USE_MODMINER
|
||||
char fpgaid;
|
||||
|
20
usbutils.c
20
usbutils.c
@ -2301,8 +2301,18 @@ int _usb_read(struct cgpu_info *cgpu, int intinfo, int epinfo, char *buf, size_t
|
||||
int endlen;
|
||||
unsigned char *ptr, *usbbuf = cgpu->usbinfo.bulkbuf;
|
||||
size_t usbbufread;
|
||||
int lock_wait;
|
||||
|
||||
/* Get statistics on how long reads wait on the devlock */
|
||||
cgpu->usb_bulk_reads++;
|
||||
|
||||
cgtime(&read_start);
|
||||
DEVLOCK(cgpu, pstate);
|
||||
cgtime(&tv_finish);
|
||||
lock_wait = ms_tdiff(&tv_finish, &read_start);
|
||||
cgpu->usb_rlock_total_wait += lock_wait;
|
||||
if (lock_wait > cgpu->usb_rlock_max_wait)
|
||||
cgpu->usb_rlock_max_wait = lock_wait;
|
||||
|
||||
if (cgpu->usbinfo.nodev) {
|
||||
*buf = '\0';
|
||||
@ -2567,8 +2577,18 @@ int _usb_write(struct cgpu_info *cgpu, int intinfo, int epinfo, char *buf, size_
|
||||
double max, done;
|
||||
__maybe_unused bool first = true;
|
||||
int err, sent, tot, pstate;
|
||||
int lock_wait;
|
||||
|
||||
/* Get statistics on how long writes wait on the devlock */
|
||||
cgpu->usb_bulk_writes++;
|
||||
|
||||
cgtime(&read_start);
|
||||
DEVLOCK(cgpu, pstate);
|
||||
cgtime(&tv_finish);
|
||||
lock_wait = ms_tdiff(&tv_finish, &read_start);
|
||||
cgpu->usb_wlock_total_wait += lock_wait;
|
||||
if (lock_wait > cgpu->usb_wlock_max_wait)
|
||||
cgpu->usb_wlock_max_wait = lock_wait;
|
||||
|
||||
USBDEBUG("USB debug: _usb_write(%s (nodev=%s),intinfo=%d,epinfo=%d,buf='%s',bufsiz=%d,proc=%p,timeout=%u,cmd=%s)", cgpu->drv->name, bool_str(cgpu->usbinfo.nodev), intinfo, epinfo, (char *)str_text(buf), (int)bufsiz, processed, timeout, usb_cmdname(cmd));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user