Whamcloud - gitweb
LU-3978 nrs: ORR/TRR is using CRR-N fields 08/7708/2
authorNikitas Angelinas <nikitas_angelinas@xyratex.com>
Fri, 20 Sep 2013 01:15:55 +0000 (02:15 +0100)
committerOleg Drokin <oleg.drokin@intel.com>
Mon, 23 Sep 2013 16:12:43 +0000 (16:12 +0000)
A repeated typo is causing ORR/TRR to make use of CRR-N fields;
this completely impairs the ability of ORR/TRR to perform any
sensible scheduling of RPCs, since significant fields used
to enable ORR/TRR scheduling were being overwritten, and
incorrect fields were used when making scheduling decisions.

Signed-off-by: Nikitas Angelinas <nikitas_angelinas@xyratex.com>
Change-Id: I4e30360cd412a37cf14348009c6aedb9843df951
Xyratex-bug-id: MRP-1355
Reviewed-on: http://review.whamcloud.com/7708
Tested-by: Hudson
Reviewed-by: Liang Zhen <liang.zhen@intel.com>
Reviewed-by: Li Xi <pkuelelixi@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
lustre/ptlrpc/nrs_orr.c

index a5afbc0..65b2f7a 100644 (file)
@@ -554,9 +554,9 @@ static int orr_req_compare(cfs_binheap_node_t *e1, cfs_binheap_node_t *e2)
         * backend-fs object (for ORR policy instances) or OST (for TRR policy
         * instances).
         */
-       if (nrq1->nr_u.orr.or_sequence < nrq2->nr_u.crr.cr_sequence)
+       if (nrq1->nr_u.orr.or_sequence < nrq2->nr_u.orr.or_sequence)
                return 1;
-       else if (nrq1->nr_u.orr.or_sequence > nrq2->nr_u.crr.cr_sequence)
+       else if (nrq1->nr_u.orr.or_sequence > nrq2->nr_u.orr.or_sequence)
                return 0;
 
        /**
@@ -1086,8 +1086,8 @@ static int nrs_orr_req_add(struct ptlrpc_nrs_policy *policy,
                orro->oo_quantum = orrd->od_quantum;
        }
 
-       nrq->nr_u.crr.cr_round = orro->oo_round;
-       nrq->nr_u.crr.cr_sequence = orro->oo_sequence;
+       nrq->nr_u.orr.or_round = orro->oo_round;
+       nrq->nr_u.orr.or_sequence = orro->oo_sequence;
 
        rc = cfs_binheap_insert(orrd->od_binheap, &nrq->nr_node);
        if (rc == 0) {