Searched hist:13840 (Results 1 - 11 of 11) sorted by relevance

/linux-master/Documentation/devicetree/bindings/mips/brcm/
H A Dsoc.txtdiff 4bac0e2a Wed Aug 03 03:58:27 MDT 2016 Álvaro Fernández Rojas <noltari@gmail.com> MIPS: BMIPS: Add BCM3368 support

BCM3368 has a shared TLB which conflicts with current SMP support, so it must
be disabled for now.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Cc: f.fainelli@gmail.com
Cc: jogo@openwrt.org
Cc: cernekee@gmail.com
Cc: robh@kernel.org
Cc: simon@fire.lp0.eu
Cc: john@phrozen.org
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/13840/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
/linux-master/arch/mips/bmips/
H A Dsetup.cdiff 4bac0e2a Wed Aug 03 03:58:27 MDT 2016 Álvaro Fernández Rojas <noltari@gmail.com> MIPS: BMIPS: Add BCM3368 support

BCM3368 has a shared TLB which conflicts with current SMP support, so it must
be disabled for now.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Cc: f.fainelli@gmail.com
Cc: jogo@openwrt.org
Cc: cernekee@gmail.com
Cc: robh@kernel.org
Cc: simon@fire.lp0.eu
Cc: john@phrozen.org
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Cc: devicetree@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/13840/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
/linux-master/drivers/md/
H A Ddm-bufio.cdiff 13840d38 Sun Apr 30 15:32:28 MDT 2017 Mikulas Patocka <mpatocka@redhat.com> dm bufio: make the parameter "retain_bytes" unsigned long

Change the type of the parameter "retain_bytes" from unsigned to
unsigned long, so that on 64-bit machines the user can set more than
4GiB of data to be retained.

Also, change the type of the variable "count" in the function
"__evict_old_buffers" to unsigned long. The assignment
"count = c->n_buffers[LIST_CLEAN] + c->n_buffers[LIST_DIRTY];"
could result in unsigned long to unsigned overflow and that could result
in buffers not being freed when they should.

While at it, avoid division in get_retain_buffers(). Division is slow,
we can change it to shift because we have precalculated the log2 of
block size.

Cc: stable@vger.kernel.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
/linux-master/arch/arm64/boot/dts/qcom/
H A Dsm8250.dtsidiff 6aabed55 Mon Jan 11 18:32:54 MST 2021 Danny Lin <danny@kdrag0n.dev> arm64: dts: qcom: sm8250: Add CPU capacities and energy model

Power and performance measurements were made using my freqbench [1]
benchmark coordinator, which isolates, offlines, and disables the timer
tick on test CPUs to maximize accuracy. It uses EEMBC CoreMark [2] as
the workload and measures power usage using the PM8150B PMIC's fuel
gauge.

The energy model dynamic-power-coefficient values were calculated with
DPC = µW / MHz / V^2
for each OPP, and averaged across all OPPs within each cluster for the
final coefficient. Voltages were obtained from the qcom-cpufreq-hw
driver that reads voltages from the OSM LUT programmed into the SoC.

Normalized DMIPS/MHz capacity scale values for each CPU were calculated
from CoreMarks/MHz (CoreMark iterations per second per MHz), which
serves the same purpose. For each CPU, the final capacity-dmips-mhz
value is the C/MHz value of its maximum frequency normalized to
SCHED_CAPACITY_SCALE (1024) for the fastest CPU in the system.

A Xiaomi Redmi K30S Ultra device running a downstream Qualcomm 4.19
kernel was used for benchmarking to ensure proper frequency scaling and
other low-level controls.

Raw benchmark results can be found in the freqbench repository [3].
Below is a human-readable summary:

Frequency domains: cpu1 cpu4 cpu7
Offline CPUs: cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7
Baseline power usage: 1223 mW

===== CPU 1 =====
Frequencies: 300 403 518 614 691 787 883 979 1075 1171 1248 1344 1420 1516 1612 1708 1804

