eBPF系列 :bpf2bpf调用和tail调用

内联模拟函数调用

内核在4.2版本之前,由于BPF虚拟机不支持函数调用,BPF程序要想实现函数调用或者代码复用的效果,只能采用内联的方式,在头文件中声明 :inline __attribute__((always_inline));但这样做的有一个很大的缺点,会因内联操作越多导致BPF对象文件的大小越是膨胀;

尾调用(tail call)

内核到了4.2版本的时候,BPF提供了tail调用特性,可以允许一个 BPF 程序调用另一个程序,但这样的调用无法返回;其本质是由一个长跳转来实现,并复用同一个栈帧和寄存器R6-R9。但这样的调用是有调用次数限制的,由内核宏 MAX_TAIL_CALL_CNT 指定,目前限制为 32 次。虽然还是无法向函数调用一样的灵活,但已可以利用这个特性来减少代码规范,把复杂的逻辑分担到多个eBPF程序中,更好的管理和维护代码;

尾调用(tail call)是比较复杂的,需要用户态和内核态配合:

首先需要再用户态定义一个BPF_MAP_TYPE_PROG_ARRAY类型的map,把需要调用的程序句柄和对应的索引关系保存起来;

然后在内核态通过bpf_tail_call函数和指定的索引值,跳转到另一个eBPF程序;

其中用户态和内核态通过这个BPF_MAP_TYPE_PROG_ARRAY类型的map关联起来,需要跳转的eBPF程序和索引index一一对应,索引顺序用户自定义即可;

如果整个尾调用成功,则内核会立刻运行被调用的eBPF程序ÿ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149653.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Transformer-LSTM网络的轴承寿命预测,保姆级教程终于来了!

概要 关于轴承寿命预测,网络上的文章、代码层出不穷,但是质量却是令人堪忧,有很多文章甚至存在误导嫌疑。本期代码是在小淘怒肝好几个夜晚整理出来的,本期代码可以帮你迅速掌握一个轴承寿命预测的全过程。 为了不误导我的读者朋…

YOLOv5独家改进:严重遮挡和重叠目标场景解决方案 | 一种新的自适应算法轻量级通道分割和变换(ALSS)模块,自适应特征提取优化策略

💡💡💡本文解决什么问题:红外检测场景存在严重遮挡和重叠目标时的局限性的问题点。 💡💡💡提出了一种新的自适应算法轻量级通道分割和变换(ALSS)模块。该模块采用自适应信道分裂策略优化特征提取,并集成信道变换机制增强信道间的信息交换。这改善了模糊特征的提…

【d48】【Java】【力扣】LCR 123. 图书整理 I

思路 方法1:放进list,将list倒置,利用stream,将list改为int类型 方法2:递归:递归通用思路;明确每一层做什么确定返回值确定什么地方接收下层的返回值 每一层:调用下层,然后把自己…

Oracle AI理论与实践,企业落地篇干货满满

最近也是看到了圈子里的一位DBA好友,领导安排的工作是让负责AI的落地,而且也作为他业绩考核的指标,作为1名15年的DBA老兵来说,让AI落地面临的困难重重。 AI已经逐渐侵入到实际的生活中,最近我也是参加了Oracle官方在中…

【py】计算字母出现次数 字典储存

代码 用于计算用户输入字符串中每个字母字符的出现频率: from collections import Counter def calculate_character_frequency(): # 获取用户输入的字符串 user_input input("请输入一个字符串:") # 将字符串转换为小写…

摄影社团管理系统

基于springbootvue实现的摄影社团管理系统 (源码L文ppt)4-075 第四章 系统概要设计 4.1系统设计原理 设计原理是指系统的设计来源,它将需求合理地分解为功能,并抽象地描述系统的模块和其下的功能。在功能模块化后&#xff…

DeiT(ICML2021):Data-efficient image Transformer,基于新型蒸馏且数据高效的ViT!

Training data-efficient image transformers & distillation through attention:通过注意力训练数据高效的图像转换器和蒸馏 论文地址: https://arxiv.org/abs/2012.12877 代码地址: https://github.com/facebookresearch/deit 这篇论文…

