代码拉取完成,页面将自动刷新
// #include <spdk/env.h>
// #include <spdk/event.h>
// #include <spdk/bdev.h>
// #include "util/log.h"
// #include "message.h"
// #include "spdk_ipc_config.h"
// static const char *g_tgt_process_coremask = "[0,1]";
// static const char *g_zcell_process_coremask = "[2,3]";
// static int g_is_primary;
// static int g_zcell_master_init_done;
// static const char *g_zcell_cfg_name = ZCELL_IPC_CONFIG_NAME;
// static struct zcell_ipc_config_t *g_zcfg;
// struct reactor_ctx_t {
// struct spdk_poller *recv_poller;
// };
// static __thread struct reactor_ctx_t rctx;
// void _sys_fini() {
// spdk_app_stop(0);
// }
// void _tgt_init()
// {
// log_info("******Target******\n");
// log_info("Number of cores:%u\n" , spdk_env_get_core_count());
// log_info("Master core:%u\n" , spdk_env_get_current_core());
// log_info("Thread count=%u\n" , spdk_thread_get_count());
// }
// void _zcell_channel_setup()
// {
// }
// void _zcell_configure_init()
// {
// }
// void _zcell_master_init() {
// void *cfg = spdk_memzone_reserve_aligned(g_zcell_cfg_name, sizeof(struct zcell_ipc_config_t) ,SPDK_ENV_SOCKET_ID_ANY , 0 , 0);
// assert(cfg);
// struct zcell_ipc_config_t *zic = cfg;
// uint32_t i;
// for ( i = 0 ; i < NR_CORE_MAX ; ++i) {
// zic->rings[i] = spdk_ring_create(SPDK_RING_TYPE_MP_SC , 1024 , SPDK_ENV_SOCKET_ID_ANY);
// assert(zic->rings[i]);
// }
// return;
// }
// static inline struct spdk_ring* _zcell_myring()
// {
// uint32_t lcore = spdk_env_get_current_core();
// return g_zcfg->rings[lcore];
// }
// void _zcell_init_continue(void *arg1 , void *arg2);
// void _zcell_reactor_common_init()
// {
// // while (*(volatile int *)&g_zcell_master_init_done == 0)
// // ;
// rctx.recv_poller = spdk_poller_register(_zcell_recv_poll , NULL , 0 ) ;
// log_info("Zcell[%u] init done\n" , spdk_env_get_current_core());
// struct spdk_event *e = spdk_event_allocate(spdk_env_get_first_core(),_zcell_init_continue , NULL ,NULL);
// spdk_event_call(e);
// return;
// }
// void _zcell_reactor_master_init()
// {
// if(spdk_env_get_current_core() == spdk_env_get_first_core()) {
// //master
// _zcell_master_init();
// g_zcfg = spdk_memzone_lookup(g_zcell_cfg_name);
// log_info("Zcell configure init done\n");
// // *(volatile int *)&g_zcell_master_init_done = 1;
// // _mm_mfence();
// }
// }
// void _zcell_init_continue(void *arg1 , void *arg2)
// {
// static int n = 0;
// ++n;
// if( n == spdk_env_get_core_count()) {
// log_info("Init done\n");
// }
// }
// void _zcell_init()
// {
// log_info("******ZCell******\n");
// log_info("Number of cores:%u\n" , spdk_env_get_core_count());
// log_info("Master core:%u\n" , spdk_env_get_current_core());
// log_info("Reactor count=%u\n" , spdk_thread_get_count());
// _zcell_reactor_master_init();
// uint32_t i;
// SPDK_ENV_FOREACH_CORE(i) {
// _zcell_reactor_common_init();
// }
// }
// void _sys_init(void *arg) {
// (void)arg;
// if(g_is_primary) {
// _zcell_init();
// } else {
// _tgt_init();
// }
// }
// static void parse_args(int argc , char **argv) {
// int opt = -1;
// while ((opt = getopt(argc, argv, "I")) != -1) {
// switch (opt) {
// case 'I':
// g_is_primary = 1;
// break;
// default:
// log_info("Usage: %s \n" , argv[0]);
// exit(1);
// break;
// }
// }
// }
// int main(int argc , char **argv) {
// parse_args(argc,argv);
// struct spdk_app_opts opts;
// spdk_app_opts_init(&opts);
// opts.shm_id = 1;
// if(g_is_primary) {
// opts.reactor_mask = g_zcell_process_coremask;
// opts.rpc_addr = "/var/tmp/spdk_zcell.sock";
// opts.name = "zcell";
// } else {
// opts.reactor_mask = g_tgt_process_coremask;
// opts.rpc_addr = "/var/tmp/spdk_tgt.sock";
// opts.name = "spdk-tgt";
// }
// opts.shutdown_cb = _sys_fini;
// spdk_app_start(&opts , _sys_init , NULL);
// spdk_app_fini();
// return 0;
// }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。