2016-10-17 21:36:33 |
dann frazier |
bug |
|
|
added bug |
2016-10-17 23:06:38 |
dann frazier |
description |
[Impact]
kprobes are not available on arm64, a useful debug feature available on all other supported Ubuntu architectures. I failed to catch this when I reviewed the yakkety config because I was just looking for regressions vs. enabling new features (arm64/kprobes is new in 4.8).
[Test Case]
sudo perf probe schedule
sudo perf record -e probe:schedule -aR sleep 1
[Regression Risk]
The proposed fix enables a config for an already-upstream feature, so regressions will have upstream support. The config change mostly results in building new code vs. modifying existing code. The notable exception is that arm64's notify_page_fault() will now get code to call kprobe_fault_handler() - but only in the case that this newly enabled feature is being used (if kprobe_running()). |
[Impact]
kprobes is currently enabled for all Ubuntu architectures except arm64. This excludes a useful debug feature, which is required by certain userspace provided by Ubuntu, such as perf's probe command. I failed to notice this in my yakkety config review because it is a new feature in v4.8.
[Test Case]
= Failure case =
ubuntu@arm64:~$ sudo perf probe schedule
kprobe_events file does not exist - please rebuild kernel with CONFIG_KPROBE_EVENTS.
Error: Failed to add events.
= Success case =
ubuntu@arm64:~$ sudo perf probe schedule
Added new event:
probe:schedule (on schedule)
You can now use it in all perf tools, such as:
perf record -e probe:schedule -aR sleep 1
ubuntu@arm64:~$ sudo perf record -e probe:schedule -aR sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.185 MB perf.data (61 samples) ]
[Regression Risk]
The proposed fix enables a config for an already-upstream feature, so regressions will have upstream support. The config change mostly results in building new code vs. modifying existing code. The notable exception is that arm64's notify_page_fault() will now get code to call kprobe_fault_handler() - but only in the case that this newly enabled feature is being used (if kprobe_running()). |
|
2016-10-19 16:08:23 |
Tim Gardner |
nominated for series |
|
Ubuntu Zesty |
|
2016-10-19 16:08:23 |
Tim Gardner |
bug task added |
|
linux (Ubuntu Zesty) |
|
2016-10-19 16:08:23 |
Tim Gardner |
nominated for series |
|
Ubuntu Yakkety |
|
2016-10-19 16:08:23 |
Tim Gardner |
bug task added |
|
linux (Ubuntu Yakkety) |
|
2016-10-19 16:08:34 |
Tim Gardner |
linux (Ubuntu Zesty): status |
In Progress |
Fix Released |
|
2016-10-19 16:08:56 |
Tim Gardner |
linux (Ubuntu Yakkety): status |
New |
In Progress |
|
2016-10-19 16:08:56 |
Tim Gardner |
linux (Ubuntu Yakkety): assignee |
|
dann frazier (dannf) |
|
2016-10-26 15:55:39 |
Tim Gardner |
linux (Ubuntu Yakkety): status |
In Progress |
Fix Committed |
|
2016-11-16 10:09:10 |
Luis Henriques |
tags |
|
verification-needed-yakkety |
|
2016-11-17 18:47:32 |
dann frazier |
tags |
verification-needed-yakkety |
verification-done-yakkety |
|
2016-11-30 02:05:55 |
Launchpad Janitor |
linux (Ubuntu Yakkety): status |
Fix Committed |
Fix Released |
|
2016-11-30 02:05:55 |
Launchpad Janitor |
cve linked |
|
2016-7425 |
|