- Notifications
You must be signed in to change notification settings - Fork5
Commit1a3458b
committed
Allow using huge TLB pages on Linux (MAP_HUGETLB)
This patch adds an option, huge_tlb_pages, which allows requesting theshared memory segment to be allocated using huge pages, by using theMAP_HUGETLB flag in mmap(). This can improve performance.The default is 'try', which means that we will attempt using huge pages,and fall back to non-huge pages if it doesn't work. Currently, only Linuxhas MAP_HUGETLB. On other platforms, the default 'try' behaves the same as'off'.In the passing, don't try to round the mmap() size to a multiple ofpagesize. mmap() doesn't require that, and there's no particular reason forPostgreSQL to do that either. When using MAP_HUGETLB, however, round therequest size up to nearest 2MB boundary. This is to work around a bug insome Linux kernel versions, but also to avoid wasting memory, because thekernel will round the size up anyway.Many people were involved in writing this patch, including Christian Kruse,Richard Poole, Abhijit Menon-Sen, reviewed by Peter Geoghegan, Andres Freundand me.1 parentb7643b1 commit1a3458b
File tree
6 files changed
+183
-39
lines changed- doc/src/sgml
- src
- backend
- port
- utils/misc
- include/storage
6 files changed
+183
-39
lines changedLines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1107 | 1107 |
| |
1108 | 1108 |
| |
1109 | 1109 |
| |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
| 1123 | + | |
| 1124 | + | |
| 1125 | + | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
| 1133 | + | |
| 1134 | + | |
| 1135 | + | |
| 1136 | + | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
1110 | 1147 |
| |
1111 | 1148 |
| |
1112 | 1149 |
| |
|
Lines changed: 96 additions & 39 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
32 | 32 |
| |
33 | 33 |
| |
34 | 34 |
| |
| 35 | + | |
35 | 36 |
| |
36 | 37 |
| |
37 | 38 |
| |
| |||
41 | 42 |
| |
42 | 43 |
| |
43 | 44 |
| |
44 |
| - | |
| 45 | + | |
45 | 46 |
| |
46 | 47 |
| |
47 | 48 |
| |
| |||
317 | 318 |
| |
318 | 319 |
| |
319 | 320 |
| |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
320 | 395 |
| |
321 | 396 |
| |
322 | 397 |
| |
| |||
344 | 419 |
| |
345 | 420 |
| |
346 | 421 |
| |
347 |
| - | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
348 | 430 |
| |
349 | 431 |
| |
350 | 432 |
| |
| |||
359 | 441 |
| |
360 | 442 |
| |
361 | 443 |
| |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
362 | 450 |
| |
363 | 451 |
| |
364 | 452 |
| |
365 | 453 |
| |
366 | 454 |
| |
367 | 455 |
| |
368 | 456 |
| |
369 |
| - | |
370 |
| - | |
371 |
| - | |
372 |
| - | |
373 |
| - | |
374 |
| - | |
375 |
| - | |
376 |
| - | |
377 |
| - | |
378 |
| - | |
379 |
| - | |
380 |
| - | |
| 457 | + | |
| 458 | + | |
381 | 459 |
| |
382 |
| - | |
383 |
| - | |
384 |
| - | |
385 |
| - | |
386 |
| - | |
387 |
| - | |
388 |
| - | |
389 |
| - | |
390 |
| - | |
391 |
| - | |
392 |
| - | |
393 |
| - | |
394 |
| - | |
395 |
| - | |
396 |
| - | |
397 |
| - | |
398 |
| - | |
399 |
| - | |
400 |
| - | |
401 |
| - | |
402 |
| - | |
403 |
| - | |
404 |
| - | |
405 |
| - | |
406 |
| - | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
407 | 464 |
| |
408 | 465 |
| |
409 | 466 |
| |
|
Lines changed: 5 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
128 | 128 |
| |
129 | 129 |
| |
130 | 130 |
| |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
131 | 136 |
| |
132 | 137 |
| |
133 | 138 |
| |
|
Lines changed: 33 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
64 | 64 |
| |
65 | 65 |
| |
66 | 66 |
| |
| 67 | + | |
67 | 68 |
| |
68 | 69 |
| |
69 | 70 |
| |
| |||
387 | 388 |
| |
388 | 389 |
| |
389 | 390 |
| |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
390 | 408 |
| |
391 | 409 |
| |
392 | 410 |
| |
| |||
447 | 465 |
| |
448 | 466 |
| |
449 | 467 |
| |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
450 | 474 |
| |
451 | 475 |
| |
452 | 476 |
| |
| |||
3430 | 3454 |
| |
3431 | 3455 |
| |
3432 | 3456 |
| |
| 3457 | + | |
| 3458 | + | |
| 3459 | + | |
| 3460 | + | |
| 3461 | + | |
| 3462 | + | |
| 3463 | + | |
| 3464 | + | |
| 3465 | + | |
3433 | 3466 |
| |
3434 | 3467 |
| |
3435 | 3468 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
115 | 115 |
| |
116 | 116 |
| |
117 | 117 |
| |
| 118 | + | |
| 119 | + | |
118 | 120 |
| |
119 | 121 |
| |
120 | 122 |
| |
|
Lines changed: 10 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
38 | 38 |
| |
39 | 39 |
| |
40 | 40 |
| |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
41 | 51 |
| |
42 | 52 |
| |
43 | 53 |
| |
|
0 commit comments
Comments
(0)