300: 1114 3.7 C/MHz 29 mW 6.4 J 39.0 I/mJ 224.5 s
403: 1497 3.7 C/MHz 33 mW 5.5 J 45.2 I/mJ 167.0 s
518: 1925 3.7 C/MHz 48 mW 6.3 J 39.7 I/mJ 129.9 s
614: 2281 3.7 C/MHz 73 mW 8.0 J 31.1 I/mJ 109.6 s
691: 2566 3.7 C/MHz 46 mW 4.5 J 55.2 I/mJ 97.4 s
787: 2923 3.7 C/MHz 86 mW 7.4 J 33.8 I/mJ 85.5 s
883: 3279 3.7 C/MHz 77 mW 5.9 J 42.5 I/mJ 76.2 s
979: 3635 3.7 C/MHz 65 mW 4.4 J 56.2 I/mJ 68.8 s
1075: 3992 3.7 C/MHz 71 mW 4.4 J 56.2 I/mJ 62.6 s
1171: 4348 3.7 C/MHz 121 mW 6.9 J 36.0 I/mJ 57.5 s
1248: 4633 3.7 C/MHz 79 mW 4.2 J 58.9 I/mJ 54.0 s
1344: 4990 3.7 C/MHz 81 mW 4.0 J 61.7 I/mJ 50.1 s
1420: 5275 3.7 C/MHz 85 mW 4.0 J 61.8 I/mJ 47.4 s
1516: 5632 3.7 C/MHz 88 mW 3.9 J 64.3 I/mJ 44.4 s
1612: 5988 3.7 C/MHz 92 mW 3.8 J 65.4 I/mJ 41.7 s
1708: 6346 3.7 C/MHz 96 mW 3.8 J 66.3 I/mJ 39.4 s
1804: 6701 3.7 C/MHz 105 mW 3.9 J 63.5 I/mJ 37.3 s

===== CPU 4 =====
Frequencies: 710 825 940 1056 1171 1286 1382 1478 1574 1670 1766 1862 1958 2054 2150 2246 2342 2419

710: 6022 8.5 C/MHz 123 mW 5.1 J 49.1 I/mJ 41.5 s
825: 7001 8.5 C/MHz 142 mW 5.1 J 49.4 I/mJ 35.7 s
940: 7987 8.5 C/MHz 164 mW 5.1 J 48.7 I/mJ 31.3 s
1056: 8954 8.5 C/MHz 185 mW 5.2 J 48.3 I/mJ 27.9 s
1171: 9944 8.5 C/MHz 212 mW 5.3 J 46.9 I/mJ 25.2 s
1286: 10926 8.5 C/MHz 235 mW 5.4 J 46.4 I/mJ 22.9 s
1382: 11735 8.5 C/MHz 253 mW 5.4 J 46.4 I/mJ 21.3 s
1478: 12531 8.5 C/MHz 277 mW 5.5 J 45.2 I/mJ 20.0 s
1574: 13335 8.5 C/MHz 306 mW 5.7 J 43.6 I/mJ 18.8 s
1670: 14169 8.5 C/MHz 335 mW 5.9 J 42.2 I/mJ 17.7 s
1766: 14969 8.5 C/MHz 353 mW 5.9 J 42.3 I/mJ 16.7 s
1862: 15800 8.5 C/MHz 444 mW 7.0 J 35.6 I/mJ 15.8 s
1958: 16630 8.5 C/MHz 463 mW 7.0 J 35.9 I/mJ 15.0 s
2054: 17428 8.5 C/MHz 480 mW 6.9 J 36.3 I/mJ 14.4 s
2150: 18238 8.5 C/MHz 496 mW 6.8 J 36.8 I/mJ 13.7 s
2246: 19053 8.5 C/MHz 578 mW 7.6 J 32.9 I/mJ 13.1 s
2342: 19873 8.5 C/MHz 625 mW 7.9 J 31.8 I/mJ 12.6 s
2419: 20522 8.5 C/MHz 675 mW 8.2 J 30.4 I/mJ 12.2 s

===== CPU 7 =====
Frequencies: 844 960 1075 1190 1305 1401 1516 1632 1747 1862 1977 2073 2169 2265 2361 2457 2553 2649 2745 2841

