History

context_tracking: Check static key on context_tracking_enabled_*cpu()

guest_enter() doesn't call context_tracking_enabled() before calling context_tracking_enabled_this_cpu(). Therefore the guest code doesn't benefit from the static key on the fast path. Just make sure that context_tracking_enabled_*cpu() functions check the static key by themselves to propagate the optimization.

Frederic Weisbecker committed 7 years ago

Commit 023e9de1 parent 9adbb9d2 files · +4 −4Browse files

Showing the changes to include/linux (2 of 2 files). Show all

Unified · Split

2 files
  1. include/linux/context_tracking_state.h +2 −2
  2. include/linux/vtime.h +2 −2
include/linux/context_tracking_state.h+2−2
@@ -33,12 +33,12 @@ static inline bool context_tracking_enabled(void) · 32 unmodified lines
3333
3434 static inline bool context_tracking_enabled_cpu(int cpu)
3535 {
36− return per_cpu(context_tracking.active, cpu);
36+ return context_tracking_enabled() && per_cpu(context_tracking.active, cpu);
3737 }
3838
3939 static inline bool context_tracking_enabled_this_cpu(void)
4040 {
41− return __this_cpu_read(context_tracking.active);
41+ return context_tracking_enabled() && __this_cpu_read(context_tracking.active);
4242 }
4343
4444 static inline bool context_tracking_in_user(void)
include/linux/vtime.h+2−2
@@ -33,12 +33,12 @@ static inline bool vtime_accounting_enabled(void) · 32 unmodified lines
3333
3434 static inline bool vtime_accounting_enabled_cpu(int cpu)
3535 {
36− return (vtime_accounting_enabled() && context_tracking_enabled_cpu(cpu));
36+ return context_tracking_enabled_cpu(cpu);
3737 }
3838
3939 static inline bool vtime_accounting_enabled_this_cpu(void)
4040 {
41− return (vtime_accounting_enabled() && context_tracking_enabled_this_cpu());
41+ return context_tracking_enabled_this_cpu();
4242 }
4343
4444 extern void vtime_task_switch_generic(struct task_struct *prev);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t