/linux/arch/arm/common/ |
H A D | mcpm_entry.c | 3 * arch/arm/common/mcpm_entry.c -- entry point for multi-cluster PM 24 * see Documentation/arch/arm/cluster-pm-race-avoidance.rst. 34 static void __mcpm_cpu_going_down(unsigned int cpu, unsigned int cluster) in __mcpm_cpu_going_down() argument 36 mcpm_sync.clusters[cluster].cpus[cpu].cpu = CPU_GOING_DOWN; in __mcpm_cpu_going_down() 37 sync_cache_w(&mcpm_sync.clusters[cluster].cpus[cpu].cpu); in __mcpm_cpu_going_down() 42 * cluster can be torn down without disrupting this CPU. 47 static void __mcpm_cpu_down(unsigned int cpu, unsigned int cluster) in __mcpm_cpu_down() argument 50 mcpm_sync.clusters[cluster].cpus[cpu].cpu = CPU_DOWN; in __mcpm_cpu_down() 51 sync_cache_w(&mcpm_sync.clusters[cluster].cpus[cpu].cpu); in __mcpm_cpu_down() 56 * __mcpm_outbound_leave_critical: Leave the cluster teardown critical section. [all …]
|
H A D | mcpm_head.S | 3 * arch/arm/common/mcpm_head.S -- kernel entry point for multi-cluster PM 8 * Refer to Documentation/arch/arm/cluster-pm-race-avoidance.rst 28 1903: .asciz " cluster" 56 ubfx r10, r0, #8, #8 @ r10 = cluster 88 mla r8, r0, r10, r8 @ r8 = sync cluster base 96 @ At this point, the cluster cannot unexpectedly enter the GOING_DOWN 100 mla r11, r0, r10, r11 @ r11 = cluster first man lock 106 bne mcpm_setup_wait @ wait for cluster setup if so 109 cmp r0, #CLUSTER_UP @ cluster already up? 110 bne mcpm_setup @ if not, set up the cluster [all …]
|
/linux/arch/arm/mach-sunxi/ |
H A D | mc_smp.c | 11 * Cluster cache enable trampoline code adapted from MCPM framework 87 static bool sunxi_core_is_cortex_a15(unsigned int core, unsigned int cluster) in sunxi_core_is_cortex_a15() argument 90 int cpu = cluster * SUNXI_CPUS_PER_CLUSTER + core; in sunxi_core_is_cortex_a15() 102 * would be mid way in a core or cluster power sequence. in sunxi_core_is_cortex_a15() 104 pr_err("%s: Couldn't get CPU cluster %u core %u device node\n", in sunxi_core_is_cortex_a15() 105 __func__, cluster, core); in sunxi_core_is_cortex_a15() 115 static int sunxi_cpu_power_switch_set(unsigned int cpu, unsigned int cluster, in sunxi_cpu_power_switch_set() argument 121 reg = readl(prcm_base + PRCM_PWR_SWITCH_REG(cluster, cpu)); in sunxi_cpu_power_switch_set() 124 pr_debug("power clamp for cluster %u cpu %u already open\n", in sunxi_cpu_power_switch_set() 125 cluster, cpu); in sunxi_cpu_power_switch_set() [all …]
|
/linux/arch/arm/mach-versatile/ |
H A D | tc2_pm.c | 46 static int tc2_pm_cpu_powerup(unsigned int cpu, unsigned int cluster) in tc2_pm_cpu_powerup() argument 48 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in tc2_pm_cpu_powerup() 49 if (cluster >= TC2_CLUSTERS || cpu >= tc2_nr_cpus[cluster]) in tc2_pm_cpu_powerup() 51 ve_spc_set_resume_addr(cluster, cpu, in tc2_pm_cpu_powerup() 53 ve_spc_cpu_wakeup_irq(cluster, cpu, true); in tc2_pm_cpu_powerup() 57 static int tc2_pm_cluster_powerup(unsigned int cluster) in tc2_pm_cluster_powerup() argument 59 pr_debug("%s: cluster %u\n", __func__, cluster); in tc2_pm_cluster_powerup() 60 if (cluster >= TC2_CLUSTERS) in tc2_pm_cluster_powerup() 62 ve_spc_powerdown(cluster, false); in tc2_pm_cluster_powerup() 66 static void tc2_pm_cpu_powerdown_prepare(unsigned int cpu, unsigned int cluster) in tc2_pm_cpu_powerdown_prepare() argument [all …]
|
/linux/Documentation/arch/arm/ |
H A D | cluster-pm-race-avoidance.rst | 2 Cluster-wide Power-up/power-down race avoidance algorithm 6 cluster setup and teardown operations and to manage hardware coherency 29 cluster-level operations are only performed when it is truly safe to do 34 are not immediately enabled when a cluster powers up. Since enabling or 38 power-down and power-up at the cluster level. 48 Each cluster and CPU is assigned a state, as follows: 67 The CPU or cluster is not coherent, and is either powered off or 71 The CPU or cluster has committed to moving to the UP state. 76 The CPU or cluster is active and coherent at the hardware 81 The CPU or cluster has committed to moving to the DOWN [all …]
|
/linux/fs/ocfs2/cluster/ |
H A D | nodemanager.c | 18 * cluster active at a time. Changing this will require trickling 19 * cluster references throughout where nodes are looked up */ 49 struct o2nm_cluster *cluster = o2nm_single_cluster; in o2nm_configured_node_map() local 51 BUG_ON(bytes < (sizeof(cluster->cl_nodes_bitmap))); in o2nm_configured_node_map() 53 if (cluster == NULL) in o2nm_configured_node_map() 56 read_lock(&cluster->cl_nodes_lock); in o2nm_configured_node_map() 57 bitmap_copy(map, cluster->cl_nodes_bitmap, O2NM_MAX_NODES); in o2nm_configured_node_map() 58 read_unlock(&cluster->cl_nodes_lock); in o2nm_configured_node_map() 64 static struct o2nm_node *o2nm_node_ip_tree_lookup(struct o2nm_cluster *cluster, in o2nm_node_ip_tree_lookup() argument 69 struct rb_node **p = &cluster->cl_node_ip_tree.rb_node; in o2nm_node_ip_tree_lookup() [all …]
|
/linux/arch/arm/mach-exynos/ |
H A D | mcpm-exynos.c | 57 static int exynos_cpu_powerup(unsigned int cpu, unsigned int cluster) in exynos_cpu_powerup() argument 59 unsigned int cpunr = cpu + (cluster * EXYNOS5420_CPUS_PER_CLUSTER); in exynos_cpu_powerup() 62 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in exynos_cpu_powerup() 64 cluster >= EXYNOS5420_NR_CLUSTERS) in exynos_cpu_powerup() 71 * This assumes the cluster number of the big cores(Cortex A15) in exynos_cpu_powerup() 76 if (cluster && in exynos_cpu_powerup() 77 cluster == MPIDR_AFFINITY_LEVEL(cpu_logical_map(0), 1)) { in exynos_cpu_powerup() 92 pr_err("cpu %u cluster %u powerup failed\n", in exynos_cpu_powerup() 93 cpu, cluster); in exynos_cpu_powerup() 106 static int exynos_cluster_powerup(unsigned int cluster) in exynos_cluster_powerup() argument [all …]
|
H A D | platsmp.c | 136 * exynos_cluster_power_down() - power down the specified cluster 137 * @cluster: the cluster to power down 139 void exynos_cluster_power_down(int cluster) in exynos_cluster_power_down() argument 141 pmu_raw_writel(0, EXYNOS_COMMON_CONFIGURATION(cluster)); in exynos_cluster_power_down() 145 * exynos_cluster_power_up() - power up the specified cluster 146 * @cluster: the cluster to power up 148 void exynos_cluster_power_up(int cluster) in exynos_cluster_power_up() argument 151 EXYNOS_COMMON_CONFIGURATION(cluster)); in exynos_cluster_power_up() 155 * exynos_cluster_power_state() - returns the power state of the cluster 156 * @cluster: the cluster to retrieve the power state from [all …]
|
/linux/arch/arm/include/asm/ |
H A D | mcpm.h | 13 * Maximum number of possible clusters / CPUs per cluster. 39 * This is used to indicate where the given CPU from given cluster should 44 void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr); 51 void mcpm_set_early_poke(unsigned cpu, unsigned cluster, 55 * CPU/cluster power operations API for higher subsystems to use. 66 * mcpm_cpu_power_up - make given CPU in given cluster runable 68 * @cpu: CPU number within given cluster 69 * @cluster: cluster number for the CPU 71 * The identified CPU is brought out of reset. If the cluster was powered 73 * in the cluster run, and ensuring appropriate cluster setup. [all …]
|
/linux/arch/arm/mach-hisi/ |
H A D | platmcpm.c | 71 static bool hip04_cluster_is_down(unsigned int cluster) in hip04_cluster_is_down() argument 76 if (hip04_cpu_table[cluster][i]) in hip04_cluster_is_down() 81 static void hip04_set_snoop_filter(unsigned int cluster, unsigned int on) in hip04_set_snoop_filter() argument 89 data |= 1 << cluster; in hip04_set_snoop_filter() 91 data &= ~(1 << cluster); in hip04_set_snoop_filter() 100 unsigned int mpidr, cpu, cluster; in hip04_boot_secondary() local 106 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); in hip04_boot_secondary() 110 if (cluster >= HIP04_MAX_CLUSTERS || cpu >= HIP04_MAX_CPUS_PER_CLUSTER) in hip04_boot_secondary() 115 if (hip04_cpu_table[cluster][cpu]) in hip04_boot_secondary() 118 sys_dreq = sysctrl + SC_CPU_RESET_DREQ(cluster); in hip04_boot_secondary() [all …]
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-ocfs2 | 14 covers how ocfs2 uses distributed locking between cluster 18 cluster nodes can interoperate if they have an identical 34 the available plugins to support ocfs2 cluster operation. 35 A cluster plugin is required to use ocfs2 in a cluster. 38 * 'o2cb' - The classic o2cb cluster stack that ocfs2 has 40 * 'user' - A plugin supporting userspace cluster software 54 cluster plugin is currently in use by the filesystem. 62 the cluster stack in use. The contents may change 63 when all filesystems are unmounted and the cluster stack 71 of current ocfs2 cluster stack. This value is set by [all …]
|
/linux/drivers/cpufreq/ |
H A D | tegra186-cpufreq.c | 28 /* CPU0 - A57 Cluster */ 33 /* CPU1 - Denver Cluster */ 38 /* CPU2 - Denver Cluster */ 43 /* CPU3 - A57 Cluster */ 48 /* CPU4 - A57 Cluster */ 53 /* CPU5 - A57 Cluster */ 75 unsigned int cluster = data->cpus[policy->cpu].bpmp_cluster_id; in tegra186_cpufreq_init() local 78 policy->freq_table = data->clusters[cluster].table; in tegra186_cpufreq_init() 82 /* set same policy for all cpus in a cluster */ in tegra186_cpufreq_init() 84 if (data->cpus[cpu].bpmp_cluster_id == cluster) in tegra186_cpufreq_init() [all …]
|
/linux/arch/x86/kernel/apic/ |
H A D | x2apic_cluster.c | 56 /* Collapse cpus in a cluster so a single IPI per cluster is sent */ in __x2apic_send_IPI_mask() 68 /* Remove cluster CPUs from tmpmask */ in __x2apic_send_IPI_mask() 105 static void prefill_clustermask(struct cpumask *cmsk, unsigned int cpu, u32 cluster) in prefill_clustermask() argument 113 if (apicid == BAD_APICID || cpu_i == cpu || apic_cluster(apicid) != cluster) in prefill_clustermask() 124 static int alloc_clustermask(unsigned int cpu, u32 cluster, int node) in alloc_clustermask() argument 130 * At boot time, the CPU present mask is stable. The cluster mask is in alloc_clustermask() 131 * allocated for the first CPU in the cluster and propagated to all in alloc_clustermask() 132 * present siblings in the cluster. If the cluster mask is already set in alloc_clustermask() 144 * any more) to find any existing cluster mask. in alloc_clustermask() 149 if (apicid != BAD_APICID && apic_cluster(apicid) == cluster) { in alloc_clustermask() [all …]
|
/linux/drivers/clk/mvebu/ |
H A D | ap-cpu-clk.c | 127 * struct ap806_clk: CPU cluster clock controller instance 128 * @cluster: Cluster clock controller index 129 * @clk_name: Cluster clock controller name 130 * @dev : Cluster clock device 131 * @hw: HW specific structure of Cluster clock controller 135 unsigned int cluster; member 151 (clk->cluster * clk->pll_regs->cluster_offset); in ap_cpu_clk_recalc_rate() 167 (clk->cluster * clk->pll_regs->cluster_offset); in ap_cpu_clk_set_rate() 169 (clk->cluster * clk->pll_regs->cluster_offset); in ap_cpu_clk_set_rate() 171 (clk->cluster * clk->pll_regs->cluster_offset); in ap_cpu_clk_set_rate() [all …]
|
/linux/fs/fat/ |
H A D | cache.c | 7 * Mar 1999. AV. Changed cache, so that it uses the starting cluster instead 21 int fcluster; /* cluster number in the file. */ 22 int dcluster; /* cluster number on disk. */ 123 /* Find the same part as "new" in cluster-chain. */ in fat_cache_merge() 225 int fat_get_cluster(struct inode *inode, int cluster, int *fclus, int *dclus) in fat_get_cluster() argument 240 "%s: invalid start cluster (i_pos %lld, start %08x)", in fat_get_cluster() 244 if (cluster == 0) in fat_get_cluster() 247 if (fat_cache_lookup(inode, cluster, &cid, fclus, dclus) < 0) { in fat_get_cluster() 256 while (*fclus < cluster) { in fat_get_cluster() 257 /* prevent the infinite loop of cluster chain */ in fat_get_cluster() [all …]
|
/linux/tools/perf/pmu-events/arch/s390/cf_z14/ |
H A D | extended.json | 132 "BriefDescription": "L1D On-Cluster L3 Sourced Writes", 133 …1 Data cache directory where the returned cache line was sourced from On-Cluster Level-3 cache wit… 139 "BriefDescription": "L1D On-Cluster Memory Sourced Writes", 140 … Level-1 Data cache directory where the returned cache line was sourced from an On-Cluster memory." 146 "BriefDescription": "L1D On-Cluster L3 Sourced Writes with Intervention", 147 …ata cache directory where the returned cache line was sourced from an On-Cluster Level-3 cache wit… 153 "BriefDescription": "L1D Off-Cluster L3 Sourced Writes", 154 …ta cache directory where the returned cache line was sourced from an Off-Cluster Level-3 cache wit… 160 "BriefDescription": "L1D Off-Cluster Memory Sourced Writes", 161 …he Level-1 Data cache directory where the returned cache line was sourced from Off-Cluster memory." [all …]
|
/linux/drivers/remoteproc/ |
H A D | xlnx_r5_remoteproc.c | 33 * settings for RPU cluster mode which 34 * reflects possible values of xlnx,cluster-mode dt-property 122 /* In lockstep mode cluster uses each 64KB TCM from second core as well */ 160 * struct zynqmp_r5_cluster - remoteproc cluster's internal data 162 * @dev: r5f subsystem cluster device node 163 * @mode: cluster mode of type zynqmp_r5_cluster_mode 164 * @core_count: number of r5 cores used for this cluster mode 1049 static int zynqmp_r5_get_tcm_node_from_dt(struct zynqmp_r5_cluster *cluster) in zynqmp_r5_get_tcm_node_from_dt() argument 1061 for (i = 0; i < cluster->core_count; i++) { in zynqmp_r5_get_tcm_node_from_dt() 1062 r5_core = cluster->r5_cores[i]; in zynqmp_r5_get_tcm_node_from_dt() [all …]
|
/linux/Documentation/mm/ |
H A D | swap-table.rst | 9 Swap table implements swap cache as a per-cluster swap cache value array. 45 in a swap in or swap out path. We should already have the swap cluster, 48 If we have a per-cluster array to store swap cache value in the cluster. 49 Swap cache lookup within the cluster can be a very simple array lookup. 51 We give such a per-cluster swap cache value array a name: the swap table. 54 PTE. The size of a swap table for one swap cluster typically matches a PTE 63 Swap table modification requires taking the cluster lock. If a folio 65 locked prior to the cluster lock. After adding or removing is done, the
|
/linux/tools/perf/pmu-events/arch/s390/cf_z15/ |
H A D | extended.json | 132 "BriefDescription": "L1D On-Cluster L3 Sourced Writes", 133 …1 Data cache directory where the returned cache line was sourced from On-Cluster Level-3 cache wit… 139 "BriefDescription": "L1D On-Cluster Memory Sourced Writes", 140 … Level-1 Data cache directory where the returned cache line was sourced from an On-Cluster memory." 146 "BriefDescription": "L1D On-Cluster L3 Sourced Writes with Intervention", 147 …ata cache directory where the returned cache line was sourced from an On-Cluster Level-3 cache wit… 153 "BriefDescription": "L1D Off-Cluster L3 Sourced Writes", 154 …ta cache directory where the returned cache line was sourced from an Off-Cluster Level-3 cache wit… 160 "BriefDescription": "L1D Off-Cluster Memory Sourced Writes", 161 …he Level-1 Data cache directory where the returned cache line was sourced from Off-Cluster memory." [all …]
|
/linux/fs/ext4/ |
H A D | extents_status.h | 88 * Pending cluster reservations for bigalloc file systems 90 * A cluster with a pending reservation is a logical cluster shared by at 93 * reservation is said to be pending because a cluster reservation would 94 * have to be taken in the event all blocks in the cluster shared with 98 * The set of pending cluster reservations is an auxiliary data structure 99 * used with the extents status tree to implement reserved cluster/block 101 * records all pending cluster reservations. 106 * reserved cluster count if it results in the removal of all delayed 107 * and unwritten extents (blocks) from a cluster that is not shared with a 109 * whether the cluster is shared can be done by searching for a pending [all …]
|
/linux/Documentation/driver-api/md/ |
H A D | md-cluster.rst | 2 MD Cluster 5 The cluster MD is a shared-device RAID for a cluster, it supports 12 Separate write-intent-bitmaps are used for each cluster node. 45 node joins the cluster, it acquires the lock in PW mode and it stays 46 so during the lifetime the node is part of the cluster. The lock 55 joins the cluster. 128 The DLM LVB is used to communicate within nodes of the cluster. There 145 acknowledged by all nodes in the cluster. The BAST of the resource 216 When a node fails, the DLM informs the cluster with the slot 217 number. The node starts a cluster recovery thread. The cluster [all …]
|
/linux/arch/mips/kernel/ |
H A D | smp-cps.c | 44 static void power_up_other_cluster(unsigned int cluster) in power_up_other_cluster() argument 49 mips_cm_lock_other(cluster, CM_GCR_Cx_OTHER_CORE_CM, 0, in power_up_other_cluster() 60 mips_cm_lock_other(cluster, 0, 0, CM_GCR_Cx_OTHER_BLOCK_GLOBAL); in power_up_other_cluster() 67 mips_cm_lock_other(cluster, CM_GCR_Cx_OTHER_CORE_CM, 0, in power_up_other_cluster() 80 pr_warn("Waiting for cluster %u CM to power up... STAT_CONF=0x%x\n", in power_up_other_cluster() 81 cluster, stat); in power_up_other_cluster() 89 static unsigned __init core_vpe_count(unsigned int cluster, unsigned core) in core_vpe_count() argument 91 return min(smp_max_threads, mips_cps_numvps(cluster, core)); in core_vpe_count() 236 /* Use the number of VPEs in cluster 0 core 0 for smp_num_siblings */ in cps_smp_setup() 288 /* The calibration has to be done on the primary CPU of the cluster */ in calibrate_delay_is_known() [all …]
|
/linux/mm/ |
H A D | swap.h | 22 * We use this to track usage of a cluster. A cluster is a block of swap disk 25 * get a free cluster. 27 * The flags field determines if a cluster is free. This is 28 * protected by cluster lock. 34 * elements corresponding to the swap cluster. 43 /* All on-list cluster must have a non-zero flag. */ 45 CLUSTER_FLAG_NONE = 0, /* For temporary off-list cluster */ 121 * swap_cluster_lock - Lock and return the swap cluster of given offset. 122 * @si: swap device the cluster belongs to. 144 * swap_cluster_get_and_lock - Locks the cluster that holds a folio's entries. [all …]
|
/linux/Documentation/devicetree/bindings/phy/ |
H A D | marvell,armada-375-usb-cluster.yaml | 4 $id: http://devicetree.org/schemas/phy/marvell,armada-375-usb-cluster.yaml# 7 title: Armada 375 USB Cluster 14 Control register for the Armada 375 USB cluster, managing USB2 and USB3 features. 18 const: marvell,armada-375-usb-cluster 36 usbcluster: usb-cluster@18400 { 37 compatible = "marvell,armada-375-usb-cluster";
|
/linux/fs/exfat/ |
H A D | cache.c | 7 * Mar 1999. AV. Changed cache, so that it uses the starting cluster instead 25 unsigned int fcluster; /* cluster number in the file. */ 26 unsigned int dcluster; /* cluster number on disk. */ 127 /* Find the same part as "new" in cluster-chain. */ in exfat_cache_merge() 236 int exfat_get_cluster(struct inode *inode, unsigned int cluster, in exfat_get_cluster() argument 259 * Don`t use exfat_cache if zero offset or non-cluster allocation in exfat_get_cluster() 261 if (cluster == 0 || *dclus == EXFAT_EOF_CLUSTER) in exfat_get_cluster() 266 if (exfat_cache_lookup(inode, cluster, &cid, fclus, dclus) == in exfat_get_cluster() 278 if (*fclus == cluster) in exfat_get_cluster() 281 while (*fclus < cluster) { in exfat_get_cluster() [all …]
|