Commit 88cddea
committed
Allocate zfs_locked_range_t memory externally from zfs_rangelock_{try,}enter()
Typically, the memory allocated by kmem_alloc() can be trivially
allocated from either the stack or as part of another structure. The
only case where it cannot is in vdev_raidz_io_start(), although some
further refactoring should be able to eliminate that case too.
Allocating from the stack or as part of another data structure is faster
as it gives us this memory for free, so there is little reason not to do
it.
This eliminates a non-neligible amount of CPU time that I have seen in
flame graphs going back to the early days of OpenZFS when the tree was
the ZFSOnLinux tree. This should make our VFS and zvol operations
slightly faster. Some RAID-Z operations will also become slightly
faster.
Signed-off-by: Richard Yao <[email protected]>1 parent 1acd246 commit 88cddea
File tree
13 files changed
+188
-190
lines changed- cmd
- include/sys
- module
- os
- freebsd/zfs
- linux/zfs
- zfs
13 files changed
+188
-190
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1745 | 1745 | | |
1746 | 1746 | | |
1747 | 1747 | | |
1748 | | - | |
1749 | | - | |
| 1748 | + | |
| 1749 | + | |
1750 | 1750 | | |
1751 | 1751 | | |
1752 | 1752 | | |
1753 | 1753 | | |
1754 | | - | |
1755 | 1754 | | |
1756 | | - | |
1757 | 1755 | | |
1758 | 1756 | | |
1759 | 1757 | | |
1760 | 1758 | | |
1761 | 1759 | | |
1762 | 1760 | | |
1763 | | - | |
1764 | | - | |
1765 | 1761 | | |
1766 | 1762 | | |
1767 | 1763 | | |
| |||
1770 | 1766 | | |
1771 | 1767 | | |
1772 | 1768 | | |
1773 | | - | |
1774 | | - | |
1775 | 1769 | | |
1776 | 1770 | | |
1777 | 1771 | | |
| |||
2200 | 2194 | | |
2201 | 2195 | | |
2202 | 2196 | | |
2203 | | - | |
| 2197 | + | |
2204 | 2198 | | |
2205 | 2199 | | |
2206 | 2200 | | |
| |||
2224 | 2218 | | |
2225 | 2219 | | |
2226 | 2220 | | |
2227 | | - | |
| 2221 | + | |
2228 | 2222 | | |
2229 | 2223 | | |
2230 | 2224 | | |
| |||
2249 | 2243 | | |
2250 | 2244 | | |
2251 | 2245 | | |
2252 | | - | |
| 2246 | + | |
2253 | 2247 | | |
2254 | 2248 | | |
2255 | 2249 | | |
| |||
2315 | 2309 | | |
2316 | 2310 | | |
2317 | 2311 | | |
2318 | | - | |
| 2312 | + | |
2319 | 2313 | | |
2320 | 2314 | | |
2321 | 2315 | | |
| |||
2329 | 2323 | | |
2330 | 2324 | | |
2331 | 2325 | | |
2332 | | - | |
| 2326 | + | |
2333 | 2327 | | |
2334 | 2328 | | |
2335 | 2329 | | |
2336 | 2330 | | |
2337 | 2331 | | |
2338 | | - | |
| 2332 | + | |
2339 | 2333 | | |
2340 | 2334 | | |
2341 | 2335 | | |
| |||
2344 | 2338 | | |
2345 | 2339 | | |
2346 | 2340 | | |
2347 | | - | |
| 2341 | + | |
2348 | 2342 | | |
2349 | 2343 | | |
2350 | 2344 | | |
| |||
2356 | 2350 | | |
2357 | 2351 | | |
2358 | 2352 | | |
2359 | | - | |
| 2353 | + | |
2360 | 2354 | | |
2361 | 2355 | | |
2362 | 2356 | | |
| |||
2472 | 2466 | | |
2473 | 2467 | | |
2474 | 2468 | | |
2475 | | - | |
| 2469 | + | |
2476 | 2470 | | |
2477 | 2471 | | |
2478 | 2472 | | |
2479 | 2473 | | |
2480 | | - | |
| 2474 | + | |
2481 | 2475 | | |
2482 | 2476 | | |
2483 | 2477 | | |
| |||
2527 | 2521 | | |
2528 | 2522 | | |
2529 | 2523 | | |
2530 | | - | |
| 2524 | + | |
2531 | 2525 | | |
2532 | 2526 | | |
2533 | 2527 | | |
| |||
2543 | 2537 | | |
2544 | 2538 | | |
2545 | 2539 | | |
2546 | | - | |
| 2540 | + | |
2547 | 2541 | | |
2548 | 2542 | | |
2549 | 2543 | | |
| |||
2790 | 2784 | | |
2791 | 2785 | | |
2792 | 2786 | | |
2793 | | - | |
| 2787 | + | |
2794 | 2788 | | |
2795 | 2789 | | |
2796 | 2790 | | |
2797 | 2791 | | |
2798 | | - | |
| 2792 | + | |
2799 | 2793 | | |
2800 | 2794 | | |
2801 | 2795 | | |
| |||
2811 | 2805 | | |
2812 | 2806 | | |
2813 | 2807 | | |
2814 | | - | |
| 2808 | + | |
2815 | 2809 | | |
2816 | 2810 | | |
2817 | 2811 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
1083 | 1084 | | |
1084 | 1085 | | |
1085 | 1086 | | |
| 1087 | + | |
1086 | 1088 | | |
1087 | 1089 | | |
1088 | 1090 | | |
1089 | | - | |
1090 | 1091 | | |
1091 | 1092 | | |
1092 | 1093 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3924 | 3924 | | |
3925 | 3925 | | |
3926 | 3926 | | |
3927 | | - | |
| 3927 | + | |
| 3928 | + | |
3928 | 3929 | | |
3929 | 3930 | | |
3930 | 3931 | | |
| |||
3948 | 3949 | | |
3949 | 3950 | | |
3950 | 3951 | | |
3951 | | - | |
| 3952 | + | |
3952 | 3953 | | |
3953 | | - | |
| 3954 | + | |
3954 | 3955 | | |
3955 | 3956 | | |
3956 | 3957 | | |
| |||
3963 | 3964 | | |
3964 | 3965 | | |
3965 | 3966 | | |
3966 | | - | |
| 3967 | + | |
3967 | 3968 | | |
3968 | 3969 | | |
3969 | 3970 | | |
| |||
3974 | 3975 | | |
3975 | 3976 | | |
3976 | 3977 | | |
3977 | | - | |
| 3978 | + | |
3978 | 3979 | | |
3979 | 3980 | | |
3980 | 3981 | | |
3981 | 3982 | | |
3982 | 3983 | | |
3983 | 3984 | | |
3984 | | - | |
| 3985 | + | |
3985 | 3986 | | |
3986 | 3987 | | |
3987 | 3988 | | |
| |||
4032 | 4033 | | |
4033 | 4034 | | |
4034 | 4035 | | |
4035 | | - | |
| 4036 | + | |
4036 | 4037 | | |
4037 | 4038 | | |
4038 | 4039 | | |
| |||
4075 | 4076 | | |
4076 | 4077 | | |
4077 | 4078 | | |
4078 | | - | |
| 4079 | + | |
4079 | 4080 | | |
4080 | 4081 | | |
4081 | 4082 | | |
| |||
4107 | 4108 | | |
4108 | 4109 | | |
4109 | 4110 | | |
4110 | | - | |
| 4111 | + | |
4111 | 4112 | | |
4112 | 4113 | | |
4113 | 4114 | | |
| |||
4213 | 4214 | | |
4214 | 4215 | | |
4215 | 4216 | | |
4216 | | - | |
| 4217 | + | |
4217 | 4218 | | |
4218 | 4219 | | |
4219 | 4220 | | |
| |||
0 commit comments