Commit bfccacd
committed
Merge branch 'allow-mmap-of-sys-kernel-btf-vmlinux'
Lorenz Bauer says:
====================
Allow mmap of /sys/kernel/btf/vmlinux
I'd like to cut down the memory usage of parsing vmlinux BTF in ebpf-go.
With some upcoming changes the library is sitting at 5MiB for a parse.
Most of that memory is simply copying the BTF blob into user space.
By allowing vmlinux BTF to be mmapped read-only into user space I can
cut memory usage by about 75%.
Signed-off-by: Lorenz Bauer <lmb@isovalent.com>
---
Changes in v5:
- Fix error return of btf_parse_raw_mmap (Andrii)
- Link to v4: https://lore.kernel.org/r/20250510-vmlinux-mmap-v4-0-69e424b2a672@isovalent.com
Changes in v4:
- Go back to remap_pfn_range for aarch64 compat
- Dropped btf_new_no_copy (Andrii)
- Fixed nits in selftests (Andrii)
- Clearer error handling in the mmap handler (Andrii)
- Fixed build on s390
- Link to v3: https://lore.kernel.org/r/20250505-vmlinux-mmap-v3-0-5d53afa060e8@isovalent.com
Changes in v3:
- Remove slightly confusing calculation of trailing (Alexei)
- Use vm_insert_page (Alexei)
- Simplified libbpf code
- Link to v2: https://lore.kernel.org/r/20250502-vmlinux-mmap-v2-0-95c271434519@isovalent.com
Changes in v2:
- Use btf__new in selftest
- Avoid vm_iomap_memory in btf_vmlinux_mmap
- Add VM_DONTDUMP
- Add support to libbpf
- Link to v1: https://lore.kernel.org/r/20250501-vmlinux-mmap-v1-0-aa2724572598@isovalent.com
---
====================
Link: https://patch.msgid.link/20250520-vmlinux-mmap-v5-0-e8c941acc414@isovalent.com
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>File tree
4 files changed
+186
-19
lines changed- include/asm-generic
- kernel/bpf
- tools
- lib/bpf
- testing/selftests/bpf/prog_tests
4 files changed
+186
-19
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
667 | 667 | | |
668 | 668 | | |
669 | 669 | | |
| 670 | + | |
670 | 671 | | |
671 | 672 | | |
672 | 673 | | |
673 | | - | |
| 674 | + | |
674 | 675 | | |
675 | 676 | | |
676 | 677 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
15 | 46 | | |
16 | 47 | | |
17 | 48 | | |
| 49 | + | |
18 | 50 | | |
19 | 51 | | |
20 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
120 | 121 | | |
121 | 122 | | |
122 | 123 | | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
123 | 127 | | |
124 | 128 | | |
125 | 129 | | |
| |||
951 | 955 | | |
952 | 956 | | |
953 | 957 | | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
954 | 969 | | |
955 | 970 | | |
956 | 971 | | |
| |||
970 | 985 | | |
971 | 986 | | |
972 | 987 | | |
973 | | - | |
| 988 | + | |
974 | 989 | | |
975 | 990 | | |
976 | 991 | | |
| |||
1030 | 1045 | | |
1031 | 1046 | | |
1032 | 1047 | | |
1033 | | - | |
| 1048 | + | |
1034 | 1049 | | |
1035 | 1050 | | |
1036 | 1051 | | |
| |||
1050 | 1065 | | |
1051 | 1066 | | |
1052 | 1067 | | |
1053 | | - | |
1054 | | - | |
1055 | | - | |
1056 | | - | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
1057 | 1078 | | |
1058 | | - | |
| 1079 | + | |
1059 | 1080 | | |
1060 | 1081 | | |
1061 | 1082 | | |
| |||
1083 | 1104 | | |
1084 | 1105 | | |
1085 | 1106 | | |
1086 | | - | |
| 1107 | + | |
1087 | 1108 | | |
1088 | 1109 | | |
1089 | 1110 | | |
1090 | 1111 | | |
1091 | | - | |
| 1112 | + | |
1092 | 1113 | | |
1093 | 1114 | | |
1094 | 1115 | | |
| |||
1209 | 1230 | | |
1210 | 1231 | | |
1211 | 1232 | | |
1212 | | - | |
| 1233 | + | |
1213 | 1234 | | |
1214 | 1235 | | |
1215 | 1236 | | |
| |||
1218 | 1239 | | |
1219 | 1240 | | |
1220 | 1241 | | |
1221 | | - | |
| 1242 | + | |
1222 | 1243 | | |
1223 | 1244 | | |
1224 | 1245 | | |
| |||
1335 | 1356 | | |
1336 | 1357 | | |
1337 | 1358 | | |
1338 | | - | |
| 1359 | + | |
1339 | 1360 | | |
1340 | 1361 | | |
1341 | 1362 | | |
| |||
1354 | 1375 | | |
1355 | 1376 | | |
1356 | 1377 | | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
1357 | 1409 | | |
1358 | 1410 | | |
1359 | 1411 | | |
| |||
1618 | 1670 | | |
1619 | 1671 | | |
1620 | 1672 | | |
1621 | | - | |
| 1673 | + | |
1622 | 1674 | | |
1623 | 1675 | | |
1624 | 1676 | | |
| |||
1658 | 1710 | | |
1659 | 1711 | | |
1660 | 1712 | | |
1661 | | - | |
1662 | | - | |
1663 | | - | |
1664 | | - | |
| 1713 | + | |
| 1714 | + | |
1665 | 1715 | | |
1666 | 1716 | | |
1667 | 1717 | | |
| |||
5331 | 5381 | | |
5332 | 5382 | | |
5333 | 5383 | | |
5334 | | - | |
| 5384 | + | |
| 5385 | + | |
| 5386 | + | |
| 5387 | + | |
5335 | 5388 | | |
5336 | 5389 | | |
5337 | 5390 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
0 commit comments