当前位置: 首页 > news >正文

网站建设开发计划书网站模板设计

网站建设开发计划书,网站模板设计,网站首页布局的设计,网站建设外文文献翻译文章目录 前言环境安装编写hello-world程序 前言 目标: 在linux上安装DPDK的程序编写环境#xff0c;编写和运行DPDK的hello world程序。 声明#xff1a;我不清楚DPDK具体是个啥。DPDK的目的大概是#xff1a;原先的网络数据需要从内核层拷贝到用户层#xff0c;在IO越来… 文章目录 前言环境安装编写hello-world程序 前言 目标: 在linux上安装DPDK的程序编写环境编写和运行DPDK的hello world程序。 声明我不清楚DPDK具体是个啥。DPDK的目的大概是原先的网络数据需要从内核层拷贝到用户层在IO越来越快的今天CPU的处理就显得有点慢。DPDK可以跳过内核实现更快的数据包处理。 环境安装 阅读DPDK-系统要求、从源代码编译DPDK目标 首先是系统要求需要在内核中启用 HUGETLBFS 选项。我是在wsl-ubuntu中进行程序开发没找见内核选项。我以前简单编译过内核知道些内核选项内核编译选项简介。我在网上找了下暂时没有看见WSL-ubunut控制内核选项的方法。目前跳过。virtualbox-ubunut20-desktop中HUGETLBFS选项是默认开启的 接着是编译DPDK。emm我目前不清楚那些编译选项的具体内容。那直接使用包管理器安装吧当前够用就好。 # almlinux9 # sudo dnf remove dpdk dpdk-devel dpdk-tools # ubuntu22 sudo apt install libhugetlbfs-bin dpdk-dev libdpdk-dev编写hello-world程序 阅读Hello World 示例应用程序 这是一个最简单的 DPDK 应用程序示例。该应用程序只是在每个启用的 lcore 上打印一条“helloworld”消息。 lcore是啥 我们可以看下这个链接: 环境抽象层 (EAL) 环境抽象层 (Environment Abstraction Layer, EAL) 负责访问低级资源例如硬件和内存空间。它提供了一个通用接口对应用程序和库隐藏了环境细节。初始化例程负责决定如何分配这些资源即内存空间、设备、定时器、控制台等。 术语“lcore”指的是 EAL 线程。DPDK 通常为每个核心固定一个 pthread以避免任务切换的开销。这可以显着提高性能但缺乏灵活性并且并不总是高效。当使用多个 pthread 时EAL pthread 和指定的物理 CPU 之间的绑定不再总是 1:1… 下面是示例代码修改自helloworld #include rte_eal.h #include rte_lcore.h #include stdio.hint lcore_hello(__rte_unused void *arg) {unsigned int lcore_id rte_lcore_id();printf(hello from core %u\n, lcore_id);return 0; }int main(int argc, char *argv[]) {if (rte_eal_init(argc, argv) 0) {rte_exit(EXIT_FAILURE, fail in init);}for (unsigned int lcore_id rte_get_next_lcore(-1, 1, 0);lcore_id RTE_MAX_LCORE;lcore_id rte_get_next_lcore(lcore_id, 1, 0)) {rte_eal_remote_launch(lcore_hello, NULL, lcore_id);}lcore_hello(NULL);rte_eal_mp_wait_lcore(); // Wait until all lcores finish their jobs.rte_eal_cleanup();return 0; }下面逐行介绍下上面的API。由于所有的API接口文档都可以在DPDK-API查看。所以这里仅仅简单介绍下程序中使用的API。 rte_eal_init: 初始化EAL, 仅在main lcore上执行。rte_exit:终止程序打印错误消息错误码返回到shell。rte_get_next_lcore: 获取下一个启用的lcore ID。rte_eal_remote_launch: 向处于 WAIT 状态的工作线程 lcore发送消息。当远程lcore收到消息时它切换到RUNNING状态然后执行函数。执行完成后远程 lcore 切换到 WAIT 状态并且函数的返回值存储在本地变量中以便使用rte_eal_wait_lcore()读取。rte_eal_cleanup: 清理EAL。 下面来编译程序。这里通过cmake来构建。 cmake_minimum_required(VERSION 3.11)project(dpdk_hello_world)find_package(PkgConfig REQUIRED) pkg_check_modules(LIBDPDK REQUIRED libdpdk) include_directories(${LIBDPDK_INCLUDE_DIRS}) link_directories(${LIBDPDK_LIBRARY_DIRS}) message(STATUS LIBDPDK_LIBRARIES: ${LIBDPDK_LIBRARIES}) message(STATUS LIBDPDK_INCLUDE_DIRS: ${LIBDPDK_INCLUDE_DIRS}) message(STATUS LIBDPDK_LIBRARY_DIRS: ${LIBDPDK_LIBRARY_DIRS})add_executable(${PROJECT_NAME} main.cpp) target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBDPDK_LIBRARIES})编译和运行程序。 mkdir build; cd build; cmake ..; make# 在wsl中运行 # 没有开启大页的内核选项 # https://stackoverflow.com/questions/67996554/eal-initialization-error-on-running-dpdk-sample-program ./dpdk_hello_world EAL: Detected CPU lcores: 16 EAL: Detected NUMA nodes: 1 EAL: Detected shared linkage of DPDK EAL: Multi-process socket /tmp/dpdk/rte/mp_socket EAL: Selected IOVA mode VA EAL: No available 2048 kB hugepages reported EAL: No available 1048576 kB hugepages reported EAL: FATAL: Cannot get hugepage information. EAL: Cannot get hugepage information. EAL: Error - exiting with code: 1# ./dpdk_hello_world --help ./dpdk_hello_world --no-huge EAL: Detected CPU lcores: 16 EAL: Detected NUMA nodes: 1 EAL: Static memory layout is selected, amount of reserved memory can be adjusted with -m or --socket-mem EAL: Detected shared linkage of DPDK EAL: Multi-process socket /tmp/dpdk/rte/mp_socket EAL: Selected IOVA mode VA EAL: VFIO support initialized TELEMETRY: No legacy callbacks, legacy socket not created hello from core 1 hello from core 2 hello from core 3 hello from core 4 hello from core 5 hello from core 6 hello from core 7 hello from core 8 hello from core 9 hello from core 10 hello from core 11 hello from core 12 hello from core 13 hello from core 14 hello from core 15 hello from core 0
http://www.zqtcl.cn/news/209540/

相关文章:

  • 湖南网站优化代运营山东建设厅证件查询网址
  • 以百度云做网站空间浙江外贸网站建设
  • 南通网站建设推广专家wordpress 信息流 主题
  • 网站培训机构有哪些大学生做企业网站
  • 网站培训班有哪些课程做的好的大学生旅行有哪些网站好
  • 昌江县住房和城乡建设局网站佛山建设网站制作
  • 做网站 图片 文件夹 放哪儿北京模板网站建设
  • 网站制作公司哪家正规注册工程公司名称大全
  • 佛山微信网站建设哪家好做电商讲师课程的网站
  • 泰州城乡建设网站深圳logo设计公司哪家好
  • 东阳网站建设yw81wordpress登录注册页面梅花
  • 网站备案 厦门福州企业网站开发
  • 全国中小企业网站域名注册服务机构
  • 微信网站怎么做下载附件wordpress 代码执行
  • 5050众筹网站开发福州餐饮网站建设
  • 北京国家建设部网站网站备案需要去哪里
  • 廊坊哪里能够做网站网站改版影响
  • 比较好的源码网站手机网站支付如何制作
  • 深圳做网站哪个公司好重庆工程造价信息2021
  • 做电商宠物带哪个网站最好最近一周的重大新闻
  • 做网站难度李沧网站建设电话
  • 六安建设网站网站图片最大尺寸是多少
  • 手机建网站步骤软件优速网站建设
  • 导购网站如何做免费推广用wordpress开发网站模板
  • 建立网站 英语wordpress字体加载
  • 株洲网站建设和制作wordpress 瑞课教育
  • 网站开发培训什么淘宝客网站备案
  • 提供网站制作公司用虚拟机做服务器搭建网站
  • 做煤层气的网站仅对wordpress自带主题有效
  • 优化网站关键词排名东莞网站设计报价