X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_nrs_tbf.h;h=b36b5497efdf8e02b616ca168516121733ece515;hb=fffe8ac7e42b6638bff9fe19c4bfeb6635023c92;hp=5d48f3ee8bb65c20e217db5d1ec800deb7c31bbe;hpb=69ddb2e08ecb0226ae820b69932ec4eb424f481a;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_nrs_tbf.h b/lustre/include/lustre_nrs_tbf.h index 5d48f3e..b36b549 100644 --- a/lustre/include/lustre_nrs_tbf.h +++ b/lustre/include/lustre_nrs_tbf.h @@ -6,22 +6,22 @@ * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 only, * as published by the Free Software Foundation. - + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License version 2 for more details. A copy is - * included in the COPYING file that accompanied this code. - + * GNU General Public License version 2 for more details. + * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * along with this program; If not, see + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ /* * Copyright (C) 2013 DataDirect Networks, Inc. * + * Copyright (c) 2014, Intel Corporation. */ /* * @@ -31,7 +31,6 @@ #ifndef _LUSTRE_NRS_TBF_H #define _LUSTRE_NRS_TBF_H -#include /* \name tbf * @@ -45,22 +44,22 @@ struct nrs_tbf_cmd; struct nrs_tbf_jobid { char *tj_id; - cfs_list_t tj_linkage; + struct list_head tj_linkage; }; struct nrs_tbf_client { /** Resource object for policy instance. */ struct ptlrpc_nrs_resource tc_res; /** Node in the hash table. */ - cfs_hlist_node_t tc_hnode; + struct hlist_node tc_hnode; /** NID of the client. */ lnet_nid_t tc_nid; /** Jobid of the client. */ - char tc_jobid[JOBSTATS_JOBID_SIZE]; + char tc_jobid[LUSTRE_JOBID_SIZE]; /** Reference number of the client. */ atomic_t tc_ref; /** Likage to rule. */ - cfs_list_t tc_linkage; + struct list_head tc_linkage; /** Pointer to rule. */ struct nrs_tbf_rule *tc_rule; /** Generation of the rule matched. */ @@ -76,7 +75,7 @@ struct nrs_tbf_client { /** Time check-point. */ __u64 tc_check_time; /** List of queued requests. */ - cfs_list_t tc_list; + struct list_head tc_list; /** Node in binary heap. */ cfs_binheap_node_t tc_node; /** Whether the client is in heap. */ @@ -87,7 +86,7 @@ struct nrs_tbf_client { * Linkage into LRU list. Protected bucket lock of * nrs_tbf_head::th_cli_hash. */ - cfs_list_t tc_lru; + struct list_head tc_lru; }; #define MAX_TBF_NAME (16) @@ -101,13 +100,13 @@ struct nrs_tbf_rule { /** Head belongs to. */ struct nrs_tbf_head *tr_head; /** Likage to head. */ - cfs_list_t tr_linkage; + struct list_head tr_linkage; /** Nid list of the rule. */ - cfs_list_t tr_nids; + struct list_head tr_nids; /** Nid list string of the rule.*/ char *tr_nids_str; /** Jobid list of the rule. */ - cfs_list_t tr_jobids; + struct list_head tr_jobids; /** Jobid list string of the rule.*/ char *tr_jobids_str; /** RPC/s limit. */ @@ -117,7 +116,7 @@ struct nrs_tbf_rule { /** Token bucket depth. */ __u64 tr_depth; /** List of client. */ - cfs_list_t tr_cli_list; + struct list_head tr_cli_list; /** Flags of the rule. */ __u32 tr_flags; /** Usage Reference count taken on the rule. */ @@ -138,20 +137,12 @@ struct nrs_tbf_ops { int (*o_rule_init)(struct ptlrpc_nrs_policy *, struct nrs_tbf_rule *, struct nrs_tbf_cmd *); - int (*o_rule_dump)(struct nrs_tbf_rule *, - char *, - int); + int (*o_rule_dump)(struct nrs_tbf_rule *, struct seq_file *); int (*o_rule_match)(struct nrs_tbf_rule *, struct nrs_tbf_client *); void (*o_rule_fini)(struct nrs_tbf_rule *); }; -struct nrs_tbf_dump { - char *td_buff; - int td_size; - int td_length; -}; - #define NRS_TBF_TYPE_JOBID "jobid" #define NRS_TBF_TYPE_NID "nid" #define NRS_TBF_TYPE_MAX_LEN 20 @@ -163,7 +154,7 @@ struct nrs_tbf_bucket { * LRU list, updated on each access to client. Protected by * bucket lock of nrs_tbf_head::th_cli_hash. */ - cfs_list_t ntb_lru; + struct list_head ntb_lru; }; /** @@ -177,7 +168,7 @@ struct nrs_tbf_head { /** * List of rules. */ - cfs_list_t th_list; + struct list_head th_list; /** * Lock to protect the list of rules. */ @@ -193,9 +184,7 @@ struct nrs_tbf_head { /** * Timer for next token. */ -#if defined(__KERNEL__) && defined(__linux__) struct hrtimer th_timer; -#endif /** * Deadline of the timer. */ @@ -211,7 +200,7 @@ struct nrs_tbf_head { /** * Hash of clients. */ - cfs_hash_t *th_cli_hash; + struct cfs_hash *th_cli_hash; /** * Type of TBF policy. */ @@ -240,9 +229,9 @@ struct nrs_tbf_cmd { enum nrs_tbf_cmd_type tc_cmd; char *tc_name; __u64 tc_rpc_rate; - cfs_list_t tc_nids; + struct list_head tc_nids; char *tc_nids_str; - cfs_list_t tc_jobids; + struct list_head tc_jobids; char *tc_jobids_str; __u32 tc_valid_types; __u32 tc_rule_flags; @@ -252,7 +241,7 @@ struct nrs_tbf_req { /** * Linkage to queue. */ - cfs_list_t tr_list; + struct list_head tr_list; /** * Sequence of the request. */