mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-24 23:52:40 +00:00
svcrdma: Restore read and write stats
Now that we have an efficient mechanism to update these two stats, let's start maintaining them again. Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
22df5a2246
commit
1e7e557316
3 changed files with 22 additions and 10 deletions
|
@ -66,10 +66,10 @@ extern unsigned int svcrdma_max_requests;
|
||||||
extern unsigned int svcrdma_max_bc_requests;
|
extern unsigned int svcrdma_max_bc_requests;
|
||||||
extern unsigned int svcrdma_max_req_size;
|
extern unsigned int svcrdma_max_req_size;
|
||||||
|
|
||||||
|
extern struct percpu_counter svcrdma_stat_read;
|
||||||
extern struct percpu_counter svcrdma_stat_recv;
|
extern struct percpu_counter svcrdma_stat_recv;
|
||||||
extern atomic_t rdma_stat_read;
|
|
||||||
extern atomic_t rdma_stat_write;
|
|
||||||
extern struct percpu_counter svcrdma_stat_sq_starve;
|
extern struct percpu_counter svcrdma_stat_sq_starve;
|
||||||
|
extern struct percpu_counter svcrdma_stat_write;
|
||||||
extern atomic_t rdma_stat_rq_starve;
|
extern atomic_t rdma_stat_rq_starve;
|
||||||
extern atomic_t rdma_stat_rq_poll;
|
extern atomic_t rdma_stat_rq_poll;
|
||||||
extern atomic_t rdma_stat_rq_prod;
|
extern atomic_t rdma_stat_rq_prod;
|
||||||
|
|
|
@ -63,10 +63,10 @@ unsigned int svcrdma_max_req_size = RPCRDMA_DEF_INLINE_THRESH;
|
||||||
static unsigned int min_max_inline = RPCRDMA_DEF_INLINE_THRESH;
|
static unsigned int min_max_inline = RPCRDMA_DEF_INLINE_THRESH;
|
||||||
static unsigned int max_max_inline = RPCRDMA_MAX_INLINE_THRESH;
|
static unsigned int max_max_inline = RPCRDMA_MAX_INLINE_THRESH;
|
||||||
|
|
||||||
|
struct percpu_counter svcrdma_stat_read;
|
||||||
struct percpu_counter svcrdma_stat_recv;
|
struct percpu_counter svcrdma_stat_recv;
|
||||||
atomic_t rdma_stat_read;
|
|
||||||
atomic_t rdma_stat_write;
|
|
||||||
struct percpu_counter svcrdma_stat_sq_starve;
|
struct percpu_counter svcrdma_stat_sq_starve;
|
||||||
|
struct percpu_counter svcrdma_stat_write;
|
||||||
atomic_t rdma_stat_rq_starve;
|
atomic_t rdma_stat_rq_starve;
|
||||||
atomic_t rdma_stat_rq_poll;
|
atomic_t rdma_stat_rq_poll;
|
||||||
atomic_t rdma_stat_rq_prod;
|
atomic_t rdma_stat_rq_prod;
|
||||||
|
@ -178,10 +178,10 @@ static struct ctl_table svcrdma_parm_table[] = {
|
||||||
|
|
||||||
{
|
{
|
||||||
.procname = "rdma_stat_read",
|
.procname = "rdma_stat_read",
|
||||||
.data = &rdma_stat_read,
|
.data = &svcrdma_stat_read,
|
||||||
.maxlen = sizeof(atomic_t),
|
.maxlen = SVCRDMA_COUNTER_BUFSIZ,
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = read_reset_stat,
|
.proc_handler = svcrdma_counter_handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "rdma_stat_recv",
|
.procname = "rdma_stat_recv",
|
||||||
|
@ -192,10 +192,10 @@ static struct ctl_table svcrdma_parm_table[] = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "rdma_stat_write",
|
.procname = "rdma_stat_write",
|
||||||
.data = &rdma_stat_write,
|
.data = &svcrdma_stat_write,
|
||||||
.maxlen = sizeof(atomic_t),
|
.maxlen = SVCRDMA_COUNTER_BUFSIZ,
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = read_reset_stat,
|
.proc_handler = svcrdma_counter_handler,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.procname = "rdma_stat_sq_starve",
|
.procname = "rdma_stat_sq_starve",
|
||||||
|
@ -267,8 +267,10 @@ static void svc_rdma_proc_cleanup(void)
|
||||||
unregister_sysctl_table(svcrdma_table_header);
|
unregister_sysctl_table(svcrdma_table_header);
|
||||||
svcrdma_table_header = NULL;
|
svcrdma_table_header = NULL;
|
||||||
|
|
||||||
|
percpu_counter_destroy(&svcrdma_stat_write);
|
||||||
percpu_counter_destroy(&svcrdma_stat_sq_starve);
|
percpu_counter_destroy(&svcrdma_stat_sq_starve);
|
||||||
percpu_counter_destroy(&svcrdma_stat_recv);
|
percpu_counter_destroy(&svcrdma_stat_recv);
|
||||||
|
percpu_counter_destroy(&svcrdma_stat_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int svc_rdma_proc_init(void)
|
static int svc_rdma_proc_init(void)
|
||||||
|
@ -278,10 +280,16 @@ static int svc_rdma_proc_init(void)
|
||||||
if (svcrdma_table_header)
|
if (svcrdma_table_header)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
rc = percpu_counter_init(&svcrdma_stat_read, 0, GFP_KERNEL);
|
||||||
|
if (rc)
|
||||||
|
goto out_err;
|
||||||
rc = percpu_counter_init(&svcrdma_stat_recv, 0, GFP_KERNEL);
|
rc = percpu_counter_init(&svcrdma_stat_recv, 0, GFP_KERNEL);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
rc = percpu_counter_init(&svcrdma_stat_sq_starve, 0, GFP_KERNEL);
|
rc = percpu_counter_init(&svcrdma_stat_sq_starve, 0, GFP_KERNEL);
|
||||||
|
if (rc)
|
||||||
|
goto out_err;
|
||||||
|
rc = percpu_counter_init(&svcrdma_stat_write, 0, GFP_KERNEL);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto out_err;
|
goto out_err;
|
||||||
|
|
||||||
|
@ -289,7 +297,9 @@ static int svc_rdma_proc_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_err:
|
out_err:
|
||||||
|
percpu_counter_destroy(&svcrdma_stat_sq_starve);
|
||||||
percpu_counter_destroy(&svcrdma_stat_recv);
|
percpu_counter_destroy(&svcrdma_stat_recv);
|
||||||
|
percpu_counter_destroy(&svcrdma_stat_read);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -469,6 +469,7 @@ svc_rdma_build_writes(struct svc_rdma_write_info *info,
|
||||||
DMA_TO_DEVICE);
|
DMA_TO_DEVICE);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
percpu_counter_inc(&svcrdma_stat_write);
|
||||||
|
|
||||||
list_add(&ctxt->rw_list, &cc->cc_rwctxts);
|
list_add(&ctxt->rw_list, &cc->cc_rwctxts);
|
||||||
cc->cc_sqecount += ret;
|
cc->cc_sqecount += ret;
|
||||||
|
@ -719,6 +720,7 @@ static int svc_rdma_build_read_segment(struct svc_rdma_read_info *info,
|
||||||
segment->rs_handle, DMA_FROM_DEVICE);
|
segment->rs_handle, DMA_FROM_DEVICE);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return -EIO;
|
return -EIO;
|
||||||
|
percpu_counter_inc(&svcrdma_stat_read);
|
||||||
|
|
||||||
list_add(&ctxt->rw_list, &cc->cc_rwctxts);
|
list_add(&ctxt->rw_list, &cc->cc_rwctxts);
|
||||||
cc->cc_sqecount += ret;
|
cc->cc_sqecount += ret;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue