spdk关于nvme模块的实例helloword代码
创始人
2024-05-28 08:58:18
0

spdk关于nvme模块的实例helloword代码

  • SPDK
  • 代码

SPDK

SPDK是一种高性能存储开发工具包,它提供了一组API,使开发人员可以利用现代存储技术来构建低延迟、高吞吐量的应用程序。其中NVMe模块是SPDK中的重要组件之一,它提供了一些API,使开发人员可以更方便地与NVMe SSD进行交互。下面是一个SPDK关于NVMe模块的实例helloworld代码,并且详细讲解一下。

代码

#include 
#include 
#include 
#include 
#include 
static void
probe_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid,struct spdk_nvme_ctrlr_opts *opts)
{printf("Found NVMe controller at %!s(MISSING):%!s(MISSING)\n", trid->traddr, trid->trsvcid);
}
int main(int argc, char **argv)
{struct spdk_env_opts opts;struct spdk_env_opts_init(&opts);opts.name = "helloworld";spdk_env_init(&opts);struct spdk_nvme_probe_ctx *probe_ctx;probe_ctx = spdk_nvme_probe_init();if (probe_ctx == NULL) {fprintf(stderr, "Failed to initialize NVMe probe context\n");return 1;}spdk_nvme_probe_poll_async(probe_ctx, probe_cb, NULL, NULL);spdk_nvme_probe_wait(probe_ctx);spdk_nvme_probe_cleanup(probe_ctx);spdk_env_cleanup();return 0;
}

这个代码的作用是探测系统中是否存在NVMe SSD。它的执行流程如下:

  1. 初始化SPDK环境,包括初始化日志、CPU掩码、内存池等。
  2. 初始化NVMe probe的上下文,返回一个probe_ctx指针。
  3. 调用spdk_nvme_probe_poll_async函数开始异步探测NVMe控制器。这个函数会在后台进行探测,并且当探测完成时,会调用probe_cb函数。
  4. 调用spdk_nvme_probe_wait函数等待探测完成。这个函数会阻塞当前线程,直到所有异步探测都完成。
  5. 调用spdk_nvme_probe_cleanup函数清理probe_ctx指针。
  6. 清理SPDK环境。
    在这个代码中,我们使用了三个NVMe相关的函数:
  • spdk_nvme_probe_init:初始化NVMe probe的上下文。
  • spdk_nvme_probe_poll_async:异步探测NVMe控制器。
  • spdk_nvme_probe_cleanup:清理NVMe probe的上下文。

其中,spdk_nvme_probe_poll_async函数是比较重要的一个函数,它接受三个参数:probe_ctx、probe_cb和cb_ctx。其中,probe_ctx是spdk_nvme_probe_init函数返回的probe_ctx指针,probe_cb是一个回调函数,当探测完成时会被调用,cb_ctx是一个回调函数的上下文参数。在这个例子中,我们将cb_ctx设置为NULL,没有使用它。
在probe_cb回调函数中,我们只是简单地输出了探测到的NVMe控制器的地址和服务ID。实际上,我们可以在这个回调函数中执行更多的操作,比如初始化NVMe命名空间、创建I/O队列等。
这个代码虽然很简单,但是它演示了如何使用SPDK的NVMe模块探测系统中的NVMe SSD。这个代码也为后续的NVMe应用程序开发奠定了基础。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

相关内容

热门资讯

同德化工陷债务漩涡!融资租赁纠... 1月15日晚间,山西民爆巨头同德化工(002360)发布公告称,近日公司及全资子公司同德科创材料有限...
迅雷起诉前CEO陈磊等人追索2... 1月15日,迅雷公司及其子公司网心科技(以下简称网心)以“损害公司利益责任纠纷”为由,对前CEO陈磊...
同德化工(002360)披露公... 截至2026年1月15日收盘,同德化工(002360)报收于5.03元,较前一交易日上涨2.24%,...
央行一揽子政策支持“十五五”开... 下调各类结构性货币政策工具利率0.25个百分点;将科技创新和技术改造再贷款额度从8000亿元增加至1...
旭杰科技:独立董事刘勇因涉嫌违... 证券之星消息,1月15日旭杰科技公开信息显示,独立董事刘勇因涉嫌违反证券法律法规,未依法履行其他职责...
助力经济结构转型优化 央行出台... 国务院新闻办公室今天下午举行新闻发布会,中国人民银行有关负责人介绍,根据当前经济金融形势需要,人民银...
500户业主十余年物业纠纷,涉... 近日,津市市人民法院调解室人声鼎沸,热气袅袅的茶香中,一份关乎近500名业主的和解协议正在被郑重签署...
严惩腐败犯罪!最高法:对于犯罪... 撰文 | 余晖 据最高法消息,1月15日上午,最高人民法院党组书记、院长张军主持召开党组会,传达学...
学习语丨更加科学有效地把权力关... 习近平总书记在二十届中央纪委五次全会上发表重要讲话强调,“党的自我革命重在治权,把权力关进制度笼子是...