844: 7172 8.5 C/MHz 155 mW 5.4 J 46.4 I/mJ 34.9 s
960: 8148 8.5 C/MHz 172 mW 5.3 J 47.4 I/mJ 30.7 s
1075: 9116 8.5 C/MHz 197 mW 5.4 J 46.2 I/mJ 27.4 s
1190: 10105 8.5 C/MHz 220 mW 5.4 J 46.0 I/mJ 24.8 s
1305: 11084 8.5 C/MHz 242 mW 5.5 J 45.8 I/mJ 22.6 s
1401: 11888 8.5 C/MHz 262 mW 5.5 J 45.4 I/mJ 21.0 s
1516: 12859 8.5 C/MHz 297 mW 5.8 J 43.2 I/mJ 19.5 s
1632: 13840 8.5 C/MHz 335 mW 6.1 J 41.3 I/mJ 18.1 s
1747: 14827 8.5 C/MHz 369 mW 6.2 J 40.1 I/mJ 16.9 s
1862: 15800 8.5 C/MHz 395 mW 6.3 J 40.0 I/mJ 15.8 s
1977: 16786 8.5 C/MHz 443 mW 6.6 J 37.9 I/mJ 14.9 s
2073: 17566 8.5 C/MHz 488 mW 6.9 J 36.0 I/mJ 14.2 s
2169: 18395 8.5 C/MHz 620 mW 8.4 J 29.7 I/mJ 13.6 s
2265: 19223 8.5 C/MHz 621 mW 8.1 J 30.9 I/mJ 13.0 s
2361: 20040 8.5 C/MHz 672 mW 8.4 J 29.8 I/mJ 12.5 s
2457: 20852 8.5 C/MHz 696 mW 8.3 J 29.9 I/mJ 12.0 s
2553: 21684 8.5 C/MHz 738 mW 8.5 J 29.3 I/mJ 11.5 s
2649: 22458 8.5 C/MHz 793 mW 8.8 J 28.3 I/mJ 11.1 s
2745: 23314 8.5 C/MHz 875 mW 9.4 J 26.6 I/mJ 10.7 s
2841: 24103 8.5 C/MHz 928 mW 9.6 J 26.0 I/mJ 10.4 s

[1] https://github.com/kdrag0n/freqbench
[2] https://www.eembc.org/coremark/
[3] https://github.com/kdrag0n/freqbench/tree/master/results/sm8250/k30s

Signed-off-by: Danny Lin <danny@kdrag0n.dev>
Link: https://lore.kernel.org/r/20210112013255.415253-2-danny@kdrag0n.dev
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
/linux-master/scripts/dtc/include-prefixes/arm64/qcom/
H A Dsm8250.dtsidiff 6aabed55 Mon Jan 11 18:32:54 MST 2021 Danny Lin <danny@kdrag0n.dev> arm64: dts: qcom: sm8250: Add CPU capacities and energy model

Power and performance measurements were made using my freqbench [1]
benchmark coordinator, which isolates, offlines, and disables the timer
tick on test CPUs to maximize accuracy. It uses EEMBC CoreMark [2] as
the workload and measures power usage using the PM8150B PMIC's fuel
gauge.

The energy model dynamic-power-coefficient values were calculated with
DPC = µW / MHz / V^2
for each OPP, and averaged across all OPPs within each cluster for the
final coefficient. Voltages were obtained from the qcom-cpufreq-hw
driver that reads voltages from the OSM LUT programmed into the SoC.

Normalized DMIPS/MHz capacity scale values for each CPU were calculated
from CoreMarks/MHz (CoreMark iterations per second per MHz), which
serves the same purpose. For each CPU, the final capacity-dmips-mhz
value is the C/MHz value of its maximum frequency normalized to
SCHED_CAPACITY_SCALE (1024) for the fastest CPU in the system.

A Xiaomi Redmi K30S Ultra device running a downstream Qualcomm 4.19
kernel was used for benchmarking to ensure proper frequency scaling and
other low-level controls.

Raw benchmark results can be found in the freqbench repository [3].
Below is a human-readable summary:

Frequency domains: cpu1 cpu4 cpu7
Offline CPUs: cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7
Baseline power usage: 1223 mW

===== CPU 1 =====
Frequencies: 300 403 518 614 691 787 883 979 1075 1171 1248 1344 1420 1516 1612 1708 1804

300: 1114 3.7 C/MHz 29 mW 6.4 J 39.0 I/mJ 224.5 s
403: 1497 3.7 C/MHz 33 mW 5.5 J 45.2 I/mJ 167.0 s
518: 1925 3.7 C/MHz 48 mW 6.3 J 39.7 I/mJ 129.9 s
614: 2281 3.7 C/MHz 73 mW 8.0 J 31.1 I/mJ 109.6 s
691: 2566 3.7 C/MHz 46 mW 4.5 J 55.2 I/mJ 97.4 s
787: 2923 3.7 C/MHz 86 mW 7.4 J 33.8 I/mJ 85.5 s
883: 3279 3.7 C/MHz 77 mW 5.9 J 42.5 I/mJ 76.2 s
979: 3635 3.7 C/MHz 65 mW 4.4 J 56.2 I/mJ 68.8 s
1075: 3992 3.7 C/MHz 71 mW 4.4 J 56.2 I/mJ 62.6 s
1171: 4348 3.7 C/MHz 121 mW 6.9 J 36.0 I/mJ 57.5 s
1248: 4633 3.7 C/MHz 79 mW 4.2 J 58.9 I/mJ 54.0 s
1344: 4990 3.7 C/MHz 81 mW 4.0 J 61.7 I/mJ 50.1 s
1420: 5275 3.7 C/MHz 85 mW 4.0 J 61.8 I/mJ 47.4 s
1516: 5632 3.7 C/MHz 88 mW 3.9 J 64.3 I/mJ 44.4 s
1612: 5988 3.7 C/MHz 92 mW 3.8 J 65.4 I/mJ 41.7 s
1708: 6346 3.7 C/MHz 96 mW 3.8 J 66.3 I/mJ 39.4 s
1804: 6701 3.7 C/MHz 105 mW 3.9 J 63.5 I/mJ 37.3 s

===== CPU 4 =====
Frequencies: 710 825 940 1056 1171 1286 1382 1478 1574 1670 1766 1862 1958 2054 2150 2246 2342 2419

710: 6022 8.5 C/MHz 123 mW 5.1 J 49.1 I/mJ 41.5 s
825: 7001 8.5 C/MHz 142 mW 5.1 J 49.4 I/mJ 35.7 s
940: 7987 8.5 C/MHz 164 mW 5.1 J 48.7 I/mJ 31.3 s
1056: 8954 8.5 C/MHz 185 mW 5.2 J 48.3 I/mJ 27.9 s
1171: 9944 8.5 C/MHz 212 mW 5.3 J 46.9 I/mJ 25.2 s
1286: 10926 8.5 C/MHz 235 mW 5.4 J 46.4 I/mJ 22.9 s
1382: 11735 8.5 C/MHz 253 mW 5.4 J 46.4 I/mJ 21.3 s
1478: 12531 8.5 C/MHz 277 mW 5.5 J 45.2 I/mJ 20.0 s
1574: 13335 8.5 C/MHz 306 mW 5.7 J 43.6 I/mJ 18.8 s
1670: 14169 8.5 C/MHz 335 mW 5.9 J 42.2 I/mJ 17.7 s
1766: 14969 8.5 C/MHz 353 mW 5.9 J 42.3 I/mJ 16.7 s
1862: 15800 8.5 C/MHz 444 mW 7.0 J 35.6 I/mJ 15.8 s
1958: 16630 8.5 C/MHz 463 mW 7.0 J 35.9 I/mJ 15.0 s
2054: 17428 8.5 C/MHz 480 mW 6.9 J 36.3 I/mJ 14.4 s
2150: 18238 8.5 C/MHz 496 mW 6.8 J 36.8 I/mJ 13.7 s
2246: 19053 8.5 C/MHz 578 mW 7.6 J 32.9 I/mJ 13.1 s
2342: 19873 8.5 C/MHz 625 mW 7.9 J 31.8 I/mJ 12.6 s
2419: 20522 8.5 C/MHz 675 mW 8.2 J 30.4 I/mJ 12.2 s

