Transparent hugepages should default to enabled=madvise
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
High
|
Colin Ian King | ||
Xenial |
Fix Released
|
Undecided
|
Colin Ian King | ||
Yakkety |
Won't Fix
|
Undecided
|
Unassigned | ||
Zesty |
Won't Fix
|
Undecided
|
Colin Ian King | ||
Artful |
Fix Released
|
High
|
Colin Ian King | ||
linux-gke (Ubuntu) |
Fix Released
|
Undecided
|
Kamal Mostafa | ||
Xenial |
Fix Released
|
Undecided
|
Kamal Mostafa |
Bug Description
SRU Justification, Zesty, Xenial
[Impact]
Ubuntu kernels should default transparent_
(this corresponds to TRANSPARENT_
I've blogged about this at some length here: https:/
Transparent Hugepages are a feature that allows the kernel to attempt to automatically back any anonymous maps with "huge" 2MiB page tables, instead of the normal 4k entries. It can produce small net performance gains in certain benchmarks, but also has numerous downsides, in the form of apparent memory leaks and 30% slowdowns or worse for some applications. Many popular pieces of software now refuse to run with hugepages enabled because of known performance issues.
Examples of problem reports:
MongoDB: https:/
Oracle: https:/
Splunk: https:/
Go runtime: https:/
jemalloc: https:/
node.js: https:/
Setting `enabled=madvise` enables applications that know they benefit from transparent huge pages to opt-in to this feature, while eliminating all the problematic behavior for other applications. Note also that transparent hugepage settings don't affect the use of explicit hugepages via hugetlbfs or mmap(…, MAP_HUGETLB, …)
[Fix]
Enable CONFIG_
[Regression Potential]
May marginally impact performance, but the benefits of madvise'd huge transparent hugepage over-weigh this considerably.
This has been enabled in Artful since July (and in Bionic) and we've not seen any regression reports, so we are confident this has minimal impact.
[Testcase]
Kernel ADT tests and stress-ng memory tests should not show any regressions.
Changed in linux (Ubuntu Artful): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Xenial): | |
assignee: | nobody → Colin Ian King (colin-king) |
Changed in linux (Ubuntu Zesty): | |
assignee: | nobody → Colin Ian King (colin-king) |
Changed in linux (Ubuntu Xenial): | |
status: | New → In Progress |
Changed in linux (Ubuntu Zesty): | |
status: | New → In Progress |
no longer affects: | linux-gke (Ubuntu Yakkety) |
no longer affects: | linux-gke (Ubuntu Zesty) |
no longer affects: | linux-gke (Ubuntu Artful) |
Changed in linux-gke (Ubuntu Xenial): | |
status: | New → Fix Committed |
assignee: | nobody → Kamal Mostafa (kamalmostafa) |
Changed in linux-gke (Ubuntu): | |
status: | New → Fix Committed |
assignee: | nobody → Kamal Mostafa (kamalmostafa) |
description: | updated |
Changed in linux (Ubuntu Zesty): | |
status: | In Progress → Won't Fix |
Changed in linux (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
Changed in linux-gke (Ubuntu): | |
status: | Fix Committed → Fix Released |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1703742
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.