|
Packit |
6d2c1b |
/*
|
|
Packit |
6d2c1b |
* Copyright (c) 2001-2020 Mellanox Technologies, Ltd. All rights reserved.
|
|
Packit |
6d2c1b |
*
|
|
Packit |
6d2c1b |
* This software is available to you under a choice of one of two
|
|
Packit |
6d2c1b |
* licenses. You may choose to be licensed under the terms of the GNU
|
|
Packit |
6d2c1b |
* General Public License (GPL) Version 2, available from the file
|
|
Packit |
6d2c1b |
* COPYING in the main directory of this source tree, or the
|
|
Packit |
6d2c1b |
* BSD license below:
|
|
Packit |
6d2c1b |
*
|
|
Packit |
6d2c1b |
* Redistribution and use in source and binary forms, with or
|
|
Packit |
6d2c1b |
* without modification, are permitted provided that the following
|
|
Packit |
6d2c1b |
* conditions are met:
|
|
Packit |
6d2c1b |
*
|
|
Packit |
6d2c1b |
* - Redistributions of source code must retain the above
|
|
Packit |
6d2c1b |
* copyright notice, this list of conditions and the following
|
|
Packit |
6d2c1b |
* disclaimer.
|
|
Packit |
6d2c1b |
*
|
|
Packit |
6d2c1b |
* - Redistributions in binary form must reproduce the above
|
|
Packit |
6d2c1b |
* copyright notice, this list of conditions and the following
|
|
Packit |
6d2c1b |
* disclaimer in the documentation and/or other materials
|
|
Packit |
6d2c1b |
* provided with the distribution.
|
|
Packit |
6d2c1b |
*
|
|
Packit |
6d2c1b |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
Packit |
6d2c1b |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
Packit |
6d2c1b |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
Packit |
6d2c1b |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
Packit |
6d2c1b |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
Packit |
6d2c1b |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
Packit |
6d2c1b |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
Packit |
6d2c1b |
* SOFTWARE.
|
|
Packit |
6d2c1b |
*/
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#ifndef SYS_VARS_H
|
|
Packit |
6d2c1b |
#define SYS_VARS_H
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#include <stdio.h>
|
|
Packit |
6d2c1b |
#include <sched.h>
|
|
Packit |
6d2c1b |
#include <string>
|
|
Packit |
6d2c1b |
#include <netinet/in.h>
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#include "vtypes.h"
|
|
Packit |
6d2c1b |
#include "config.h"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#include "vma/ib/base/verbs_extra.h"
|
|
Packit |
6d2c1b |
#include "vma/util/sysctl_reader.h"
|
|
Packit |
6d2c1b |
#include "vma/vma_extra.h"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
MCE_SPEC_NONE = 0,
|
|
Packit |
6d2c1b |
MCE_SPEC_SOCKPERF_ULTRA_LATENCY_10,
|
|
Packit |
6d2c1b |
MCE_SPEC_SOCKPERF_LATENCY_15,
|
|
Packit |
6d2c1b |
MCE_SPEC_29WEST_LBM_29,
|
|
Packit |
6d2c1b |
MCE_SPEC_WOMBAT_FH_LBM_554,
|
|
Packit |
6d2c1b |
MCE_SPEC_MCD_623,
|
|
Packit |
6d2c1b |
MCE_SPEC_MCD_IRQ_624,
|
|
Packit |
6d2c1b |
MCE_SPEC_RTI_784,
|
|
Packit |
6d2c1b |
MCE_SPEC_LL_7750,
|
|
Packit |
6d2c1b |
MCE_SPEC_LL_MULTI_RING,
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
MCE_VMA__ALL /* last element */
|
|
Packit |
6d2c1b |
} vma_spec_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
ALLOC_TYPE_ANON = 0,
|
|
Packit |
6d2c1b |
ALLOC_TYPE_CONTIG,
|
|
Packit |
6d2c1b |
ALLOC_TYPE_HUGEPAGES,
|
|
Packit |
6d2c1b |
ALLOC_TYPE_LAST_ALLOWED_TO_USE,
|
|
Packit |
6d2c1b |
ALLOC_TYPE_EXTERNAL, /* not allowed as a global parameter */
|
|
Packit |
6d2c1b |
} alloc_mode_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
TS_CONVERSION_MODE_DISABLE = 0, // TS_CONVERSION_MODE_DISABLE must be the first enum
|
|
Packit |
6d2c1b |
TS_CONVERSION_MODE_RAW,
|
|
Packit |
6d2c1b |
TS_CONVERSION_MODE_BEST_POSSIBLE,
|
|
Packit |
6d2c1b |
TS_CONVERSION_MODE_SYNC,
|
|
Packit |
6d2c1b |
TS_CONVERSION_MODE_PTP,
|
|
Packit |
6d2c1b |
TS_CONVERSION_MODE_LAST
|
|
Packit |
6d2c1b |
} ts_conversion_mode_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static inline bool is_ring_logic_valid(ring_logic_t logic)
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
switch (logic) {
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_INTERFACE:
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_IP:
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_SOCKET:
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_THREAD:
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_CORE:
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_CORE_ATTACH_THREADS:
|
|
Packit |
6d2c1b |
return true;
|
|
Packit |
6d2c1b |
default:
|
|
Packit |
6d2c1b |
return false;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static inline const char* ring_logic_str(ring_logic_t logic)
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
switch (logic) {
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_INTERFACE: return "(Ring per interface)";
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_IP: return "(Ring per ip)";
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_SOCKET: return "(Ring per socket)";
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_THREAD: return "(Ring per thread)";
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_CORE: return "(Ring per core)";
|
|
Packit |
6d2c1b |
case RING_LOGIC_PER_CORE_ATTACH_THREADS: return "(Ring per core - attach threads)";
|
|
Packit |
6d2c1b |
default: break;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
return "unsupported";
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
THREAD_MODE_SINGLE = 0,
|
|
Packit |
6d2c1b |
THREAD_MODE_MULTI,
|
|
Packit |
6d2c1b |
THREAD_MODE_MUTEX,
|
|
Packit |
6d2c1b |
THREAD_MODE_PLENTY,
|
|
Packit |
6d2c1b |
THREAD_MODE_LAST
|
|
Packit |
6d2c1b |
} thread_mode_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
BUFFER_BATCHING_NONE = 0,
|
|
Packit |
6d2c1b |
BUFFER_BATCHING_WITH_RECLAIM,
|
|
Packit |
6d2c1b |
BUFFER_BATCHING_NO_RECLAIM,
|
|
Packit |
6d2c1b |
BUFFER_BATCHING_LAST,
|
|
Packit |
6d2c1b |
} buffer_batching_mode_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
// See ibv_transport_type for general verbs transport types
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
VMA_TRANSPORT_UNKNOWN = -1,
|
|
Packit |
6d2c1b |
VMA_TRANSPORT_IB = 0,
|
|
Packit |
6d2c1b |
VMA_TRANSPORT_ETH
|
|
Packit |
6d2c1b |
} transport_type_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static inline const char* priv_vma_transport_type_str(transport_type_t transport_type)
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
BULLSEYE_EXCLUDE_BLOCK_START
|
|
Packit |
6d2c1b |
switch (transport_type) {
|
|
Packit |
6d2c1b |
case VMA_TRANSPORT_IB: return "IB";
|
|
Packit |
6d2c1b |
case VMA_TRANSPORT_ETH: return "ETH";
|
|
Packit |
6d2c1b |
case VMA_TRANSPORT_UNKNOWN:
|
|
Packit |
6d2c1b |
default: break;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
return "UNKNOWN";
|
|
Packit |
6d2c1b |
BULLSEYE_EXCLUDE_BLOCK_END
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
MSS_FOLLOW_MTU = 0
|
|
Packit |
6d2c1b |
} mss_mode_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
MTU_FOLLOW_INTERFACE = 0
|
|
Packit |
6d2c1b |
} mtu_mode_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
CTL_THREAD_DISABLE = 0,
|
|
Packit |
6d2c1b |
CTL_THREAD_WITH_WAKEUP,
|
|
Packit |
6d2c1b |
CTL_THREAD_NO_WAKEUP,
|
|
Packit |
6d2c1b |
CTL_THREAD_LAST
|
|
Packit |
6d2c1b |
} tcp_ctl_thread_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
TCP_TS_OPTION_DISABLE = 0, // TCP_TS_OPTION_DISABLE must be the first enum
|
|
Packit |
6d2c1b |
TCP_TS_OPTION_ENABLE,
|
|
Packit |
6d2c1b |
TCP_TS_OPTION_FOLLOW_OS,
|
|
Packit |
6d2c1b |
TCP_TS_OPTION_LAST
|
|
Packit |
6d2c1b |
} tcp_ts_opt_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static inline const char* ctl_thread_str(tcp_ctl_thread_t logic)
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
switch (logic) {
|
|
Packit |
6d2c1b |
case CTL_THREAD_DISABLE: return "(Disabled)";
|
|
Packit |
6d2c1b |
case CTL_THREAD_WITH_WAKEUP: return "(Enabled - with wakeup)";
|
|
Packit |
6d2c1b |
case CTL_THREAD_NO_WAKEUP: return "(Enabled - no wakeup)";
|
|
Packit |
6d2c1b |
default: break;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
return "unsupported";
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
INTERNAL_THREAD_TCP_TIMER_HANDLING_DEFERRED = 0,
|
|
Packit |
6d2c1b |
INTERNAL_THREAD_TCP_TIMER_HANDLING_IMMEDIATE
|
|
Packit |
6d2c1b |
} internal_thread_tcp_timer_handling_t;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static inline const char* internal_thread_tcp_timer_handling_str(internal_thread_tcp_timer_handling_t handling)
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
switch (handling) {
|
|
Packit |
6d2c1b |
case INTERNAL_THREAD_TCP_TIMER_HANDLING_DEFERRED: return "(deferred)";
|
|
Packit |
6d2c1b |
case INTERNAL_THREAD_TCP_TIMER_HANDLING_IMMEDIATE: return "(immediate)";
|
|
Packit |
6d2c1b |
default: break;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
return "unsupported";
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
namespace vma_spec {
|
|
Packit |
6d2c1b |
// convert str to vVMA_spec_t; upon error - returns the given 'def_value'
|
|
Packit |
6d2c1b |
vma_spec_t from_str(const char* str, vma_spec_t def_value = MCE_SPEC_NONE);
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
// convert int to vVMA_spec_t; upon error - returns the given 'def_value'
|
|
Packit |
6d2c1b |
vma_spec_t from_int(const int int_spec, vma_spec_t def_value = MCE_SPEC_NONE);
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
const char * to_str(vma_spec_t level);
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
////////////////////////////////////////////////////////////////////////////////
|
|
Packit |
6d2c1b |
class vma_exception_handling
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
public:
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static const char *getName() {
|
|
Packit |
6d2c1b |
return "Exception handling mode";
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
static const char *getSysVar() {
|
|
Packit |
6d2c1b |
return "VMA_EXCEPTION_HANDLING";
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
typedef enum {
|
|
Packit |
6d2c1b |
MODE_FIRST = -3,
|
|
Packit |
6d2c1b |
MODE_EXIT = -2,
|
|
Packit |
6d2c1b |
MODE_DEBUG = -1,
|
|
Packit |
6d2c1b |
MODE_UNOFFLOAD = 0,
|
|
Packit |
6d2c1b |
MODE_LOG_ERROR,
|
|
Packit |
6d2c1b |
MODE_RETURN_ERROR,
|
|
Packit |
6d2c1b |
MODE_ABORT,
|
|
Packit |
6d2c1b |
MODE_LAST,
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
MODE_DEFAULT = MODE_DEBUG
|
|
Packit |
6d2c1b |
} mode;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
const char* to_str()
|
|
Packit |
6d2c1b |
{
|
|
Packit |
6d2c1b |
switch (m_mode) {
|
|
Packit |
6d2c1b |
case MODE_EXIT: return "(exit on failed startup)";
|
|
Packit |
6d2c1b |
case MODE_DEBUG: return "(just log debug message)";
|
|
Packit |
6d2c1b |
case MODE_UNOFFLOAD: return "(log debug and un-offload)";
|
|
Packit |
6d2c1b |
case MODE_LOG_ERROR: return "(log error and un-offload)";
|
|
Packit |
6d2c1b |
case MODE_RETURN_ERROR: return "(Log Error and return error)";
|
|
Packit |
6d2c1b |
case MODE_ABORT: return "(Log error and Abort!)";
|
|
Packit |
6d2c1b |
default: break;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
return "unsupported";
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
bool is_suit_un_offloading() {
|
|
Packit |
6d2c1b |
return m_mode == MODE_UNOFFLOAD || m_mode == MODE_LOG_ERROR;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
vlog_levels_t get_log_severity() {
|
|
Packit |
6d2c1b |
switch (m_mode) {
|
|
Packit |
6d2c1b |
case MODE_EXIT:
|
|
Packit |
6d2c1b |
case MODE_DEBUG:
|
|
Packit |
6d2c1b |
case MODE_UNOFFLOAD:
|
|
Packit |
6d2c1b |
return VLOG_DEBUG;
|
|
Packit |
6d2c1b |
case MODE_LOG_ERROR:
|
|
Packit |
6d2c1b |
case MODE_RETURN_ERROR:
|
|
Packit |
6d2c1b |
case MODE_ABORT:
|
|
Packit |
6d2c1b |
default:
|
|
Packit |
6d2c1b |
return VLOG_ERROR;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
//
|
|
Packit |
6d2c1b |
// cast constructors and cast operators
|
|
Packit |
6d2c1b |
//
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
vma_exception_handling(mode _mode = MODE_DEFAULT) : m_mode(_mode) {
|
|
Packit |
6d2c1b |
if (m_mode >= MODE_LAST || m_mode <= MODE_FIRST)
|
|
Packit |
6d2c1b |
m_mode = MODE_DEFAULT;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
explicit vma_exception_handling(int _mode) : m_mode((mode)_mode) {
|
|
Packit |
6d2c1b |
if (m_mode >= MODE_LAST || m_mode <= MODE_FIRST)
|
|
Packit |
6d2c1b |
m_mode = MODE_DEFAULT;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
operator mode() const {
|
|
Packit |
6d2c1b |
return m_mode;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
private:
|
|
Packit |
6d2c1b |
mode m_mode;
|
|
Packit |
6d2c1b |
};
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
////////////////////////////////////////////////////////////////////////////////
|
|
Packit |
6d2c1b |
struct mce_sys_var {
|
|
Packit |
6d2c1b |
static mce_sys_var & instance() {
|
|
Packit |
6d2c1b |
static mce_sys_var the_instance; //singelton
|
|
Packit |
6d2c1b |
return the_instance;
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
public:
|
|
Packit |
6d2c1b |
enum hyper_t {
|
|
Packit |
6d2c1b |
HYPER_NONE = 0,
|
|
Packit |
6d2c1b |
HYPER_XEN,
|
|
Packit |
6d2c1b |
HYPER_KVM,
|
|
Packit |
6d2c1b |
HYPER_MSHV,
|
|
Packit |
6d2c1b |
HYPER_VMWARE
|
|
Packit |
6d2c1b |
};
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
public:
|
|
Packit |
6d2c1b |
void get_env_params();
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
char *app_name;
|
|
Packit |
6d2c1b |
char app_id[MAX_APP_ID_LENGHT];
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
uint32_t mce_spec;
|
|
Packit |
6d2c1b |
uint32_t mce_spec_param1;
|
|
Packit |
6d2c1b |
uint32_t mce_spec_param2;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
vlog_levels_t log_level;
|
|
Packit |
6d2c1b |
uint32_t log_details;
|
|
Packit |
6d2c1b |
char log_filename[PATH_MAX];
|
|
Packit |
6d2c1b |
char stats_filename[PATH_MAX];
|
|
Packit |
6d2c1b |
char stats_shmem_dirname[PATH_MAX];
|
|
Packit |
6d2c1b |
char conf_filename[PATH_MAX];
|
|
Packit |
6d2c1b |
char vmad_notify_dir[PATH_MAX];
|
|
Packit |
6d2c1b |
bool log_colors;
|
|
Packit |
6d2c1b |
bool handle_sigintr;
|
|
Packit |
6d2c1b |
bool handle_segfault;
|
|
Packit |
6d2c1b |
uint32_t stats_fd_num_max;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
ring_logic_t ring_allocation_logic_tx;
|
|
Packit |
6d2c1b |
ring_logic_t ring_allocation_logic_rx;
|
|
Packit |
6d2c1b |
int ring_migration_ratio_tx;
|
|
Packit |
6d2c1b |
int ring_migration_ratio_rx;
|
|
Packit |
6d2c1b |
int ring_limit_per_interface;
|
|
Packit |
6d2c1b |
int ring_dev_mem_tx;
|
|
Packit |
6d2c1b |
int tcp_max_syn_rate;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
uint32_t tx_num_segs_tcp;
|
|
Packit |
6d2c1b |
uint32_t tx_num_bufs;
|
|
Packit |
6d2c1b |
#ifdef DEFINED_TSO
|
|
Packit |
6d2c1b |
uint32_t tx_buf_size;
|
|
Packit |
6d2c1b |
#endif /* DEFINED_TSO */
|
|
Packit |
6d2c1b |
uint32_t tx_num_wr;
|
|
Packit |
6d2c1b |
uint32_t tx_num_wr_to_signal;
|
|
Packit |
6d2c1b |
uint32_t tx_max_inline;
|
|
Packit |
6d2c1b |
bool tx_mc_loopback_default;
|
|
Packit |
6d2c1b |
bool tx_nonblocked_eagains;
|
|
Packit |
6d2c1b |
uint32_t tx_prefetch_bytes;
|
|
Packit |
6d2c1b |
uint32_t tx_bufs_batch_udp;
|
|
Packit |
6d2c1b |
uint32_t tx_bufs_batch_tcp;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
uint32_t rx_num_bufs;
|
|
Packit |
6d2c1b |
uint32_t rx_bufs_batch;
|
|
Packit |
6d2c1b |
uint32_t rx_num_wr;
|
|
Packit |
6d2c1b |
uint32_t rx_num_wr_to_post_recv;
|
|
Packit |
6d2c1b |
int32_t rx_poll_num;
|
|
Packit |
6d2c1b |
int32_t rx_poll_num_init;
|
|
Packit |
6d2c1b |
uint32_t rx_udp_poll_os_ratio;
|
|
Packit |
6d2c1b |
ts_conversion_mode_t hw_ts_conversion_mode;
|
|
Packit |
6d2c1b |
uint32_t rx_poll_yield_loops;
|
|
Packit |
6d2c1b |
uint32_t rx_ready_byte_min_limit;
|
|
Packit |
6d2c1b |
uint32_t rx_prefetch_bytes;
|
|
Packit |
6d2c1b |
uint32_t rx_prefetch_bytes_before_poll;
|
|
Packit |
6d2c1b |
uint32_t rx_cq_drain_rate_nsec; // If enabled this will cause the Rx to drain all wce in CQ before returning to user,
|
|
Packit |
6d2c1b |
// Else (Default: Disbaled) it will return when first ready packet is in socket queue
|
|
Packit |
6d2c1b |
uint32_t rx_delta_tsc_between_cq_polls;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
uint32_t gro_streams_max;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
bool tcp_3t_rules;
|
|
Packit |
6d2c1b |
bool eth_mc_l2_only_rules;
|
|
Packit |
6d2c1b |
bool mc_force_flowtag;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
int32_t select_poll_num;
|
|
Packit |
6d2c1b |
bool select_poll_os_force;
|
|
Packit |
6d2c1b |
uint32_t select_poll_os_ratio;
|
|
Packit |
6d2c1b |
uint32_t select_skip_os_fd_check;
|
|
Packit |
6d2c1b |
bool select_handle_cpu_usage_stats;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
bool cq_moderation_enable;
|
|
Packit |
6d2c1b |
uint32_t cq_moderation_count;
|
|
Packit |
6d2c1b |
uint32_t cq_moderation_period_usec;
|
|
Packit |
6d2c1b |
uint32_t cq_aim_max_count;
|
|
Packit |
6d2c1b |
uint32_t cq_aim_max_period_usec;
|
|
Packit |
6d2c1b |
uint32_t cq_aim_interval_msec;
|
|
Packit |
6d2c1b |
uint32_t cq_aim_interrupts_rate_per_sec;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
uint32_t cq_poll_batch_max;
|
|
Packit |
6d2c1b |
uint32_t progress_engine_interval_msec;
|
|
Packit |
6d2c1b |
uint32_t progress_engine_wce_max;
|
|
Packit |
6d2c1b |
bool cq_keep_qp_full;
|
|
Packit |
6d2c1b |
uint32_t qp_compensation_level;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
bool offloaded_sockets;
|
|
Packit |
6d2c1b |
uint32_t timer_resolution_msec;
|
|
Packit |
6d2c1b |
uint32_t tcp_timer_resolution_msec;
|
|
Packit |
6d2c1b |
tcp_ctl_thread_t tcp_ctl_thread;
|
|
Packit |
6d2c1b |
tcp_ts_opt_t tcp_ts_opt;
|
|
Packit |
6d2c1b |
bool tcp_nodelay;
|
|
Packit |
6d2c1b |
bool tcp_quickack;
|
|
Packit |
6d2c1b |
vma_exception_handling exception_handling;
|
|
Packit |
6d2c1b |
bool avoid_sys_calls_on_tcp_fd;
|
|
Packit |
6d2c1b |
bool allow_privileged_sock_opt;
|
|
Packit |
6d2c1b |
uint32_t wait_after_join_msec;
|
|
Packit |
6d2c1b |
thread_mode_t thread_mode;
|
|
Packit |
6d2c1b |
buffer_batching_mode_t buffer_batching_mode;
|
|
Packit |
6d2c1b |
alloc_mode_t mem_alloc_type;
|
|
Packit |
6d2c1b |
bool handle_fork;
|
|
Packit |
6d2c1b |
bool close_on_dup2;
|
|
Packit |
6d2c1b |
uint32_t mtu; /* effective MTU. If mtu==0 then auto calculate the MTU */
|
|
Packit |
6d2c1b |
uint32_t lwip_cc_algo_mod;
|
|
Packit |
6d2c1b |
uint32_t lwip_mss;
|
|
Packit |
6d2c1b |
char internal_thread_cpuset[FILENAME_MAX];
|
|
Packit |
6d2c1b |
char internal_thread_affinity_str[FILENAME_MAX];
|
|
Packit |
6d2c1b |
cpu_set_t internal_thread_affinity;
|
|
Packit |
6d2c1b |
bool internal_thread_arm_cq_enabled;
|
|
Packit |
6d2c1b |
internal_thread_tcp_timer_handling_t internal_thread_tcp_timer_handling;
|
|
Packit |
6d2c1b |
bool handle_bf;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
bool enable_ipoib;
|
|
Packit |
6d2c1b |
bool enable_socketxtreme;
|
|
Packit |
6d2c1b |
#ifdef DEFINED_TSO
|
|
Packit |
6d2c1b |
bool enable_tso;
|
|
Packit |
6d2c1b |
#endif /* DEFINED_TSO */
|
|
Packit |
6d2c1b |
uint32_t timer_netlink_update_msec;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
//Neigh parameters
|
|
Packit |
6d2c1b |
uint32_t neigh_uc_arp_quata;
|
|
Packit |
6d2c1b |
uint32_t neigh_wait_till_send_arp_msec;
|
|
Packit |
6d2c1b |
uint32_t neigh_num_err_retries;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
uint32_t vma_time_measure_num_samples;
|
|
Packit |
6d2c1b |
char vma_time_measure_filename[PATH_MAX];
|
|
Packit |
6d2c1b |
sysctl_reader_t & sysctl_reader;
|
|
Packit |
6d2c1b |
bool rx_poll_on_tx_tcp;
|
|
Packit |
6d2c1b |
hyper_t hypervisor;
|
|
Packit |
6d2c1b |
bool trigger_dummy_send_getsockname;
|
|
Packit |
6d2c1b |
private:
|
|
Packit |
6d2c1b |
void print_vma_load_failure_msg();
|
|
Packit |
6d2c1b |
int list_to_cpuset(char *cpulist, cpu_set_t *cpu_set);
|
|
Packit |
6d2c1b |
int hex_to_cpuset(char *start, cpu_set_t *cpu_set);
|
|
Packit |
6d2c1b |
int env_to_cpuset(char *orig_start, cpu_set_t *cpu_set);
|
|
Packit |
6d2c1b |
void read_env_variable_with_pid(char* mce_sys_name, size_t mce_sys_max_size, char* env_ptr);
|
|
Packit |
6d2c1b |
bool check_cpuinfo_flag(const char* flag);
|
|
Packit |
6d2c1b |
bool cpuid_hv();
|
|
Packit |
6d2c1b |
const char* cpuid_hv_vendor();
|
|
Packit |
6d2c1b |
void read_hv();
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
// prevent unautothrized creation of objects
|
|
Packit |
6d2c1b |
mce_sys_var () : sysctl_reader(sysctl_reader_t::instance()){
|
|
Packit |
6d2c1b |
// coverity[uninit_member]
|
|
Packit |
6d2c1b |
get_env_params();
|
|
Packit |
6d2c1b |
}
|
|
Packit |
6d2c1b |
mce_sys_var (const mce_sys_var &);
|
|
Packit |
6d2c1b |
mce_sys_var & operator= (const mce_sys_var &);
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
};
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
extern mce_sys_var & safe_mce_sys();
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_LOG_LEVEL "VMA_TRACELEVEL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_LOG_DETAILS "VMA_LOG_DETAILS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_LOG_FILENAME "VMA_LOG_FILE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_STATS_FILENAME "VMA_STATS_FILE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_VMAD_DIR "VMA_VMAD_NOTIFY_DIR"
|
|
Packit |
6d2c1b |
#define SYS_VAR_STATS_SHMEM_DIRNAME "VMA_STATS_SHMEM_DIR"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CONF_FILENAME "VMA_CONFIG_FILE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_LOG_COLORS "VMA_LOG_COLORS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_APPLICATION_ID "VMA_APPLICATION_ID"
|
|
Packit |
6d2c1b |
#define SYS_VAR_HANDLE_SIGINTR "VMA_HANDLE_SIGINTR"
|
|
Packit |
6d2c1b |
#define SYS_VAR_HANDLE_SIGSEGV "VMA_HANDLE_SIGSEGV"
|
|
Packit |
6d2c1b |
#define SYS_VAR_STATS_FD_NUM "VMA_STATS_FD_NUM"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_RING_ALLOCATION_LOGIC_TX "VMA_RING_ALLOCATION_LOGIC_TX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RING_ALLOCATION_LOGIC_RX "VMA_RING_ALLOCATION_LOGIC_RX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RING_MIGRATION_RATIO_TX "VMA_RING_MIGRATION_RATIO_TX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RING_MIGRATION_RATIO_RX "VMA_RING_MIGRATION_RATIO_RX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RING_LIMIT_PER_INTERFACE "VMA_RING_LIMIT_PER_INTERFACE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RING_DEV_MEM_TX "VMA_RING_DEV_MEM_TX"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_NUM_SEGS_TCP "VMA_TX_SEGS_TCP"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_NUM_BUFS "VMA_TX_BUFS"
|
|
Packit |
6d2c1b |
#ifdef DEFINED_TSO
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_BUF_SIZE "VMA_TX_BUF_SIZE"
|
|
Packit |
6d2c1b |
#endif /* DEFINED_TSO */
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_NUM_WRE "VMA_TX_WRE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_NUM_WRE_TO_SIGNAL "VMA_TX_WRE_BATCHING"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_MAX_INLINE "VMA_TX_MAX_INLINE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_MC_LOOPBACK "VMA_TX_MC_LOOPBACK"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_NONBLOCKED_EAGAINS "VMA_TX_NONBLOCKED_EAGAINS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TX_PREFETCH_BYTES "VMA_TX_PREFETCH_BYTES"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_NUM_BUFS "VMA_RX_BUFS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_NUM_WRE "VMA_RX_WRE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_NUM_WRE_TO_POST_RECV "VMA_RX_WRE_BATCHING"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_NUM_POLLS "VMA_RX_POLL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_NUM_POLLS_INIT "VMA_RX_POLL_INIT"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_UDP_POLL_OS_RATIO "VMA_RX_UDP_POLL_OS_RATIO"
|
|
Packit |
6d2c1b |
#define SYS_VAR_HW_TS_CONVERSION_MODE "VMA_HW_TS_CONVERSION"
|
|
Packit |
6d2c1b |
// The following 2 params were replaced by VMA_RX_UDP_POLL_OS_RATIO
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_POLL_OS_RATIO "VMA_RX_POLL_OS_RATIO"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_SKIP_OS "VMA_RX_SKIP_OS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_POLL_YIELD "VMA_RX_POLL_YIELD"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_BYTE_MIN_LIMIT "VMA_RX_BYTES_MIN"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_PREFETCH_BYTES "VMA_RX_PREFETCH_BYTES"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_PREFETCH_BYTES_BEFORE_POLL "VMA_RX_PREFETCH_BYTES_BEFORE_POLL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_RX_CQ_DRAIN_RATE_NSEC "VMA_RX_CQ_DRAIN_RATE_NSEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_GRO_STREAMS_MAX "VMA_GRO_STREAMS_MAX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_3T_RULES "VMA_TCP_3T_RULES"
|
|
Packit |
6d2c1b |
#define SYS_VAR_ETH_MC_L2_ONLY_RULES "VMA_ETH_MC_L2_ONLY_RULES"
|
|
Packit |
6d2c1b |
#define SYS_VAR_MC_FORCE_FLOWTAG "VMA_MC_FORCE_FLOWTAG"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_SELECT_CPU_USAGE_STATS "VMA_CPU_USAGE_STATS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SELECT_NUM_POLLS "VMA_SELECT_POLL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SELECT_POLL_OS_FORCE "VMA_SELECT_POLL_OS_FORCE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SELECT_POLL_OS_RATIO "VMA_SELECT_POLL_OS_RATIO"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SELECT_SKIP_OS "VMA_SELECT_SKIP_OS"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_MODERATION_ENABLE "VMA_CQ_MODERATION_ENABLE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_MODERATION_COUNT "VMA_CQ_MODERATION_COUNT"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_MODERATION_PERIOD_USEC "VMA_CQ_MODERATION_PERIOD_USEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_AIM_MAX_COUNT "VMA_CQ_AIM_MAX_COUNT"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_AIM_MAX_PERIOD_USEC "VMA_CQ_AIM_MAX_PERIOD_USEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_AIM_INTERVAL_MSEC "VMA_CQ_AIM_INTERVAL_MSEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_AIM_INTERRUPTS_RATE_PER_SEC "VMA_CQ_AIM_INTERRUPTS_RATE_PER_SEC"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_POLL_BATCH_MAX "VMA_CQ_POLL_BATCH_MAX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_PROGRESS_ENGINE_INTERVAL "VMA_PROGRESS_ENGINE_INTERVAL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_PROGRESS_ENGINE_WCE_MAX "VMA_PROGRESS_ENGINE_WCE_MAX"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CQ_KEEP_QP_FULL "VMA_CQ_KEEP_QP_FULL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_QP_COMPENSATION_LEVEL "VMA_QP_COMPENSATION_LEVEL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_OFFLOADED_SOCKETS "VMA_OFFLOADED_SOCKETS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TIMER_RESOLUTION_MSEC "VMA_TIMER_RESOLUTION_MSEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_TIMER_RESOLUTION_MSEC "VMA_TCP_TIMER_RESOLUTION_MSEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_CTL_THREAD "VMA_TCP_CTL_THREAD"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_TIMESTAMP_OPTION "VMA_TCP_TIMESTAMP_OPTION"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_NODELAY "VMA_TCP_NODELAY"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_QUICKACK "VMA_TCP_QUICKACK"
|
|
Packit |
6d2c1b |
#define SYS_VAR_VMA_EXCEPTION_HANDLING (vma_exception_handling::getSysVar())
|
|
Packit |
6d2c1b |
#define SYS_VAR_AVOID_SYS_CALLS_ON_TCP_FD "VMA_AVOID_SYS_CALLS_ON_TCP_FD"
|
|
Packit |
6d2c1b |
#define SYS_VAR_ALLOW_PRIVILEGED_SOCK_OPT "VMA_ALLOW_PRIVILEGED_SOCK_OPT"
|
|
Packit |
6d2c1b |
#define SYS_VAR_WAIT_AFTER_JOIN_MSEC "VMA_WAIT_AFTER_JOIN_MSEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_THREAD_MODE "VMA_THREAD_MODE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_BUFFER_BATCHING_MODE "VMA_BUFFER_BATCHING_MODE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_HUGETBL "VMA_HUGETBL"
|
|
Packit |
6d2c1b |
#define SYS_VAR_MEM_ALLOC_TYPE "VMA_MEM_ALLOC_TYPE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_FORK "VMA_FORK"
|
|
Packit |
6d2c1b |
#define SYS_VAR_BF "VMA_BF"
|
|
Packit |
6d2c1b |
#define SYS_VAR_CLOSE_ON_DUP2 "VMA_CLOSE_ON_DUP2"
|
|
Packit |
6d2c1b |
#define SYS_VAR_MTU "VMA_MTU"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_MAX_SYN_RATE "VMA_TCP_MAX_SYN_RATE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_MSS "VMA_MSS"
|
|
Packit |
6d2c1b |
#define SYS_VAR_TCP_CC_ALGO "VMA_TCP_CC_ALGO"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SPEC "VMA_SPEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SPEC_PARAM1 "VMA_SPEC_PARAM1"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SPEC_PARAM2 "VMA_SPEC_PARAM2"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_IPOIB "VMA_IPOIB"
|
|
Packit |
6d2c1b |
#define SYS_VAR_SOCKETXTREME "VMA_SOCKETXTREME"
|
|
Packit |
6d2c1b |
#ifdef DEFINED_TSO
|
|
Packit |
6d2c1b |
#define SYS_VAR_TSO "VMA_TSO"
|
|
Packit |
6d2c1b |
#endif /* DEFINED_TSO */
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_INTERNAL_THREAD_AFFINITY "VMA_INTERNAL_THREAD_AFFINITY"
|
|
Packit |
6d2c1b |
#define SYS_VAR_INTERNAL_THREAD_CPUSET "VMA_INTERNAL_THREAD_CPUSET"
|
|
Packit |
6d2c1b |
#define SYS_VAR_INTERNAL_THREAD_ARM_CQ "VMA_INTERNAL_THREAD_ARM_CQ"
|
|
Packit |
6d2c1b |
#define SYS_VAR_INTERNAL_THREAD_TCP_TIMER_HANDLING "VMA_INTERNAL_THREAD_TCP_TIMER_HANDLING"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_NETLINK_TIMER_MSEC "VMA_NETLINK_TIMER"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_NEIGH_UC_ARP_QUATA "VMA_NEIGH_UC_ARP_QUATA"
|
|
Packit |
6d2c1b |
#define SYS_VAR_NEIGH_UC_ARP_DELAY_MSEC "VMA_NEIGH_UC_ARP_DELAY_MSEC"
|
|
Packit |
6d2c1b |
#define SYS_VAR_NEIGH_NUM_ERR_RETRIES "VMA_NEIGH_NUM_ERR_RETRIES"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define SYS_VAR_VMA_TIME_MEASURE_NUM_SAMPLES "VMA_TIME_MEASURE_NUM_SAMPLES"
|
|
Packit |
6d2c1b |
#define SYS_VAR_VMA_TIME_MEASURE_DUMP_FILE "VMA_TIME_MEASURE_DUMP_FILE"
|
|
Packit |
6d2c1b |
#define SYS_VAR_VMA_RX_POLL_ON_TX_TCP "VMA_RX_POLL_ON_TX_TCP"
|
|
Packit |
6d2c1b |
#define SYS_VAR_VMA_TRIGGER_DUMMY_SEND_GETSOCKNAME "VMA_TRIGGER_DUMMY_SEND_GETSOCKNAME"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_LOG_FILE ("")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CONF_FILE ("/etc/libvma.conf")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_STATS_FILE ("")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_VMAD_FOLDER (VMA_AGENT_PATH)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_STATS_SHMEM_DIR ("/tmp/")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_LOG_DETAILS (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_LOG_COLORS (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_APP_ID ("VMA_DEFAULT_APPLICATION_ID")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_HANDLE_SIGINTR (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_HANDLE_SIGFAULT (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_STATS_FD_NUM 100
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RING_ALLOCATION_LOGIC_TX (RING_LOGIC_PER_INTERFACE)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RING_ALLOCATION_LOGIC_RX (RING_LOGIC_PER_INTERFACE)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RING_MIGRATION_RATIO_TX (100)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RING_MIGRATION_RATIO_RX (100)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RING_LIMIT_PER_INTERFACE (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RING_DEV_MEM_TX (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_MAX_SYN_RATE (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_NUM_SEGS_TCP (1000000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_NUM_BUFS (200000)
|
|
Packit |
6d2c1b |
#ifdef DEFINED_TSO
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_BUF_SIZE (0)
|
|
Packit |
6d2c1b |
#endif /* DEFINED_TSO */
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_NUM_WRE (2048)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_NUM_WRE_TO_SIGNAL (64)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_MAX_INLINE (204) //+18(always inline ETH header) = 222
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_BUILD_IP_CHKSUM (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_MC_LOOPBACK (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_NONBLOCKED_EAGAINS (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_PREFETCH_BYTES (256)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_BUFS_BATCH_UDP (8)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_BUFS_BATCH_TCP (16)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TX_NUM_SGE (2)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_NUM_BUFS (200000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_BUFS_BATCH (64)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_NUM_WRE (16000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_NUM_WRE_TO_POST_RECV (64)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_NUM_SGE (1)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_NUM_POLLS (100000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_NUM_POLLS_INIT (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_UDP_POLL_OS_RATIO (100)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_HW_TS_CONVERSION_MODE (TS_CONVERSION_MODE_SYNC)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_POLL_YIELD (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_BYTE_MIN_LIMIT (65536)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_PREFETCH_BYTES (256)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_PREFETCH_BYTES_BEFORE_POLL (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_CQ_DRAIN_RATE (MCE_RX_CQ_DRAIN_RATE_DISABLED)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_GRO_STREAMS_MAX (32)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_3T_RULES (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_ETH_MC_L2_ONLY_RULES (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_MC_FORCE_FLOWTAG (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_SELECT_NUM_POLLS (100000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_SELECT_POLL_OS_FORCE (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_SELECT_POLL_OS_RATIO (10)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_SELECT_SKIP_OS (4)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_SELECT_CPU_USAGE_STATS (false)
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#ifdef DEFINED_IBV_CQ_ATTR_MODERATE
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_MODERATION_ENABLE (true)
|
|
Packit |
6d2c1b |
#else
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_MODERATION_ENABLE (false)
|
|
Packit |
6d2c1b |
#endif
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_MODERATION_COUNT (48)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_MODERATION_PERIOD_USEC (50)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_AIM_MAX_COUNT (560)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_AIM_MAX_PERIOD_USEC (250)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_AIM_INTERVAL_MSEC (250)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_AIM_INTERRUPTS_RATE_PER_SEC (5000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_POLL_BATCH (16)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_PROGRESS_ENGINE_INTERVAL_MSEC (10)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_PROGRESS_ENGINE_WCE_MAX (10000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CQ_KEEP_QP_FULL (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_QP_COMPENSATION_LEVEL (256)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_INTERNAL_THREAD_ARM_CQ_ENABLED (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_QP_FORCE_MC_ATTACH (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_OFFLOADED_SOCKETS (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TIMER_RESOLUTION_MSEC (10)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_TIMER_RESOLUTION_MSEC (100)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_CTL_THREAD (CTL_THREAD_DISABLE)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_TIMESTAMP_OPTION (TCP_TS_OPTION_DISABLE)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_NODELAY (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TCP_QUICKACK (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_VMA_EXCEPTION_HANDLING (vma_exception_handling::MODE_DEFAULT)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_AVOID_SYS_CALLS_ON_TCP_FD (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_ALLOW_PRIVILEGED_SOCK_OPT (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_WAIT_AFTER_JOIN_MSEC (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_THREAD_MODE (THREAD_MODE_MULTI)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_BUFFER_BATCHING_MODE (BUFFER_BATCHING_WITH_RECLAIM)
|
|
Packit |
6d2c1b |
#ifndef VMA_IBV_ACCESS_ALLOCATE_MR
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_MEM_ALLOC_TYPE (ALLOC_TYPE_HUGEPAGES)
|
|
Packit |
6d2c1b |
#else
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_MEM_ALLOC_TYPE (ALLOC_TYPE_CONTIG)
|
|
Packit |
6d2c1b |
#endif
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_FORK_SUPPORT (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_BF_FLAG (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_CLOSE_ON_DUP2 (true)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_MTU (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_MSS (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_LWIP_CC_ALGO_MOD (0)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_INTERNAL_THREAD_AFFINITY (-1)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_INTERNAL_THREAD_AFFINITY_STR ("-1")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_INTERNAL_THREAD_CPUSET ("")
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_INTERNAL_THREAD_TCP_TIMER_HANDLING (INTERNAL_THREAD_TCP_TIMER_HANDLING_DEFERRED)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_NETLINK_TIMER_MSEC (10000)
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_NEIGH_UC_ARP_QUATA 3
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_NEIGH_UC_ARP_DELAY_MSEC 10000
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_NEIGH_NUM_ERR_RETRIES 1
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TIME_MEASURE_NUM_SAMPLES (10000)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TIME_MEASURE_DUMP_FILE "/tmp/VMA_inst.dump"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MCE_MIN_NUM_SGE (1)
|
|
Packit |
6d2c1b |
#define MCE_MAX_NUM_SGE (32)
|
|
Packit |
6d2c1b |
#define MCE_MIN_RX_NUM_POLLS (-1)
|
|
Packit |
6d2c1b |
#define MCE_MAX_RX_NUM_POLLS (100000000)
|
|
Packit |
6d2c1b |
#define MCE_MIN_RX_PREFETCH_BYTES (32) /* Just enough for headers (IPoIB+IP+UDP)*/
|
|
Packit |
6d2c1b |
#define MCE_MAX_RX_PREFETCH_BYTES (2044)
|
|
Packit |
6d2c1b |
#define MCE_RX_CQ_DRAIN_RATE_DISABLED (0)
|
|
Packit |
6d2c1b |
#define MCE_CQ_DRAIN_INTERVAL_DISABLED (0)
|
|
Packit |
6d2c1b |
#define MCE_CQ_ADAPTIVE_MODERATION_DISABLED (0)
|
|
Packit |
6d2c1b |
#define MCE_MIN_CQ_POLL_BATCH (1)
|
|
Packit |
6d2c1b |
#define MCE_MAX_CQ_POLL_BATCH (128)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_IPOIB_FLAG (1)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_SOCKETXTREME (false)
|
|
Packit |
6d2c1b |
#ifdef DEFINED_TSO
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TSO (true)
|
|
Packit |
6d2c1b |
#endif /* DEFINED_TSO */
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_RX_POLL_ON_TX_TCP (false)
|
|
Packit |
6d2c1b |
#define MCE_DEFAULT_TRIGGER_DUMMY_SEND_GETSOCKNAME (false)
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MCE_ALIGNMENT ((unsigned long)63)
|
|
Packit |
6d2c1b |
#define RX_BUF_SIZE(mtu) ((mtu) + IPOIB_HDR_LEN + GRH_HDR_LEN) // RX buffers are larger in IB
|
|
Packit |
6d2c1b |
#define TX_BUF_SIZE(mtu) ((mtu) + 92) // Tx buffers are larger in Ethernet (they include L2 for RAW QP)
|
|
Packit |
6d2c1b |
#define NUM_TX_WRE_TO_SIGNAL_MAX 64
|
|
Packit |
6d2c1b |
#define NUM_RX_WRE_TO_POST_RECV_MAX 1024
|
|
Packit |
6d2c1b |
#define TCP_MAX_SYN_RATE_TOP_LIMIT 100000
|
|
Packit |
6d2c1b |
#define DEFAULT_MC_TTL 64
|
|
Packit |
6d2c1b |
#define IFTYPE_PARAM_FILE "/sys/class/net/%s/type"
|
|
Packit |
6d2c1b |
#define IFADDR_MTU_PARAM_FILE "/sys/class/net/%s/mtu"
|
|
Packit |
6d2c1b |
#define UMCAST_PARAM_FILE "/sys/class/net/%s/umcast"
|
|
Packit |
6d2c1b |
#define IPOIB_MODE_PARAM_FILE "/sys/class/net/%s/mode"
|
|
Packit |
6d2c1b |
#define VERBS_DEVICE_PORT_PARAM_FILE "/sys/class/net/%s/dev_port"
|
|
Packit |
6d2c1b |
#define VERBS_DEVICE_ID_PARAM_FILE "/sys/class/net/%s/dev_id"
|
|
Packit |
6d2c1b |
#define BONDING_MODE_PARAM_FILE "/sys/class/net/%s/bonding/mode"
|
|
Packit |
6d2c1b |
#define BONDING_SLAVES_PARAM_FILE "/sys/class/net/%s/bonding/slaves"
|
|
Packit |
6d2c1b |
#define BONDING_ACTIVE_SLAVE_PARAM_FILE "/sys/class/net/%s/bonding/active_slave"
|
|
Packit |
6d2c1b |
#define BONDING_FAILOVER_MAC_PARAM_FILE "/sys/class/net/%s/bonding/fail_over_mac"
|
|
Packit |
6d2c1b |
#define BONDING_XMIT_HASH_POLICY_PARAM_FILE "/sys/class/net/%s/bonding/xmit_hash_policy"
|
|
Packit |
6d2c1b |
#define BONDING_ROCE_LAG_FILE "/sys/class/net/%s/device/roce_lag_enable"
|
|
Packit |
6d2c1b |
/* BONDING_SLAVE_STATE_PARAM_FILE is for kernel > 3.14 or RH7.2 and higher */
|
|
Packit |
6d2c1b |
#define BONDING_SLAVE_STATE_PARAM_FILE "/sys/class/net/%s/bonding_slave/state"
|
|
Packit |
6d2c1b |
#define L2_ADDR_FILE_FMT "/sys/class/net/%.*s/address"
|
|
Packit |
6d2c1b |
#define L2_BR_ADDR_FILE_FMT "/sys/class/net/%.*s/broadcast"
|
|
Packit |
6d2c1b |
#define OPER_STATE_PARAM_FILE "/sys/class/net/%s/operstate"
|
|
Packit |
6d2c1b |
#define RAW_QP_PRIVLIGES_PARAM_FILE "/sys/module/ib_uverbs/parameters/disable_raw_qp_enforcement"
|
|
Packit |
6d2c1b |
#define FLOW_STEERING_MGM_ENTRY_SIZE_PARAM_FILE "/sys/module/mlx4_core/parameters/log_num_mgm_entry_size"
|
|
Packit |
6d2c1b |
#define VIRTUAL_DEVICE_FOLDER "/sys/devices/virtual/net/%s/"
|
|
Packit |
6d2c1b |
#define BOND_DEVICE_FILE "/proc/net/bonding/%s"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define NETVSC_DEVICE_CLASS_FILE "/sys/class/net/%s/device/class_id"
|
|
Packit |
6d2c1b |
#define NETVSC_DEVICE_LOWER_FILE "/sys/class/net/%s/lower_%s/ifindex"
|
|
Packit |
6d2c1b |
#define NETVSC_DEVICE_UPPER_FILE "/sys/class/net/%s/upper_%s/ifindex"
|
|
Packit |
6d2c1b |
#define NETVSC_ID "{f8615163-df3e-46c5-913f-f2d2f965ed0e}\n"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define MAX_STATS_FD_NUM 1024
|
|
Packit |
6d2c1b |
#define MAX_WINDOW_SCALING 14
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#define VIRTUALIZATION_FLAG "hypervisor"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
extern bool g_b_exit;
|
|
Packit |
6d2c1b |
extern bool g_is_forked_child;
|
|
Packit |
6d2c1b |
extern bool g_init_global_ctors_done;
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
#endif
|