mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	net: rds: add per rds connection cache statistics
The variable cache_allocs is to indicate how many frags (KiB) are in one
rds connection frag cache.
The command "rds-info -Iv" will output the rds connection cache
statistics as below:
"
RDS IB Connections:
      LocalAddr RemoteAddr Tos SL  LocalDev            RemoteDev
      1.1.1.14 1.1.1.14   58 255  fe80::2:c903🅰️7a31 fe80::2:c903🅰️7a31
      send_wr=256, recv_wr=1024, send_sge=8, rdma_mr_max=4096,
      rdma_mr_size=257, cache_allocs=12
"
This means that there are about 12KiB frag in this rds connection frag
cache.
Since rds.h in rds-tools is not related with the kernel rds.h, the change
in kernel rds.h does not affect rds-tools.
rds-info in rds-tools 2.0.5 and 2.0.6 is tested with this commit. It works
well.
Signed-off-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
			
			
This commit is contained in:
		
							parent
							
								
									dceebd4c92
								
							
						
					
					
						commit
						fe3475af3b
					
				
					 2 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -250,6 +250,7 @@ struct rds_info_rdma_connection {
 | 
			
		|||
	__u32		rdma_mr_max;
 | 
			
		||||
	__u32		rdma_mr_size;
 | 
			
		||||
	__u8		tos;
 | 
			
		||||
	__u32		cache_allocs;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct rds6_info_rdma_connection {
 | 
			
		||||
| 
						 | 
				
			
			@ -264,6 +265,7 @@ struct rds6_info_rdma_connection {
 | 
			
		|||
	__u32		rdma_mr_max;
 | 
			
		||||
	__u32		rdma_mr_size;
 | 
			
		||||
	__u8		tos;
 | 
			
		||||
	__u32		cache_allocs;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/* RDS message Receive Path Latency points */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -318,6 +318,7 @@ static int rds_ib_conn_info_visitor(struct rds_connection *conn,
 | 
			
		|||
		iinfo->max_recv_wr = ic->i_recv_ring.w_nr;
 | 
			
		||||
		iinfo->max_send_sge = rds_ibdev->max_sge;
 | 
			
		||||
		rds_ib_get_mr_info(rds_ibdev, iinfo);
 | 
			
		||||
		iinfo->cache_allocs = atomic_read(&ic->i_cache_allocs);
 | 
			
		||||
	}
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -351,6 +352,7 @@ static int rds6_ib_conn_info_visitor(struct rds_connection *conn,
 | 
			
		|||
		iinfo6->max_recv_wr = ic->i_recv_ring.w_nr;
 | 
			
		||||
		iinfo6->max_send_sge = rds_ibdev->max_sge;
 | 
			
		||||
		rds6_ib_get_mr_info(rds_ibdev, iinfo6);
 | 
			
		||||
		iinfo6->cache_allocs = atomic_read(&ic->i_cache_allocs);
 | 
			
		||||
	}
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue