History

Merge branches 'for-next/52-bit-kva', 'for-next/cpu-topology', 'for-next/error-injection', 'for-next/perf', 'for-next/psci-cpuidle', 'for-next/rng', 'for-next/smpboot', 'for-next/tbi' and 'for-next/tlbi' into for-next/core

* for-next/52-bit-kva: (25 commits) Support for 52-bit virtual addressing in kernel space * for-next/cpu-topology: (9 commits) Move CPU topology parsing into core code and add support for ACPI 6.3 * for-next/error-injection: (2 commits) Support for function error injection via kprobes * for-next/perf: (8 commits) Support for i.MX8 DDR PMU and proper SMMUv3 group validation * for-next/psci-cpuidle: (7 commits) Move PSCI idle code into a new CPUidle driver * for-next/rng: (4 commits) Support for 'rng-seed' property being passed in the devicetree * for-next/smpboot: (3 commits) Reduce fragility of secondary CPU bringup in debug configurations * for-next/tbi: (10 commits) Introduce new syscall ABI with relaxed requirements for pointer tags * for-next/tlbi: (6 commits) Handle spurious page faults arising from kernel space

Will Deacon committed 7 years ago

Commit ac12cf810 parents f32c7a8 b333b0b d06fa5a 42d038c 3724e18 d55c5f2 dd753d9 ebef746 92af2b6 5c062ef89 files · +1971 −968Browse files

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

Unified · Split

7 files
  1. include/linux/acpi.h +5 −0
  2. include/linux/arch_topology.h +26 −0
  3. include/linux/cpuidle.h +13 −4
  4. include/linux/error-injection.h +3 −3
  5. include/linux/psci.h +2 −2
  6. include/linux/random.h +1 −0
  7. include/linux/topology.h +1 −0
