4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 only,
8 * as published by the Free Software Foundation.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License version 2 for more details.
15 * You should have received a copy of the GNU General Public License
16 * version 2 along with this program; If not, see
17 * http://www.gnu.org/licenses/gpl-2.0.html
22 * Copyright (c) 2015, Cray Inc. All Rights Reserved.
24 * Copyright (c) 2015, Intel Corporation.
28 * Network Request Scheduler (NRS) Delay policy
32 #ifndef _LUSTRE_NRS_DELAY_H
33 #define _LUSTRE_NRS_DELAY_H
42 * Private data structure for the delay policy
44 struct nrs_delay_data {
45 struct ptlrpc_nrs_resource delay_res;
48 * Delayed requests are stored in this binheap until they are
49 * removed for handling.
51 struct cfs_binheap *delay_binheap;
54 * Minimum service time
59 * Maximum service time
64 * We'll delay this percent of requests
69 struct nrs_delay_req {
71 * This is the time at which a request becomes eligible for handling
73 time64_t req_start_time;
77 NRS_CTL_DELAY_RD_MIN = PTLRPC_NRS_CTL_1ST_POL_SPEC,