net/af_packet: make qdisc bypass configurable
[dpdk.git] / drivers / net / ark / ark_rqp.c
1 /*-
2  * BSD LICENSE
3  *
4  * Copyright (c) 2015-2017 Atomic Rules LLC
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in
15  * the documentation and/or other materials provided with the
16  * distribution.
17  * * Neither the name of copyright holder nor the names of its
18  * contributors may be used to endorse or promote products derived
19  * from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33
34 #include <unistd.h>
35
36 #include "ark_rqp.h"
37 #include "ark_logs.h"
38
39 /* ************************************************************************* */
40 void
41 ark_rqp_stats_reset(struct ark_rqpace_t *rqp)
42 {
43         rqp->stats_clear = 1;
44         /* POR 992 */
45         /* rqp->cpld_max = 992; */
46         /* POR 64 */
47         /* rqp->cplh_max = 64; */
48 }
49
50 /* ************************************************************************* */
51 void
52 ark_rqp_dump(struct ark_rqpace_t *rqp)
53 {
54         if (rqp->err_count_other != 0)
55                 PMD_DRV_LOG(ERR,
56                             "RQP Errors noted: ctrl: %d cplh_hmax %d cpld_max %d"
57                             ARK_SU32
58                             ARK_SU32 "\n",
59                             rqp->ctrl, rqp->cplh_max, rqp->cpld_max,
60                             "Error Count", rqp->err_cnt,
61                             "Error General", rqp->err_count_other);
62
63         PMD_STATS_LOG(INFO, "RQP Dump: ctrl: %d cplh_hmax %d cpld_max %d"
64                       ARK_SU32
65                       ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32
66                       ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32
67                       ARK_SU32 ARK_SU32 ARK_SU32
68                       ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32 ARK_SU32 "\n",
69                       rqp->ctrl, rqp->cplh_max, rqp->cpld_max,
70                       "Error Count", rqp->err_cnt,
71                       "Error General", rqp->err_count_other,
72                       "stall_pS", rqp->stall_ps,
73                       "stall_pS Min", rqp->stall_ps_min,
74                       "stall_pS Max", rqp->stall_ps_max,
75                       "req_pS", rqp->req_ps,
76                       "req_pS Min", rqp->req_ps_min,
77                       "req_pS Max", rqp->req_ps_max,
78                       "req_dWPS", rqp->req_dw_ps,
79                       "req_dWPS Min", rqp->req_dw_ps_min,
80                       "req_dWPS Max", rqp->req_dw_ps_max,
81                       "cpl_pS", rqp->cpl_ps,
82                       "cpl_pS Min", rqp->cpl_ps_min,
83                       "cpl_pS Max", rqp->cpl_ps_max,
84                       "cpl_dWPS", rqp->cpl_dw_ps,
85                       "cpl_dWPS Min", rqp->cpl_dw_ps_min,
86                       "cpl_dWPS Max", rqp->cpl_dw_ps_max,
87                       "cplh pending", rqp->cplh_pending,
88                       "cpld pending", rqp->cpld_pending,
89                       "cplh pending max", rqp->cplh_pending_max,
90                       "cpld pending max", rqp->cpld_pending_max);
91 }
92
93 int
94 ark_rqp_lasped(struct ark_rqpace_t *rqp)
95 {
96         return rqp->lasped;
97 }