include/linux/acpi.h+5−0
@@ -1302,11 +1302,16 @@ static inline int lpit_read_residency_count_address(u64 *address) · 1301 unmodified lines
1302#endif1302#endif
1303 1303
1304#ifdef CONFIG_ACPI_PPTT1304#ifdef CONFIG_ACPI_PPTT
1305int acpi_pptt_cpu_is_thread(unsigned int cpu);
1305int find_acpi_cpu_topology(unsigned int cpu, int level);1306int find_acpi_cpu_topology(unsigned int cpu, int level);
1306int find_acpi_cpu_topology_package(unsigned int cpu);1307int find_acpi_cpu_topology_package(unsigned int cpu);
1307int find_acpi_cpu_topology_hetero_id(unsigned int cpu);1308int find_acpi_cpu_topology_hetero_id(unsigned int cpu);
1308int find_acpi_cpu_cache_topology(unsigned int cpu, int level);1309int find_acpi_cpu_cache_topology(unsigned int cpu, int level);
1309#else1310#else
1311static inline int acpi_pptt_cpu_is_thread(unsigned int cpu)
1312{
1313 return -EINVAL;
1314}
1310static inline int find_acpi_cpu_topology(unsigned int cpu, int level)1315static inline int find_acpi_cpu_topology(unsigned int cpu, int level)
1311{1316{
1312 return -EINVAL;1317 return -EINVAL;
include/linux/arch_topology.h+26−0
@@ -33,4 +33,30 @@ unsigned long topology_get_freq_scale(int cpu) · 32 unmodified lines
33 return per_cpu(freq_scale, cpu);33 return per_cpu(freq_scale, cpu);
34}34}
35 35
36struct cpu_topology {
37 int thread_id;
38 int core_id;
39 int package_id;
40 int llc_id;
41 cpumask_t thread_sibling;
42 cpumask_t core_sibling;
43 cpumask_t llc_sibling;
44};
45
46#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY
47extern struct cpu_topology cpu_topology[NR_CPUS];
48
49#define topology_physical_package_id(cpu) (cpu_topology[cpu].package_id)
50#define topology_core_id(cpu) (cpu_topology[cpu].core_id)
51#define topology_core_cpumask(cpu) (&cpu_topology[cpu].core_sibling)
52#define topology_sibling_cpumask(cpu) (&cpu_topology[cpu].thread_sibling)
53#define topology_llc_cpumask(cpu) (&cpu_topology[cpu].llc_sibling)
54void init_cpu_topology(void);
55void store_cpu_topology(unsigned int cpuid);
56const struct cpumask *cpu_coregroup_mask(int cpu);
57void update_siblings_masks(unsigned int cpu);
58void remove_cpu_topology(unsigned int cpuid);
59void reset_cpu_topology(void);
60#endif
61
36#endif /* _LINUX_ARCH_TOPOLOGY_H_ */62#endif /* _LINUX_ARCH_TOPOLOGY_H_ */
include/linux/cpuidle.h+13−4
@@ -256,7 +256,10 @@ static inline int cpuidle_register_governor(struct cpuidle_governor *gov) · 255 unmodified lines
256{return 0;}256{return 0;}
257#endif257#endif
258 258
259#define __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, is_retention) \259#define __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, \
260 idx, \
261 state, \
262 is_retention) \
260({ \263({ \
261 int __ret = 0; \264 int __ret = 0; \
262 \265 \
@@ -268,7 +271,7 @@ static inline int cpuidle_register_governor(struct cpuidle_governor *gov) · 5 unmodified lines
268 if (!is_retention) \271 if (!is_retention) \
269 __ret = cpu_pm_enter(); \272 __ret = cpu_pm_enter(); \
270 if (!__ret) { \273 if (!__ret) { \
271 __ret = low_level_idle_enter(idx); \274 __ret = low_level_idle_enter(state); \
272 if (!is_retention) \275 if (!is_retention) \
273 cpu_pm_exit(); \276 cpu_pm_exit(); \
274 } \277 } \
@@ -277,9 +280,15 @@ static inline int cpuidle_register_governor(struct cpuidle_governor *gov) · 2 unmodified lines
277})280})
278 281
279#define CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx) \282#define CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx) \
280 __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, 0)283 __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, idx, 0)
281 284
282#define CPU_PM_CPU_IDLE_ENTER_RETENTION(low_level_idle_enter, idx) \285#define CPU_PM_CPU_IDLE_ENTER_RETENTION(low_level_idle_enter, idx) \
283 __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, 1)286 __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, idx, 1)
287
288#define CPU_PM_CPU_IDLE_ENTER_PARAM(low_level_idle_enter, idx, state) \
289 __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, state, 0)
290
291#define CPU_PM_CPU_IDLE_ENTER_RETENTION_PARAM(low_level_idle_enter, idx, state) \
292 __CPU_PM_CPU_IDLE_ENTER(low_level_idle_enter, idx, state, 1)
284 293
285#endif /* _LINUX_CPUIDLE_H */294#endif /* _LINUX_CPUIDLE_H */
include/linux/error-injection.h+3−3
@@ -2,16 +2,16 @@ · 1 unmodified line
2#ifndef _LINUX_ERROR_INJECTION_H2#ifndef _LINUX_ERROR_INJECTION_H
3#define _LINUX_ERROR_INJECTION_H3#define _LINUX_ERROR_INJECTION_H
4 4
5#ifdef CONFIG_FUNCTION_ERROR_INJECTION5#include <linux/compiler.h>
6#include <asm-generic/error-injection.h>
6 7
7#include <asm/error-injection.h>8#ifdef CONFIG_FUNCTION_ERROR_INJECTION
8 9
9extern bool within_error_injection_list(unsigned long addr);10extern bool within_error_injection_list(unsigned long addr);
10extern int get_injectable_error_type(unsigned long addr);11extern int get_injectable_error_type(unsigned long addr);
11 12
12#else /* !CONFIG_FUNCTION_ERROR_INJECTION */13#else /* !CONFIG_FUNCTION_ERROR_INJECTION */
13 14
14#include <asm-generic/error-injection.h>
15static inline bool within_error_injection_list(unsigned long addr)15static inline bool within_error_injection_list(unsigned long addr)
16{16{
17 return false;17 return false;
include/linux/psci.h+2−2
@@ -15,8 +15,8 @@ · 14 unmodified lines
15 15
16bool psci_tos_resident_on(int cpu);16bool psci_tos_resident_on(int cpu);
17 17
18int psci_cpu_init_idle(unsigned int cpu);18int psci_cpu_suspend_enter(u32 state);
19int psci_cpu_suspend_enter(unsigned long index);19bool psci_power_state_is_valid(u32 state);
20 20
21enum psci_conduit {21enum psci_conduit {
22 PSCI_CONDUIT_NONE,22 PSCI_CONDUIT_NONE,
include/linux/random.h+1−0
@@ -19,6 +19,7 @@ struct random_ready_callback { · 18 unmodified lines
19};19};
20 20
21extern void add_device_randomness(const void *, unsigned int);21extern void add_device_randomness(const void *, unsigned int);
22extern void add_bootloader_randomness(const void *, unsigned int);
22 23
23#if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)24#if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
24static inline void add_latent_entropy(void)25static inline void add_latent_entropy(void)
include/linux/topology.h+1−0
@@ -27,6 +27,7 @@ · 26 unmodified lines
27#ifndef _LINUX_TOPOLOGY_H27#ifndef _LINUX_TOPOLOGY_H
28#define _LINUX_TOPOLOGY_H28#define _LINUX_TOPOLOGY_H
29 29
30#include <linux/arch_topology.h>
30#include <linux/cpumask.h>31#include <linux/cpumask.h>
31#include <linux/bitops.h>32#include <linux/bitops.h>
32#include <linux/mmzone.h>33#include <linux/mmzone.h>

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