Commit 6b24ca4
Matthew Wilcox (Oracle)
mm: Use multi-index entries in the page cache
We currently store large folios as 2^N consecutive entries. While this
consumes rather more memory than necessary, it also turns out to be buggy.
A writeback operation which starts within a tail page of a dirty folio will
not write back the folio as the xarray's dirty bit is only set on the
head index. With multi-index entries, the dirty bit will be found no
matter where in the folio the operation starts.
This does end up simplifying the page cache slightly, although not as
much as I had hoped.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>1 parent 25a8de7 commit 6b24ca4
File tree
6 files changed
+72
-56
lines changed- include/linux
- mm
6 files changed
+72
-56
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1125 | 1125 | | |
1126 | 1126 | | |
1127 | 1127 | | |
1128 | | - | |
1129 | | - | |
1130 | | - | |
1131 | | - | |
1132 | | - | |
1133 | | - | |
1134 | | - | |
1135 | | - | |
1136 | | - | |
1137 | | - | |
1138 | 1128 | | |
1139 | 1129 | | |
1140 | 1130 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
138 | | - | |
139 | 138 | | |
140 | 139 | | |
141 | 140 | | |
| |||
286 | 285 | | |
287 | 286 | | |
288 | 287 | | |
289 | | - | |
| 288 | + | |
290 | 289 | | |
291 | 290 | | |
292 | 291 | | |
| |||
313 | 312 | | |
314 | 313 | | |
315 | 314 | | |
316 | | - | |
317 | | - | |
| 315 | + | |
318 | 316 | | |
319 | 317 | | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
| 318 | + | |
326 | 319 | | |
327 | | - | |
| 320 | + | |
328 | 321 | | |
329 | 322 | | |
330 | 323 | | |
| |||
2089 | 2082 | | |
2090 | 2083 | | |
2091 | 2084 | | |
2092 | | - | |
| 2085 | + | |
2093 | 2086 | | |
2094 | 2087 | | |
2095 | 2088 | | |
2096 | 2089 | | |
2097 | | - | |
2098 | | - | |
2099 | | - | |
2100 | | - | |
2101 | | - | |
2102 | | - | |
2103 | | - | |
2104 | 2090 | | |
2105 | 2091 | | |
2106 | 2092 | | |
2107 | 2093 | | |
2108 | 2094 | | |
2109 | 2095 | | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
| 2105 | + | |
2110 | 2106 | | |
2111 | 2107 | | |
2112 | 2108 | | |
| |||
2145 | 2141 | | |
2146 | 2142 | | |
2147 | 2143 | | |
| 2144 | + | |
2148 | 2145 | | |
2149 | 2146 | | |
2150 | 2147 | | |
2151 | 2148 | | |
2152 | 2149 | | |
| 2150 | + | |
| 2151 | + | |
| 2152 | + | |
| 2153 | + | |
| 2154 | + | |
2153 | 2155 | | |
2154 | 2156 | | |
2155 | 2157 | | |
| |||
2207 | 2209 | | |
2208 | 2210 | | |
2209 | 2211 | | |
2210 | | - | |
| 2212 | + | |
| 2213 | + | |
2211 | 2214 | | |
2212 | 2215 | | |
| 2216 | + | |
| 2217 | + | |
| 2218 | + | |
| 2219 | + | |
| 2220 | + | |
2213 | 2221 | | |
2214 | 2222 | | |
2215 | 2223 | | |
| |||
2334 | 2342 | | |
2335 | 2343 | | |
2336 | 2344 | | |
2337 | | - | |
2338 | | - | |
| 2345 | + | |
2339 | 2346 | | |
2340 | 2347 | | |
2341 | 2348 | | |
| |||
3284 | 3291 | | |
3285 | 3292 | | |
3286 | 3293 | | |
| 3294 | + | |
3287 | 3295 | | |
3288 | 3296 | | |
3289 | 3297 | | |
| |||
3305 | 3313 | | |
3306 | 3314 | | |
3307 | 3315 | | |
| 3316 | + | |
| 3317 | + | |
| 3318 | + | |
| 3319 | + | |
| 3320 | + | |
3308 | 3321 | | |
3309 | 3322 | | |
3310 | 3323 | | |
| 3324 | + | |
| 3325 | + | |
| 3326 | + | |
| 3327 | + | |
3311 | 3328 | | |
3312 | 3329 | | |
3313 | 3330 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2614 | 2614 | | |
2615 | 2615 | | |
2616 | 2616 | | |
| 2617 | + | |
2617 | 2618 | | |
2618 | 2619 | | |
2619 | 2620 | | |
| |||
2652 | 2653 | | |
2653 | 2654 | | |
2654 | 2655 | | |
| 2656 | + | |
| 2657 | + | |
| 2658 | + | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
| 2662 | + | |
2655 | 2663 | | |
2656 | 2664 | | |
2657 | 2665 | | |
| |||
2681 | 2689 | | |
2682 | 2690 | | |
2683 | 2691 | | |
2684 | | - | |
2685 | | - | |
2686 | 2692 | | |
2687 | 2693 | | |
2688 | 2694 | | |
2689 | 2695 | | |
2690 | | - | |
| 2696 | + | |
| 2697 | + | |
2691 | 2698 | | |
2692 | 2699 | | |
2693 | 2700 | | |
| |||
2703 | 2710 | | |
2704 | 2711 | | |
2705 | 2712 | | |
| 2713 | + | |
2706 | 2714 | | |
2707 | 2715 | | |
2708 | 2716 | | |
| |||
2719 | 2727 | | |
2720 | 2728 | | |
2721 | 2729 | | |
2722 | | - | |
| 2730 | + | |
2723 | 2731 | | |
2724 | 2732 | | |
2725 | 2733 | | |
| |||
2733 | 2741 | | |
2734 | 2742 | | |
2735 | 2743 | | |
| 2744 | + | |
| 2745 | + | |
2736 | 2746 | | |
2737 | 2747 | | |
2738 | 2748 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1667 | 1667 | | |
1668 | 1668 | | |
1669 | 1669 | | |
1670 | | - | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
1671 | 1674 | | |
1672 | 1675 | | |
1673 | 1676 | | |
| |||
1892 | 1895 | | |
1893 | 1896 | | |
1894 | 1897 | | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
1895 | 1901 | | |
1896 | 1902 | | |
1897 | 1903 | | |
| |||
2013 | 2019 | | |
2014 | 2020 | | |
2015 | 2021 | | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
2016 | 2026 | | |
2017 | 2027 | | |
2018 | 2028 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
433 | 433 | | |
434 | 434 | | |
435 | 435 | | |
436 | | - | |
437 | | - | |
438 | | - | |
439 | | - | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | 436 | | |
445 | 437 | | |
446 | 438 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
694 | 694 | | |
695 | 695 | | |
696 | 696 | | |
697 | | - | |
698 | 697 | | |
699 | 698 | | |
700 | 699 | | |
| |||
721 | 720 | | |
722 | 721 | | |
723 | 722 | | |
724 | | - | |
725 | 723 | | |
726 | | - | |
727 | | - | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
728 | 729 | | |
729 | | - | |
730 | | - | |
731 | 730 | | |
732 | | - | |
733 | | - | |
734 | | - | |
735 | | - | |
736 | | - | |
737 | 731 | | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
738 | 735 | | |
739 | 736 | | |
740 | 737 | | |
| |||
0 commit comments