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
13021302 #endif
13031303
13041304 #ifdef CONFIG_ACPI_PPTT
1305+int acpi_pptt_cpu_is_thread(unsigned int cpu);
13051306 int find_acpi_cpu_topology(unsigned int cpu, int level);
13061307 int find_acpi_cpu_topology_package(unsigned int cpu);
13071308 int find_acpi_cpu_topology_hetero_id(unsigned int cpu);
13081309 int find_acpi_cpu_cache_topology(unsigned int cpu, int level);
13091310 #else
1311+static inline int acpi_pptt_cpu_is_thread(unsigned int cpu)
1312+{
1313+ return -EINVAL;
1314+}
13101315 static inline int find_acpi_cpu_topology(unsigned int cpu, int level)
13111316 {
13121317 return -EINVAL;
include/linux/arch_topology.h+26−0
@@ -33,4 +33,30 @@ unsigned long topology_get_freq_scale(int cpu) · 32 unmodified lines
3333 return per_cpu(freq_scale, cpu);
3434 }
3535
36+struct 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
47+extern 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)
54+void init_cpu_topology(void);
55+void store_cpu_topology(unsigned int cpuid);
56+const struct cpumask *cpu_coregroup_mask(int cpu);
57+void update_siblings_masks(unsigned int cpu);
58+void remove_cpu_topology(unsigned int cpuid);
59+void reset_cpu_topology(void);
60+#endif
61+
3662 #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
256256 {return 0;}
257257 #endif
258258
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) \
260263 ({ \
261264 int __ret = 0; \
262265 \
@@ -268,7 +271,7 @@ static inline int cpuidle_register_governor(struct cpuidle_governor *gov) · 5 unmodified lines
268271 if (!is_retention) \
269272 __ret = cpu_pm_enter(); \
270273 if (!__ret) { \
271− __ret = low_level_idle_enter(idx); \
274+ __ret = low_level_idle_enter(state); \
272275 if (!is_retention) \
273276 cpu_pm_exit(); \
274277 } \
@@ -277,9 +280,15 @@ static inline int cpuidle_register_governor(struct cpuidle_governor *gov) · 2 unmodified lines
277280 })
278281
279282 #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)
281284
282285 #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)
284293
285294 #endif /* _LINUX_CPUIDLE_H */
include/linux/error-injection.h+3−3
@@ -2,16 +2,16 @@ · 1 unmodified line
22 #ifndef _LINUX_ERROR_INJECTION_H
33 #define _LINUX_ERROR_INJECTION_H
44
5−#ifdef CONFIG_FUNCTION_ERROR_INJECTION
5+#include <linux/compiler.h>
6+#include <asm-generic/error-injection.h>
67
7−#include <asm/error-injection.h>
8+#ifdef CONFIG_FUNCTION_ERROR_INJECTION
89
910 extern bool within_error_injection_list(unsigned long addr);
1011 extern int get_injectable_error_type(unsigned long addr);
1112
1213 #else /* !CONFIG_FUNCTION_ERROR_INJECTION */
1314
14−#include <asm-generic/error-injection.h>
1515 static inline bool within_error_injection_list(unsigned long addr)
1616 {
1717 return false;
include/linux/psci.h+2−2
@@ -15,8 +15,8 @@ · 14 unmodified lines
1515
1616 bool psci_tos_resident_on(int cpu);
1717
18−int psci_cpu_init_idle(unsigned int cpu);
19−int psci_cpu_suspend_enter(unsigned long index);
18+int psci_cpu_suspend_enter(u32 state);
19+bool psci_power_state_is_valid(u32 state);
2020
2121 enum psci_conduit {
2222 PSCI_CONDUIT_NONE,
include/linux/random.h+1−0
@@ -19,6 +19,7 @@ struct random_ready_callback { · 18 unmodified lines
1919 };
2020
2121 extern void add_device_randomness(const void *, unsigned int);
22+extern void add_bootloader_randomness(const void *, unsigned int);
2223
2324 #if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
2425 static inline void add_latent_entropy(void)
include/linux/topology.h+1−0
@@ -27,6 +27,7 @@ · 26 unmodified lines
2727 #ifndef _LINUX_TOPOLOGY_H
2828 #define _LINUX_TOPOLOGY_H
2929
30+#include <linux/arch_topology.h>
3031 #include <linux/cpumask.h>
3132 #include <linux/bitops.h>
3233 #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