KDD2024 时序论文(Time Series)

1、Generative Pretrained Hierarchical Transformer for Time Series Forecasting paper: https://dl.acm.org/doi/abs/10.1145/3637528.3671855 code:GitHub - SiriZhang45/FRNet: Code Implementation of FRNet 2、Fredformer: Frequency Debiased Transforme…

一文教你分不清路由器、交换机、光猫的概念,协助你对路由模组选型

当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成部分,承担着连接、传输和管理数据的重要任务。在日常生活和工作中,我们几乎离不开它们的存在,无论是在家中上网、办公室内…

Java:日期操作

目录 1、生成20240605180212格式的时间2、Date类型转LocalDate类型3、LocalDate类型基本操作4、格式化日期格式5、String 与 LocalDateTime 之间的转换6、生成指定时间段内的时间列表 1、生成20240605180212格式的时间 String dateTime LocalDateTime.now().format(DateTimeF…

【成品论文】2024年华为杯研究生数学建模A题成品论文

您的点赞收藏是我继续更新的最大动力! 一定要点击如下的卡片,那是获取资料的入口! 【全网最全】2024年华为杯研赛A题保奖思路matlab/py代码成品论文等(后续会更新完整 点击链接获取群聊【2024华为杯研赛资料汇总】:https://qm.q…

Unity 设计模式 之 行为型模式 -【状态模式】【观察者模式】【备忘录模式】

Unity 设计模式 之 行为型模式 -【状态模式】【观察者模式】【备忘录模式】 目录 Unity 设计模式 之 行为型模式 -【状态模式】【观察者模式】【备忘录模式】 一、简单介绍 二、状态模式(State Pattern) 1、什么时候使用状态模式 2、使用状态模式的…

力扣516-最长回文子序列(Java详细题解)

题目链接:力扣516-最长回文子序列 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5.如果没有ac打印dp数组 利于debug。 每…

接口测试Postman关联,断言,前置,参数化用法

一、Postman下载 我们直接搜索Postman官网下载即可 Postman API Platformhttps://www.postman.com/ 二、使用 下载安装完成后我们需要登录注册,按照Postman的指示进行注册登录,不登陆可能有些功能无法使用 登陆完成我们就可以开始对接口进行测试了 …

C++速通LeetCode中等第27题-二叉树展开为链表(两种迭代法)

迭代法一:额外容器,前序遍历暴力求解(空间O(n)) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …

Tableau|一入门

一 什么是BI工具 BI 工具即商业智能(Business Intelligence)工具,是一种用于收集、整理、分析和展示企业数据的软件系统,其主要目的是帮助企业用户更好地理解和利用数据,以支持决策制定。 主要功能: 1.数据…

springboot在线教学平台

基于springbootvue实现的在线教学平台 (源码L文ppt)4-069 4.1系统结构设计 这些功能可以充分满足在线教学平台的需求。此系统功能较为全面如下图系统功能结构如图4-1所示。 图4-1功能结构图 4.2系统功能模块设计 在线教学平台的使用者主要有二类…

技术速递|宣布 Azure Container Apps 上的 Java 体验正式推出

作者:Sean Li 排版:Alan Wang Azure Container Apps 是一个完全托管的、无服务器容器平台,使您能够构建、部署和运行容器化应用程序。使用 Azure Container Apps 您可以弹性扩缩容。您可以使用统一的网络设计弹性微服务,并利用启用…

频率增强通道注意力机制(FECAM)学习总结

本文提出了一种新的频率增强通道注意力机制(FECAM),旨在解决时间序列预测中傅里叶变换因吉布斯现象导致的高频噪声问题。FECAM基于离散余弦变换,能自适应地模拟信道间的频率依赖性,有效避免预测误差。实验显示&#xf…

赛意SMOM和金蝶云星空接口打通对接实战

赛意SMOM和金蝶云星空接口打通对接实战 对接源平台:赛意SMOM 赛意信息已经发展成为国内企业数字化服务领域最具发展潜力的领军企业之一,聚焦于工业互联网、智能制造、新一代信息技术、数字化转型等领域的技术与商业模式应用,为企业提供高端软件咨询、实施…