Commit b9f5621
perf/core: Rework guest callbacks to prepare for static_call support
To prepare for using static_calls to optimize perf's guest callbacks,
replace ->is_in_guest and ->is_user_mode with a new multiplexed hook
->state, tweak ->handle_intel_pt_intr to play nice with being called when
there is no active guest, and drop "guest" from ->get_guest_ip.
Return '0' from ->state and ->handle_intel_pt_intr to indicate "not in
guest" so that DEFINE_STATIC_CALL_RET0 can be used to define the static
calls, i.e. no callback == !guest.
[sean: extracted from static_call patch, fixed get_ip() bug, wrote changelog]
Suggested-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Originally-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Like Xu <like.xu@linux.intel.com>
Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20211111020738.2512932-7-seanjc@google.com1 parent 84af21d commit b9f5621
9 files changed
Lines changed: 73 additions & 79 deletions
File tree
- arch
- arm64
- kernel
- kvm
- x86
- events
- intel
- include/asm
- kvm
- xen
- include/linux
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
| 155 | + | |
156 | 156 | | |
157 | 157 | | |
158 | 158 | | |
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | | - | |
169 | | - | |
| 168 | + | |
| 169 | + | |
170 | 170 | | |
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
176 | 176 | | |
| 177 | + | |
177 | 178 | | |
178 | 179 | | |
179 | | - | |
180 | | - | |
| 180 | + | |
| 181 | + | |
181 | 182 | | |
182 | 183 | | |
183 | 184 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
| 18 | + | |
| 19 | + | |
24 | 20 | | |
25 | | - | |
| 21 | + | |
| 22 | + | |
26 | 23 | | |
27 | | - | |
28 | | - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
29 | 27 | | |
30 | | - | |
| 28 | + | |
31 | 29 | | |
32 | 30 | | |
33 | 31 | | |
34 | 32 | | |
35 | | - | |
36 | | - | |
37 | | - | |
| 33 | + | |
38 | 34 | | |
39 | | - | |
40 | | - | |
| 35 | + | |
| 36 | + | |
41 | 37 | | |
42 | | - | |
| 38 | + | |
43 | 39 | | |
44 | 40 | | |
45 | 41 | | |
46 | | - | |
47 | | - | |
48 | | - | |
| 42 | + | |
| 43 | + | |
49 | 44 | | |
50 | 45 | | |
51 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2772 | 2772 | | |
2773 | 2773 | | |
2774 | 2774 | | |
2775 | | - | |
| 2775 | + | |
2776 | 2776 | | |
2777 | 2777 | | |
2778 | 2778 | | |
| |||
2876 | 2876 | | |
2877 | 2877 | | |
2878 | 2878 | | |
2879 | | - | |
| 2879 | + | |
2880 | 2880 | | |
2881 | 2881 | | |
2882 | 2882 | | |
| |||
2955 | 2955 | | |
2956 | 2956 | | |
2957 | 2957 | | |
2958 | | - | |
2959 | | - | |
| 2958 | + | |
| 2959 | + | |
2960 | 2960 | | |
2961 | 2961 | | |
2962 | 2962 | | |
2963 | 2963 | | |
2964 | 2964 | | |
2965 | 2965 | | |
2966 | 2966 | | |
| 2967 | + | |
2967 | 2968 | | |
2968 | 2969 | | |
2969 | | - | |
2970 | | - | |
| 2970 | + | |
| 2971 | + | |
2971 | 2972 | | |
2972 | 2973 | | |
2973 | 2974 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2906 | 2906 | | |
2907 | 2907 | | |
2908 | 2908 | | |
2909 | | - | |
2910 | | - | |
2911 | | - | |
2912 | | - | |
| 2909 | + | |
2913 | 2910 | | |
2914 | 2911 | | |
2915 | 2912 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1895 | 1895 | | |
1896 | 1896 | | |
1897 | 1897 | | |
1898 | | - | |
| 1898 | + | |
1899 | 1899 | | |
1900 | 1900 | | |
1901 | 1901 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | | - | |
| 90 | + | |
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8472 | 8472 | | |
8473 | 8473 | | |
8474 | 8474 | | |
8475 | | - | |
| 8475 | + | |
8476 | 8476 | | |
8477 | | - | |
8478 | | - | |
| 8477 | + | |
| 8478 | + | |
8479 | 8479 | | |
8480 | | - | |
8481 | | - | |
8482 | | - | |
| 8480 | + | |
| 8481 | + | |
8483 | 8482 | | |
8484 | | - | |
8485 | | - | |
| 8483 | + | |
| 8484 | + | |
| 8485 | + | |
8486 | 8486 | | |
8487 | | - | |
| 8487 | + | |
8488 | 8488 | | |
8489 | 8489 | | |
8490 | | - | |
| 8490 | + | |
8491 | 8491 | | |
8492 | | - | |
| 8492 | + | |
8493 | 8493 | | |
8494 | | - | |
8495 | | - | |
| 8494 | + | |
| 8495 | + | |
8496 | 8496 | | |
8497 | | - | |
| 8497 | + | |
8498 | 8498 | | |
8499 | 8499 | | |
8500 | | - | |
| 8500 | + | |
8501 | 8501 | | |
8502 | 8502 | | |
8503 | 8503 | | |
| 8504 | + | |
| 8505 | + | |
| 8506 | + | |
| 8507 | + | |
8504 | 8508 | | |
8505 | 8509 | | |
8506 | 8510 | | |
| 8511 | + | |
8507 | 8512 | | |
8508 | 8513 | | |
8509 | 8514 | | |
8510 | | - | |
8511 | | - | |
8512 | | - | |
| 8515 | + | |
| 8516 | + | |
8513 | 8517 | | |
8514 | 8518 | | |
8515 | 8519 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
413 | 413 | | |
414 | 414 | | |
415 | 415 | | |
416 | | - | |
| 416 | + | |
417 | 417 | | |
418 | 418 | | |
| 419 | + | |
419 | 420 | | |
420 | 421 | | |
421 | 422 | | |
422 | | - | |
| 423 | + | |
423 | 424 | | |
424 | 425 | | |
425 | 426 | | |
426 | | - | |
| 427 | + | |
427 | 428 | | |
428 | | - | |
429 | | - | |
430 | | - | |
431 | | - | |
432 | | - | |
433 | | - | |
| 429 | + | |
434 | 430 | | |
435 | | - | |
436 | | - | |
437 | | - | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
438 | 436 | | |
439 | 437 | | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
| 438 | + | |
444 | 439 | | |
445 | 440 | | |
446 | 441 | | |
| |||
456 | 451 | | |
457 | 452 | | |
458 | 453 | | |
459 | | - | |
460 | | - | |
461 | | - | |
| 454 | + | |
| 455 | + | |
462 | 456 | | |
463 | 457 | | |
464 | 458 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
29 | 32 | | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
34 | 36 | | |
35 | 37 | | |
36 | 38 | | |
| |||
0 commit comments