support the slub_debug boot option on specific object size
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Undecided
|
Gavin Guo | ||
Trusty |
Fix Released
|
Undecided
|
Unassigned | ||
Utopic |
Fix Released
|
Undecided
|
Unassigned | ||
Vivid |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
slub_debug cannot work for specific kmem_cache size.
e. g. slub_debug=
The slub_debug is used to enable the debugging of use-after-free, poison
overwritten, double free. And it also increases the up time of the server
when the above mentioned errors happen instead of crashing immediately.
However, currently, there exists bug that the slub_debug cannot be applied
for the specific object size. This is not helpful to enable the whole
system slub_debug because the performance loss will be up to 20%~30%
according to the customer's measurement. The patch here to limit the
slub_debug only on the specific object size to alleviate the performance
loss.
[Fix]
The slub_debug=
create_
create_
create_
slub_debug flags to the s->flags. The fix here set up a kmalloc_names
string array for the initialization purpose and delete the dynamic name
creation of kmalloc_caches.
[Test case]
Install the patched kernel.
sudo reboot
sudo vim /etc/default/grub
append "slub_debug=
sudo update-grub
sudo reboot
# Check if the kmalloc-1024 debug options are enabled
sudo cat /sys/kernel/
# shoulb be 1
sudo cat /sys/kernel/
# shoulb be 1
sudo cat /sys/kernel/
# shoulb be 1
# Check other object size
sudo cat /sys/kernel/
# shoulb be 0
sudo cat /sys/kernel/
# shoulb be 0
sudo cat /sys/kernel/
# shoulb be 0
CVE References
description: | updated |
Changed in linux (Ubuntu): | |
assignee: | nobody → Gavin Guo (mimi0213kimo) |
description: | updated |
tags: | added: utopic vivid |
Changed in linux (Ubuntu Trusty): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Utopic): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Vivid): | |
status: | New → Fix Committed |
tags: |
added: verification-done-vivid removed: verification-needed-vivid |
tags: |
added: verification-done-utopic removed: verification-needed-utopic |
tags: |
added: verification-done-trusty removed: verification-needed-trusty |
Changed in linux (Ubuntu): | |
status: | Incomplete → Fix Released |
This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:
apport-collect 1456952
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.