Advertisement

AOSP平台在Android-ebpf程序(tracepoint)中涉及的相关map定义及其使用问题导致map和prog无法产生

阅读量:

前言

本文并非旨在全面阐述AOSP平台ebpf程序的编写全过程,并非深入探讨其中的所有细节内容。如需进一步了解相关技术与实践,
可访问以下链接:[aosp平台的整个下载流程,以及简单的程序编译与发布至手机运行](
值得注意的是,这一up是我ebpf领域探索的重要引路人,其个人站ID为LiujiaHuan13,如需进一步交流,
可期待他后续分享关于aosp平台上ebpf程序书写规范与编译实现的具体技术文档。

背景

因为Android系统在安全设置方面对ebpf程序有较高的限制要求, 一些微小的问题往往会导致内核态程序无法成功加载(如无法加载对应的map和prog)。从而本文归纳了一些导致map无法产生的主要原因。同时, 本文主要采用tracepoint技术实现对sched/sched_switch进程切换函数的挂载

1.map无法产生的原因

一般来说,在使用Map时无法产生问题的主要原因是Map的数据类型配置错误的根本原因。其中一种情况是包括HASH表或ARRAY数组的问题,另一种情况则是Map中的键值对配置错误的情况。我们将其归纳为两大类,并详细列举了可能导致问题的一些具体情况。为了更清晰地展示问题所在,在此我们采用了TracePoint工具,并定义了五个具体的Map实例来说明问题

复制代码
 DEFINE_BPF_MAP(cpu_id_map, AR

全部评论 (0)

还没有任何评论哟~