linux - 如何计算 BPF 辅助函数的返回码的含义?
问题描述
我正在编写一个BPF_PROG_TYPE_SOCKET_OPS
程序,我看到以下内容/sys/kernel/debug/tracing/trace_pipe
:
<...>-12586 [001] .... 6972.409111: 0: update err: -95
当我由于以下代码段加载它时:
ret = bpf_sock_map_update(ops, &sock_ops, &idx, BPF_ANY);
if (ret < 0) {
bpf_debug("update err: %d\n", ret);
}
我怎样才能弄清楚-95是什么意思?当我查看https://elixir.bootlin.com/linux/latest/source/arch/alpha/include/uapi/asm/errno.h时,我看到:
#define ENOCSI 95 /* No CSI structure available */
这是找到错误含义的正确方法吗?如果是这样,描述的含义是什么?
解决方案
错误是这里的EOPNOTSUPP。这是由于尝试添加套接字时套接字未“满”(即必须建立TCP 连接)造成的。
推荐阅读
- php - Openid oidc_handle_browser_back:检测到浏览器返回,重定向到原始 URL:
- jmeter - 无法为第三方(Signicat)SSO 登录运行 Jmeter 测试
- python - 无法向 sendgrid python 发送电子邮件
- sql - 键为两列时的内连接
- python - 使用 python 进行数据匿名化
- angular - 无法将参数类型 string[] 分配给 {name:string} 类型的参数
- amazon-web-services - AWS eks fargate 与 appmesh 的集成
- dependency-injection - 使用依赖注入将羽毛应用程序对象传递给 TypeGraphQL
- java - org.springframework.orm.jpa.JpaSystemException:必须在调用 save() 之前手动分配此类的 id
- spring-boot - 如何在spring boot中将批量json文件索引到elasticsearch