===== CPU 7 =====
Frequencies: 844 960 1075 1190 1305 1401 1516 1632 1747 1862 1977 2073 2169 2265 2361 2457 2553 2649 2745 2841

844: 7172 8.5 C/MHz 155 mW 5.4 J 46.4 I/mJ 34.9 s
960: 8148 8.5 C/MHz 172 mW 5.3 J 47.4 I/mJ 30.7 s
1075: 9116 8.5 C/MHz 197 mW 5.4 J 46.2 I/mJ 27.4 s
1190: 10105 8.5 C/MHz 220 mW 5.4 J 46.0 I/mJ 24.8 s
1305: 11084 8.5 C/MHz 242 mW 5.5 J 45.8 I/mJ 22.6 s
1401: 11888 8.5 C/MHz 262 mW 5.5 J 45.4 I/mJ 21.0 s
1516: 12859 8.5 C/MHz 297 mW 5.8 J 43.2 I/mJ 19.5 s
1632: 13840 8.5 C/MHz 335 mW 6.1 J 41.3 I/mJ 18.1 s
1747: 14827 8.5 C/MHz 369 mW 6.2 J 40.1 I/mJ 16.9 s
1862: 15800 8.5 C/MHz 395 mW 6.3 J 40.0 I/mJ 15.8 s
1977: 16786 8.5 C/MHz 443 mW 6.6 J 37.9 I/mJ 14.9 s
2073: 17566 8.5 C/MHz 488 mW 6.9 J 36.0 I/mJ 14.2 s
2169: 18395 8.5 C/MHz 620 mW 8.4 J 29.7 I/mJ 13.6 s
2265: 19223 8.5 C/MHz 621 mW 8.1 J 30.9 I/mJ 13.0 s
2361: 20040 8.5 C/MHz 672 mW 8.4 J 29.8 I/mJ 12.5 s
2457: 20852 8.5 C/MHz 696 mW 8.3 J 29.9 I/mJ 12.0 s
2553: 21684 8.5 C/MHz 738 mW 8.5 J 29.3 I/mJ 11.5 s
2649: 22458 8.5 C/MHz 793 mW 8.8 J 28.3 I/mJ 11.1 s
2745: 23314 8.5 C/MHz 875 mW 9.4 J 26.6 I/mJ 10.7 s
2841: 24103 8.5 C/MHz 928 mW 9.6 J 26.0 I/mJ 10.4 s

[1] https://github.com/kdrag0n/freqbench
[2] https://www.eembc.org/coremark/
[3] https://github.com/kdrag0n/freqbench/tree/master/results/sm8250/k30s

Signed-off-by: Danny Lin <danny@kdrag0n.dev>
Link: https://lore.kernel.org/r/20210112013255.415253-2-danny@kdrag0n.dev
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
/linux-master/tools/perf/util/
H A Dsort.hdiff 7768f8da Fri Feb 24 06:32:56 MST 2017 Charles Baylis <charles.baylis@linaro.org> perf tools: Allow sorting by symbol size

Add new sort key 'symbol_size' to allow user to sort by symbol size, or
(more usefully) display the symbol size using --fields=...,symbol_size.

Committer note:

Testing it together with the recently added -q, to remove the headers,
and using the '+' sign with -s, to add the symbol_size sort order to
the default, which is '-s/--sort comm,dso,symbol':

# perf report -q -s +symbol_size | head -10
10.39% swapper [kernel.vmlinux] [k] intel_idle 270
3.45% swapper [kernel.vmlinux] [k] update_blocked_averages 1546
2.61% swapper [kernel.vmlinux] [k] update_load_avg 1292
2.36% swapper [kernel.vmlinux] [k] update_cfs_shares 240
1.83% swapper [kernel.vmlinux] [k] __hrtimer_run_queues 606
1.74% swapper [kernel.vmlinux] [k] update_cfs_rq_load_avg. 1187
1.66% swapper [kernel.vmlinux] [k] apic_timer_interrupt 152
1.60% CPU 0/KVM [kvm] [k] kvm_set_msr_common 3046
1.60% gnome-shell libglib-2.0.so.0 [.] g_slist_find 37
1.46% gnome-termina libglib-2.0.so.0 [.] g_hash_table_lookup 370
#

