forked fromtorvalds/linux
- Notifications
You must be signed in to change notification settings - Fork1
Commit9a98225
thp: introduce deferred_split_huge_page()
Currently we don't split huge page on partial unmap. It's not an idealsituation. It can lead to memory overhead.Furtunately, we can detect partial unmap on page_remove_rmap(). But wecannot call split_huge_page() from there due to locking context.It's also counterproductive to do directly from munmap() codepath: inmany cases we will hit this from exit(2) and splitting the huge pagejust to free it up in small pages is not what we really want.The patch introduce deferred_split_huge_page() which put the huge pageinto queue for splitting. The splitting itself will happen when we getmemory pressure via shrinker interface. The page will be dropped fromlist on freeing through compound page destructor.Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>Tested-by: Sasha Levin <sasha.levin@oracle.com>Tested-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>Acked-by: Vlastimil Babka <vbabka@suse.cz>Acked-by: Jerome Marchand <jmarchan@redhat.com>Cc: Andrea Arcangeli <aarcange@redhat.com>Cc: Hugh Dickins <hughd@google.com>Cc: Dave Hansen <dave.hansen@intel.com>Cc: Mel Gorman <mgorman@suse.de>Cc: Rik van Riel <riel@redhat.com>Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>Cc: Steve Capper <steve.capper@linaro.org>Cc: Johannes Weiner <hannes@cmpxchg.org>Cc: Michal Hocko <mhocko@suse.cz>Cc: Christoph Lameter <cl@linux.com>Cc: David Rientjes <rientjes@google.com>Signed-off-by: Andrew Morton <akpm@linux-foundation.org>Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>1 parent248db92 commit9a98225
File tree
7 files changed
+174
-12
lines changed- include/linux
- mm
7 files changed
+174
-12
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
90 | 90 |
| |
91 | 91 |
| |
92 | 92 |
| |
| 93 | + | |
| 94 | + | |
| 95 | + | |
93 | 96 |
| |
94 | 97 |
| |
95 | 98 |
| |
96 | 99 |
| |
97 | 100 |
| |
| 101 | + | |
98 | 102 |
| |
99 | 103 |
| |
100 | 104 |
| |
| |||
170 | 174 |
| |
171 | 175 |
| |
172 | 176 |
| |
| 177 | + | |
173 | 178 |
| |
174 | 179 |
| |
175 | 180 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
507 | 507 |
| |
508 | 508 |
| |
509 | 509 |
| |
| 510 | + | |
| 511 | + | |
| 512 | + | |
510 | 513 |
| |
511 | 514 |
| |
512 | 515 |
| |
| |||
537 | 540 |
| |
538 | 541 |
| |
539 | 542 |
| |
| 543 | + | |
| 544 | + | |
540 | 545 |
| |
541 | 546 |
| |
542 | 547 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
55 | 55 |
| |
56 | 56 |
| |
57 | 57 |
| |
| 58 | + | |
58 | 59 |
| |
59 | 60 |
| |
60 | 61 |
| |
61 | 62 |
| |
62 | 63 |
| |
63 | 64 |
| |
64 | 65 |
| |
| 66 | + | |
65 | 67 |
| |
66 | 68 |
| |
67 | 69 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
135 | 135 |
| |
136 | 136 |
| |
137 | 137 |
| |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
138 | 142 |
| |
139 | 143 |
| |
140 | 144 |
| |
| |||
667 | 671 |
| |
668 | 672 |
| |
669 | 673 |
| |
| 674 | + | |
| 675 | + | |
| 676 | + | |
670 | 677 |
| |
671 | 678 |
| |
672 | 679 |
| |
| |||
684 | 691 |
| |
685 | 692 |
| |
686 | 693 |
| |
| 694 | + | |
| 695 | + | |
687 | 696 |
| |
688 | 697 |
| |
689 | 698 |
| |
| |||
740 | 749 |
| |
741 | 750 |
| |
742 | 751 |
| |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
743 | 773 |
| |
744 | 774 |
| |
745 | 775 |
| |
| |||
896 | 926 |
| |
897 | 927 |
| |
898 | 928 |
| |
| 929 | + | |
899 | 930 |
| |
900 | 931 |
| |
901 | 932 |
| |
| |||
1192 | 1223 |
| |
1193 | 1224 |
| |
1194 | 1225 |
| |
1195 |
| - | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
1196 | 1229 |
| |
1197 | 1230 |
| |
1198 | 1231 |
| |
| |||
2109 | 2142 |
| |
2110 | 2143 |
| |
2111 | 2144 |
| |
| 2145 | + | |
2112 | 2146 |
| |
2113 | 2147 |
| |
2114 | 2148 |
| |
| |||
2120 | 2154 |
| |
2121 | 2155 |
| |
2122 | 2156 |
| |
2123 |
| - | |
2124 |
| - | |
| 2157 | + | |
| 2158 | + | |
| 2159 | + | |
| 2160 | + | |
| 2161 | + | |
| 2162 | + | |
2125 | 2163 |
| |
2126 | 2164 |
| |
2127 | 2165 |
| |
| |||
3098 | 3136 |
| |
3099 | 3137 |
| |
3100 | 3138 |
| |
3101 |
| - | |
| 3139 | + | |
3102 | 3140 |
| |
3103 | 3141 |
| |
3104 | 3142 |
| |
| |||
3207 | 3245 |
| |
3208 | 3246 |
| |
3209 | 3247 |
| |
| 3248 | + | |
| 3249 | + | |
3210 | 3250 |
| |
3211 | 3251 |
| |
3212 | 3252 |
| |
| 3253 | + | |
| 3254 | + | |
| 3255 | + | |
| 3256 | + | |
| 3257 | + | |
3213 | 3258 |
| |
3214 | 3259 |
| |
3215 | 3260 |
| |
| 3261 | + | |
3216 | 3262 |
| |
3217 | 3263 |
| |
3218 | 3264 |
| |
3219 | 3265 |
| |
3220 | 3266 |
| |
3221 | 3267 |
| |
3222 | 3268 |
| |
| 3269 | + | |
3223 | 3270 |
| |
3224 | 3271 |
| |
3225 | 3272 |
| |
| |||
3231 | 3278 |
| |
3232 | 3279 |
| |
3233 | 3280 |
| |
| 3281 | + | |
| 3282 | + | |
| 3283 | + | |
| 3284 | + | |
| 3285 | + | |
| 3286 | + | |
| 3287 | + | |
| 3288 | + | |
| 3289 | + | |
| 3290 | + | |
| 3291 | + | |
| 3292 | + | |
| 3293 | + | |
| 3294 | + | |
| 3295 | + | |
| 3296 | + | |
| 3297 | + | |
| 3298 | + | |
| 3299 | + | |
| 3300 | + | |
| 3301 | + | |
| 3302 | + | |
| 3303 | + | |
| 3304 | + | |
| 3305 | + | |
| 3306 | + | |
| 3307 | + | |
| 3308 | + | |
| 3309 | + | |
| 3310 | + | |
| 3311 | + | |
| 3312 | + | |
| 3313 | + | |
| 3314 | + | |
| 3315 | + | |
| 3316 | + | |
| 3317 | + | |
| 3318 | + | |
| 3319 | + | |
| 3320 | + | |
| 3321 | + | |
| 3322 | + | |
| 3323 | + | |
| 3324 | + | |
| 3325 | + | |
| 3326 | + | |
| 3327 | + | |
| 3328 | + | |
| 3329 | + | |
| 3330 | + | |
| 3331 | + | |
| 3332 | + | |
| 3333 | + | |
| 3334 | + | |
| 3335 | + | |
| 3336 | + | |
| 3337 | + | |
| 3338 | + | |
| 3339 | + | |
| 3340 | + | |
| 3341 | + | |
| 3342 | + | |
| 3343 | + | |
| 3344 | + | |
| 3345 | + | |
| 3346 | + | |
| 3347 | + | |
| 3348 | + | |
| 3349 | + | |
| 3350 | + | |
| 3351 | + | |
| 3352 | + | |
| 3353 | + | |
| 3354 | + | |
| 3355 | + | |
| 3356 | + | |
| 3357 | + | |
| 3358 | + | |
| 3359 | + | |
| 3360 | + | |
| 3361 | + | |
| 3362 | + | |
| 3363 | + | |
| 3364 | + |
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1760 | 1760 |
| |
1761 | 1761 |
| |
1762 | 1762 |
| |
| 1763 | + | |
1763 | 1764 |
| |
1764 | 1765 |
| |
1765 | 1766 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
222 | 222 |
| |
223 | 223 |
| |
224 | 224 |
| |
225 |
| - | |
226 | 225 |
| |
227 | 226 |
| |
228 | 227 |
| |
229 | 228 |
| |
230 | 229 |
| |
231 | 230 |
| |
| 231 | + | |
| 232 | + | |
| 233 | + | |
232 | 234 |
| |
233 | 235 |
| |
234 | 236 |
| |
| |||
450 | 452 |
| |
451 | 453 |
| |
452 | 454 |
| |
453 |
| - | |
| 455 | + | |
454 | 456 |
| |
455 | 457 |
| |
456 | 458 |
| |
| |||
858 | 860 |
| |
859 | 861 |
| |
860 | 862 |
| |
861 |
| - | |
862 |
| - | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
863 | 866 |
| |
864 | 867 |
| |
865 | 868 |
| |
866 | 869 |
| |
867 |
| - | |
868 |
| - | |
869 |
| - | |
| 870 | + | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
870 | 883 |
| |
871 | 884 |
| |
872 | 885 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1282 | 1282 |
| |
1283 | 1283 |
| |
1284 | 1284 |
| |
1285 |
| - | |
| 1285 | + | |
1286 | 1286 |
| |
| 1287 | + | |
| 1288 | + | |
1287 | 1289 |
| |
1288 | 1290 |
| |
1289 | 1291 |
| |
| |||
1318 | 1320 |
| |
1319 | 1321 |
| |
1320 | 1322 |
| |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
1321 | 1326 |
| |
1322 | 1327 |
| |
1323 | 1328 |
| |
|
0 commit comments
Comments
(0)