- Jul 27, 2021
-
-
The previous commit removed per-CPU thermal zones. Despite having a thermal sensor per-CPU, the trip points in those zones would affect *several* CPUs: this system doesn't have per-CPU DVFS, so one cannot change the frequency of an individual CPU, but rather a group thereof (i.e. the frequency domain). Furthermore, the (existing) CPU cluster thermal zones have a "hot" trip point set at the same trip temperature as the lower per-CPU thermal zones. AIUI this is actually useless, as the struct thermal_zone_device_ops provided by thermal_of.c doesn't contain a .notify() callback, so no action will (and can) be taken as a consequence of hitting that trip point. Copy the previous per-CPU trip points / cooling maps into the CPU cluster thermal zones. This should effectively lead to a similar CPU thermal management as before with less overhead. Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
-
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
-
This is a temporary hack. Currently trace points for PELT are only triggered when the PELT metrics consumed by the scheduler are actually updated, i.e. util_avg. This means no updates if no 1 ms boundary is being crossed by the update. When reconstructing the PELT signal based on this data, the peak PELT value can therefore be up to 1 ms worth of PELT accumulation off (23 in absolute terms). This leads to a discrepancy that causes test cases to fail. This patch ensures that trace events are always emitted even if the metrics haven't been updated which should allow accurate reconstruction of the PELT signals.
-
... hackbench-3060 [007] 565.489752: sched_pelt_thermal: cpu=7 load=101 runnable=103765 util=951 update_time=564835470336 hackbench-3147 [005] 565.489760: sched_pelt_thermal: cpu=5 load=101 runnable=104036 util=954 update_time=565325810688 task_n3-3-576 [000] 565.489763: sched_pelt_thermal: cpu=0 load=31 runnable=32404 util=953 update_time=557800611840 hackbench-862 [001] 565.489763: sched_pelt_thermal: cpu=1 load=31 runnable=32395 util=952 update_time=564421108736 hackbench-2136 [002] 565.489763: sched_pelt_thermal: cpu=2 load=31 runnable=32455 util=954 update_time=564142488576 The actual PELT thermal signal is `load`, `runnable` and `util` are meaningless. It's plotted here since the trace event is implemented according to the `sched_pelt_rq_template` trace event class. The `sched_pelt_rt`, `sched_pelt_dl` and `sched_pelt_irq` trace event have a similar issue. Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-
Whereas capacity_orig is the CPU capacity scaled by CPU architecture, capacity_curr (current capacity) is the CPU capacity scaled by CPU architecture and current_frequency/max_frequency. capacity_curr is used to create the PELT clock information for enqueue/dequeue (sched_switch) out of (not aligned) PELT sched events in LISA's PELT simulation. Here, the ftrace time between an enqueue/dequeue and a PELT sched event has to be rescaled by the time-scaling factor which itself consists of CPU capacity and current_frequency/max_frequency scaling factor. And this is done by using a series of capacity_curr values.
-
... [000] .Ns3 185.489841: sched_cpu_capacity: cpu=0 capacity=437 capacity_orig=446 [002] ..s1 185.501802: sched_cpu_capacity: cpu=2 capacity=999 capacity_orig=1024 [003] ..s3 185.517837: sched_cpu_capacity: cpu=3 capacity=438 capacity_orig=446 [002] ..s1 185.529794: sched_cpu_capacity: cpu=2 capacity=999 capacity_orig=1024 [001] ..s1 185.545789: sched_cpu_capacity: cpu=1 capacity=1011 capacity_orig=1024 [004] .Ns1 185.545837: sched_cpu_capacity: cpu=4 capacity=439 capacity_orig=446 ... Use arch_scale_cpu_capacity() instead of rq->cpu_capacity_orig because there is a patch further up the stack which removes the latter. Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-
The trace event sched_pelt_se already has this entry to trace PELT's last_update_time. Having this for cfs, rt, dl rq and irq as well is interesting to debug PELT issues, especially with time-scaling (rq_clock_task/clock_pelt diff and sync). Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-
Use rq_of(cfs_rq)->cfs instead of &cpu_rq(cpu)->cfs since cpu_rq(cpu) uses runqueues. Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-
Signed-off-by: Vincent Donnefort <vincent.donnefort@arm.com> Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
The change that broke the trace event was actually merged in Linus tree on 5.7, but since we test tip/sched/core which had the change earlier, the version condition was temporarily incorrect to cope with that. Now 5.7 is released, apply the correct condition. Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
s/sched_load_cfs_rq/sched_pelt_cfs/ s/sched_load_se/sched_pelt_se/ Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
We need to support both old and new version of the struct. Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
SPAN_SIZE was being set to 0 when NR_CPUS was 2; which triggererd a compile time assertion. Which exposed a bug in the logic where we where rounding down instead of up. Fix it by using round_up() to ensure we get the correct span size for the NR_CPUS. Ensure as well that we don't use a spansize greather than 128. The trace str can't take arbitrarly large size. It's limited to 256 but be more conservative and cap it to 128. Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
Record the PELT clock as used by the PELT computations to enable accurate reproduction of the signal in LISA. Signed-off-by: Douglas Raillard <douglas.raillard@arm.com> Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
s/sched_pelt_cfs/sched_load_cfs_rq/ s/sched_pelt_se/sched_load_se/ Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
The module is always compiled as built-in except for !CONFIG_SMP where the targeted tracepoints don't exist/make sense. It creates a set of sched events in tracefs that are required to run Lisa tests. Signed-off-by: Qais Yousef <qais.yousef@arm.com>
-
arm and arm64: Add Debug per_cpu maps access Add Prove Locking Add Scheduler statistics arm: Add kernel .config support and /proc/config.gz arm64: Add Scheduler debugging Add Ftrace Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-
arm and arm64: Add Cgroups (+ FAIR_GROUP_SCHED and FREEZER) Add Uclamp support for tasks and taskgroups arm: Add Cpuset support Add Scheduler autogroups Add DIE (SCHED_MC) sched domain level Add Energy Model arm64: Add CpuFreq governors and make schedutil default Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
-
This reverts commit 5d777b18. [ionela.voinescu@arm.com: modify capacity of current CPU only]
-
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> # Conflicts: # arch/arm64/boot/dts/arm/juno-base.dtsi
-
This config is causing instability on Juno boards. Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
-
For Arm: Add ARM vexpress-spc cpufreq driver Add ARM Big.Little cpuidle driver Add Sensor Vexpress Add Schedutil as default governor Built-in CPUfreq governors Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
-
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
-
For some reason on HiKey960 the edid probing doesn't work properly unless we delay a bit at poweron. Signed-off-by: John Stultz <john.stultz@linaro.org>
-
Signed-off-by: John Stultz <john.stultz@linaro.org>
-
Add "hisilicon,hi3660-reboot" node for hi3660. Eventually when we've transitioned to UEFI this can be dropped. As we can then use syscon-reboot-mode. Signed-off-by: Chen Feng <puck.chen@hisilicon.com> Signed-off-by: Chen Jun <chenjun14@huawei.com>
-
Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
-
This patch adds support for usb on Hikey960. Cc: Chunfeng Yun <chunfeng.yun@mediatek.com> Cc: Wei Xu <xuwei5@hisilicon.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: linux-arm-kernel@lists.infradead.org Cc: John Stultz <john.stultz@linaro.org> Cc: Binghui Wang <wangbinghui@hisilicon.com> Signed-off-by: Yu Chen <chenyu56@huawei.com> Signed-off-by: John Stultz <john.stultz@linaro.org>
-
Currently the "match_existing_only" of usb_gadget_driver in configfs is set to one which is not flexible. Dwc3 udc will be removed when usb core switch to host mode. This causes failure of writing name of dwc3 udc to configfs's UDC attribuite. To fix this we need to add a way to change the config of "match_existing_only". There are systems like Android do not support udev, so adding "match_existing_only" attribute to allow configuration by user is cost little. This patch adds a configfs attribuite for controling match_existing_only which allow user to config "match_existing_only". Cc: Andy Shevchenko <andy.shevchenko@gmail.com> Cc: Felipe Balbi <balbi@kernel.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: John Stultz <john.stultz@linaro.org> Cc: Binghui Wang <wangbinghui@hisilicon.com> Signed-off-by: Yu Chen <chenyu56@huawei.com> Signed-off-by: John Stultz <john.stultz@linaro.org> Change-Id: I49862a4de4e56b235278cddf7a5ec6e30c5f2ec4
-
This fixes commit 81c4d8a3. Before the commit above, we always used to obtain information about the current OPP from hardware. If this performance level was different from the one we wanted to set, we would go ahead and set it. But after this patch, we use a cached value for the current opp which (somehow) ends up being different from what hardware has knowledge of. This results in an opp change request sometimes failing.
-
Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
-
- Jul 23, 2021
-
-
Deepak Kumar Mishra authored
-
- Jul 19, 2021
-
-
Rafael J. Wysocki authored
* pm-pci: PCI: Use pci_update_current_state() in pci_enable_device_flags()
-
Rafael J. Wysocki authored
* acpi-numa: ACPI: Add LoongArch support for ACPI_PROCESSOR/ACPI_NUMA * acpi-glue: driver core: Split device_platform_notify() software nodes: Split software_node_notify() ACPI: glue: Eliminate acpi_platform_notify() ACPI: bus: Rename functions to avoid name collision ACPI: glue: Change return type of two functions to void ACPI: glue: Rearrange acpi_device_notify() * acpi-config: ACPI: configfs: Make get_header() to return error pointer ACPI: configfs: Use sysfs_emit() in "show" functions * acpi-pmic: ACPI / PMIC: XPower: optimize MIPI PMIQ sequence I2C-bus accesses ACPI / PMIC: XPower: optimize I2C-bus accesses
-
Rafael J. Wysocki authored
* acpi-utils: ACPI: utils: Fix reference counting in for_each_acpi_dev_match() * acpi-misc: ACPI: Kconfig: Fix table override from built-in initrd
-
Andy Shevchenko authored
Currently it's possible to iterate over the dangling pointer in case the device suddenly disappears. This may happen becase callers put it at the end of a loop. Instead, let's move that call inside acpi_dev_get_next_match_dev(). Fixes: 803abec6 ("media: ipu3-cio2: Add cio2-bridge to ipu3-cio2 driver") Fixes: bf263f64 ("media: ACPI / bus: Add acpi_dev_get_next_match_dev() and helper macro") Fixes: edbd1bc4 ("efi/dev-path-parser: Switch to use for_each_acpi_dev_match()") Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com> Reviewed-by: Daniel Scally <djrscally@gmail.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-