Signed-off-by: Charles Baylis <charles.baylis@linaro.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1487943176-13840-1-git-send-email-charles.baylis@linaro.org
[ Use symbol__size(), remove needless %lld + (long long) casting ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
H A Dhist.hdiff 7768f8da Fri Feb 24 06:32:56 MST 2017 Charles Baylis <charles.baylis@linaro.org> perf tools: Allow sorting by symbol size

Add new sort key 'symbol_size' to allow user to sort by symbol size, or
(more usefully) display the symbol size using --fields=...,symbol_size.

Committer note:

Testing it together with the recently added -q, to remove the headers,
and using the '+' sign with -s, to add the symbol_size sort order to
the default, which is '-s/--sort comm,dso,symbol':

# perf report -q -s +symbol_size | head -10
10.39% swapper [kernel.vmlinux] [k] intel_idle 270
3.45% swapper [kernel.vmlinux] [k] update_blocked_averages 1546
2.61% swapper [kernel.vmlinux] [k] update_load_avg 1292
2.36% swapper [kernel.vmlinux] [k] update_cfs_shares 240
1.83% swapper [kernel.vmlinux] [k] __hrtimer_run_queues 606
1.74% swapper [kernel.vmlinux] [k] update_cfs_rq_load_avg. 1187
1.66% swapper [kernel.vmlinux] [k] apic_timer_interrupt 152
1.60% CPU 0/KVM [kvm] [k] kvm_set_msr_common 3046
1.60% gnome-shell libglib-2.0.so.0 [.] g_slist_find 37
1.46% gnome-termina libglib-2.0.so.0 [.] g_hash_table_lookup 370
#

Signed-off-by: Charles Baylis <charles.baylis@linaro.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1487943176-13840-1-git-send-email-charles.baylis@linaro.org
[ Use symbol__size(), remove needless %lld + (long long) casting ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
H A Dsort.cdiff 7768f8da Fri Feb 24 06:32:56 MST 2017 Charles Baylis <charles.baylis@linaro.org> perf tools: Allow sorting by symbol size

Add new sort key 'symbol_size' to allow user to sort by symbol size, or
(more usefully) display the symbol size using --fields=...,symbol_size.

Committer note:

Testing it together with the recently added -q, to remove the headers,
and using the '+' sign with -s, to add the symbol_size sort order to
the default, which is '-s/--sort comm,dso,symbol':

# perf report -q -s +symbol_size | head -10
10.39% swapper [kernel.vmlinux] [k] intel_idle 270
3.45% swapper [kernel.vmlinux] [k] update_blocked_averages 1546
2.61% swapper [kernel.vmlinux] [k] update_load_avg 1292
2.36% swapper [kernel.vmlinux] [k] update_cfs_shares 240
1.83% swapper [kernel.vmlinux] [k] __hrtimer_run_queues 606
1.74% swapper [kernel.vmlinux] [k] update_cfs_rq_load_avg. 1187
1.66% swapper [kernel.vmlinux] [k] apic_timer_interrupt 152
1.60% CPU 0/KVM [kvm] [k] kvm_set_msr_common 3046
1.60% gnome-shell libglib-2.0.so.0 [.] g_slist_find 37
1.46% gnome-termina libglib-2.0.so.0 [.] g_hash_table_lookup 370
#

Signed-off-by: Charles Baylis <charles.baylis@linaro.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1487943176-13840-1-git-send-email-charles.baylis@linaro.org
[ Use symbol__size(), remove needless %lld + (long long) casting ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
/linux-master/tools/perf/Documentation/
H A Dperf-report.txtdiff 7768f8da Fri Feb 24 06:32:56 MST 2017 Charles Baylis <charles.baylis@linaro.org> perf tools: Allow sorting by symbol size

Add new sort key 'symbol_size' to allow user to sort by symbol size, or
(more usefully) display the symbol size using --fields=...,symbol_size.

Committer note:

Testing it together with the recently added -q, to remove the headers,
and using the '+' sign with -s, to add the symbol_size sort order to
the default, which is '-s/--sort comm,dso,symbol':

# perf report -q -s +symbol_size | head -10
10.39% swapper [kernel.vmlinux] [k] intel_idle 270
3.45% swapper [kernel.vmlinux] [k] update_blocked_averages 1546
2.61% swapper [kernel.vmlinux] [k] update_load_avg 1292
2.36% swapper [kernel.vmlinux] [k] update_cfs_shares 240
1.83% swapper [kernel.vmlinux] [k] __hrtimer_run_queues 606
1.74% swapper [kernel.vmlinux] [k] update_cfs_rq_load_avg. 1187
1.66% swapper [kernel.vmlinux] [k] apic_timer_interrupt 152
1.60% CPU 0/KVM [kvm] [k] kvm_set_msr_common 3046
1.60% gnome-shell libglib-2.0.so.0 [.] g_slist_find 37
1.46% gnome-termina libglib-2.0.so.0 [.] g_hash_table_lookup 370
#

Signed-off-by: Charles Baylis <charles.baylis@linaro.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1487943176-13840-1-git-send-email-charles.baylis@linaro.org
[ Use symbol__size(), remove needless %lld + (long long) casting ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
/linux-master/drivers/block/
H A Dnbd.cdiff c55b2b98 Sat May 21 01:37:45 MDT 2022 Yu Kuai <yukuai3@huawei.com> nbd: fix race between nbd_alloc_config() and module removal

When nbd module is being removing, nbd_alloc_config() may be
called concurrently by nbd_genl_connect(), although try_module_get()
will return false, but nbd_alloc_config() doesn't handle it.

The race may lead to the leak of nbd_config and its related
resources (e.g, recv_workq) and oops in nbd_read_stat() due
to the unload of nbd module as shown below:

BUG: kernel NULL pointer dereference, address: 0000000000000040
Oops: 0000 [#1] SMP PTI
CPU: 5 PID: 13840 Comm: kworker/u17:33 Not tainted 5.14.0+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996)
Workqueue: knbd16-recv recv_work [nbd]
RIP: 0010:nbd_read_stat.cold+0x130/0x1a4 [nbd]
Call Trace:
recv_work+0x3b/0xb0 [nbd]
process_one_work+0x1ed/0x390
worker_thread+0x4a/0x3d0
kthread+0x12a/0x150
ret_from_fork+0x22/0x30

Fixing it by checking the return value of try_module_get()
in nbd_alloc_config(). As nbd_alloc_config() may return ERR_PTR(-ENODEV),
assign nbd->config only when nbd_alloc_config() succeeds to ensure
the value of nbd->config is binary (valid or NULL).

Also adding a debug message to check the reference counter
of nbd_config during module removal.

Signed-off-by: Hou Tao <houtao1@huawei.com>
Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/r/20220521073749.3146892-3-yukuai3@huawei.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
/linux-master/fs/btrfs/
H A Dextent_io.cdiff 13840f3f Sat Jul 15 05:08:33 MDT 2023 Qu Wenruo <wqu@suse.com> btrfs: refactor main loop in memcpy_extent_buffer()

[BACKGROUND]
Currently memcpy_extent_buffer() does a loop where it would stop at
any page boundary inside [dst_offset, dst_offset + len) or [src_offset,
src_offset + len).

This is mostly allowing us to do copy_pages(), but if we're going to use
folios we will need to handle multi-page (the old behavior) or single
folio (the new optimization).

The current code would be a burden for future changes.

[ENHANCEMENT]
There is a hidden pitfall of the naming memcpy_extent_buffer(), unlike
regular memcpy(), this function can handle overlapping ranges.

So here we extract write_extent_buffer() into a new internal helper,
__write_extent_buffer(), and add a new parameter @use_memmove, to
indicate whether we should use memmove() or regular memcpy().

Now we can go __write_extent_buffer() to handle writing into the dst
range, with proper overlapping detection.

This has a tiny change to the chance of calling memmove().
As the split only happens at the source range page boundaries, the
memcpy/memmove() range would be slightly larger than the old code,
thus slightly increase the chance we call memmove() other than memcopy().

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>

Completed in 914 milliseconds