* CRR-N, Client Round Robin over NIDs
* @{
*/
+#include <libcfs/linux/linux-hash.h>
/**
* private data structure for CRR-N NRS
*/
struct nrs_crrn_net {
struct ptlrpc_nrs_resource cn_res;
- cfs_binheap_t *cn_binheap;
- cfs_hash_t *cn_cli_hash;
+ struct binheap *cn_binheap;
+ /* CRR-N NRS - NID hash body */
+ struct rhashtable cn_cli_hash;
/**
* Used when a new scheduling round commences, in order to synchronize
* all clients with the new round number.
*/
struct nrs_crrn_client {
struct ptlrpc_nrs_resource cc_res;
- struct hlist_node cc_hnode;
+ struct rhash_head cc_rhead;
lnet_nid_t cc_nid;
/**
* The round number against which this client is currently scheduling
/**
* CRR-N policy operations.
+ *
+ * Read the RR quantum size of a CRR-N policy.
*/
-enum nrs_ctl_crr {
- /**
- * Read the RR quantum size of a CRR-N policy.
- */
- NRS_CTL_CRRN_RD_QUANTUM = PTLRPC_NRS_CTL_1ST_POL_SPEC,
- /**
- * Write the RR quantum size of a CRR-N policy.
- */
- NRS_CTL_CRRN_WR_QUANTUM,
-};
+#define NRS_CTL_CRRN_RD_QUANTUM PTLRPC_NRS_CTL_POL_SPEC_01
+/**
+ * Write the RR quantum size of a CRR-N policy.
+ */
+#define NRS_CTL_CRRN_WR_QUANTUM PTLRPC_NRS_CTL_POL_SPEC_02
/** @} CRR-N */
#endif