Dmitry Baryshkov
e6e2986a3d
ARM: dts: qcom: ipq8064: use SoC-specific compatibles for SAW2 devices
...
There is no such thing as a generic 'SAW2' device. Use device-specific
compatible strings to describe the SAW2 devices.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240102-saw2-spm-regulator-v7-10-0472ec237f49@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-16 15:22:19 -06:00
Dmitry Baryshkov
8cad85bfe0
ARM: dts: qcom: ipq4019: use SoC-specific compatibles for SAW2 devices
...
There is no such thing as a generic 'SAW2' device. Use device-specific
compatible strings to describe the SAW2 devices.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240102-saw2-spm-regulator-v7-9-0472ec237f49@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-16 15:22:19 -06:00
Dmitry Baryshkov
9f77f78bd4
ARM: dts: qcom: msm8960: use SoC-specific compatibles for SAW2 devices
...
There is no such thing as a generic 'SAW2' device. Use device-specific
compatible strings to describe the SAW2 devices.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240102-saw2-spm-regulator-v7-8-0472ec237f49@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-16 15:22:19 -06:00
Dmitry Baryshkov
c0fe5442b1
ARM: dts: qcom: msm8974: use new compat string for L2 SAW2 unit
...
Add SoC-specific compatibility strings to the L2 SAW2 unit. This is
to distinguish the SAW2 units related to L2 cache and the CPU cores.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240102-saw2-spm-regulator-v7-7-0472ec237f49@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-16 15:22:09 -06:00
Dmitry Baryshkov
551d902756
ARM: dts: qcom: apq8084: use new compat string for L2 SAW2 unit
...
Add SoC-specific compatibility strings to the L2 SAW2 unit. This is
to distinguish the SAW2 units related to L2 cache and the CPU cores.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240102-saw2-spm-regulator-v7-6-0472ec237f49@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-16 15:21:50 -06:00
Matti Lehtimäki
9e9c906ede
ARM: dts: qcom: msm8226: Add watchdog node
...
Add watchdog for MSM8226 platform.
Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Link: https://lore.kernel.org/r/20240214-msm8226-msm8974-watchdog-v2-1-a6b2f27a7e28@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-14 20:20:50 -06:00
Rudraksha Gupta
5936ee2125
ARM: dts: qcom: msm8960: expressatt: Add mXT224S touchscreen
...
Add mXT224S touchscreen
Signed-off-by: Rudraksha Gupta <guptarud@gmail.com >
Link: https://lore.kernel.org/r/20240131-expressatt_mxt224s_touchscreen-v2-2-4463ae0414b5@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-14 00:25:39 -06:00
Rudraksha Gupta
1cf6313648
ARM: dts: qcom: msm8960: Add gsbi3 node
...
Copy gsbi3 node from qcom-apq8064.dtsi and set appropriate properties
Signed-off-by: Rudraksha Gupta <guptarud@gmail.com >
Link: https://lore.kernel.org/r/20240131-expressatt_mxt224s_touchscreen-v2-1-4463ae0414b5@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-14 00:25:39 -06:00
Ivaylo Ivanov
74851b7f18
ARM: dts: qcom: msm8226: Add CPU and SAW/ACC nodes
...
Add CPU and SAW/ACC nodes to enable SMP on MSM8226.
Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com >
[luca: update some nodes to fix dtbs_check errors, reorder, cleanup]
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240210-msm8226-cpu-v2-3-5d9cb4c35204@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-14 00:14:49 -06:00
Matti Lehtimäki
70d6c14f52
ARM: dts: qcom: msm8226: Sort and clean up nodes
...
Quite a few nodes haven't been sorted correctly by reg, so let's do this
now so that future nodes can be added at the correct place.
Also at the same time, move the status property last.
No functional change intended.
Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com >
[luca: add more text to commit message]
Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Link: https://lore.kernel.org/r/20240210-msm8226-cpu-v2-2-5d9cb4c35204@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-14 00:14:49 -06:00
Craig Tatlor
724c4bf0e4
ARM: dts: qcom: msm8974: correct qfprom node size
...
The qfprom actually is bigger than 0x1000, so adjust the reg.
Note that the non-ECC-corrected qfprom can be found at 0xfc4b8000
(-0x4000). The current reg points to the ECC-corrected qfprom block
which should have equivalent values at all offsets compared to the
non-corrected version.
[luca@z3ntu.xyz: extract to standalone patch and adjust for review
comments]
Fixes: c59ffb5193 ("arm: dts: msm8974: Add thermal zones, tsens and qfprom nodes")
Signed-off-by: Craig Tatlor <ctatlor97@gmail.com >
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240210-msm8974-qfprom-v3-1-26c424160334@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-14 00:09:16 -06:00
Dmitry Baryshkov
99497df594
ARM: qcom: merge remaining subplatforms into sensible Kconfig entry
...
Three remaining Qualcomm platforms have special handling of the
TEXT_OFFSET to reserve the memory at the beginnig of the system RAM, see
the commit 9e775ad19f ("ARM: 7012/1: Set proper TEXT_OFFSET for newer
MSMs"). This is required for older platforms like IPQ40xx, MSM8x60,
MSM8960 and APQ8064 and is compatible with other 32-bit Qualcomm
platforms.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Link: https://lore.kernel.org/r/20231216162700.863456-4-dmitry.baryshkov@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-06 15:00:02 -06:00
Dmitry Baryshkov
85148df368
ARM: qcom: drop most of 32-bit ARCH_QCOM subtypes
...
Historically we had several subtypes of 32-bit Qualcomm platforms.
Nowadays they became just useless symbols in Kconfig. Drop them and pull
corresponding clocksource entries towards top-level ARCH_QCOM entry.
Note, I've left ARCH_IPQ40XX, ARCH_MSM8x60 and ARCH_MSM8960 in place,
since they have special TEXT_OFFSET handling, which can be sorted out
separately.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20231216162700.863456-3-dmitry.baryshkov@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-06 15:00:02 -06:00
Dmitry Baryshkov
18368ee25d
iommu/msm-iommu: don't limit the driver too much
...
In preparation of dropping most of ARCH_QCOM subtypes, stop limiting the
driver just to those machines. Allow it to be built for any 32-bit
Qualcomm platform (ARCH_QCOM).
Acked-by: Robin Murphy <robin.murphy@arm.com >
Acked-by: Joerg Roedel <jroedel@suse.de >
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20231216162700.863456-2-dmitry.baryshkov@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-02-06 15:00:02 -06:00
Luca Weiss
4d679e3c29
ARM: dts: qcom: apq8026-lg-lenok: Add vibrator support
...
This device has a vibrator attached to the CAMSS_GP0_CLK, use clk-pwm
and pwm-vibrator to make the vibrator work.
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20240121-lenok-vibrator-v1-1-d4703ff92021@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-30 16:25:04 -06:00
Rudraksha Gupta
8d90980509
ARM: dts: qcom: msm8960: expressatt: Add gpio-keys
...
Adds volume up, volume down, and home keys to expressatt
Signed-off-by: Rudraksha Gupta <guptarud@gmail.com >
Link: https://lore.kernel.org/r/20240120-expressatt-gpio-keys-v1-1-4da7e37440b1@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-30 16:24:53 -06:00
David Heidelberg
be8db0cd5e
ARM: dts: qcom: msm8960: drop 2nd clock frequency from timer
...
The driver reads only one clock frequency, and the schema does not
allow more than one frequency here.
Signed-off-by: David Heidelberg <david@ixit.cz >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20230812183811.375671-1-david@ixit.cz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-27 20:39:22 -06:00
Robert Marko
111bc3710c
ARM: dts: qcom: ipq4019-ap.dk01.1: align flash node with bindings
...
Rename the SPI-NOR node to flash@0, remove #address-cells and #size-cells
as they should be under the partitions subnode and use the generic
jedec,spi-nor compatible.
Signed-off-by: Robert Marko <robimarko@gmail.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20230811210142.403160-2-robimarko@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-27 20:39:03 -06:00
Robert Marko
54850df251
ARM: dts: qcom: ipq4019-ap.dk01.1: use existing labels for nodes
...
All of the nodes under soc already have existing labels so use those
instead.
Signed-off-by: Robert Marko <robimarko@gmail.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20230811210142.403160-1-robimarko@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-27 20:39:03 -06:00
Luca Weiss
713bc594c6
ARM: dts: qcom: msm8926-htc-memul: Add rmtfs memory node
...
Add the rmtfs-mem node which was part of one of the "unknown" memory
reservation. Split that one, make sure the reserved-memory in total
still covers the same space.
Signed-off-by: Luca Weiss <luca@z3ntu.xyz >
Link: https://lore.kernel.org/r/20240121-memul-rmtfs-v1-1-e9da29b1f856@z3ntu.xyz
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-27 20:26:12 -06:00
Krzysztof Kozlowski
81924ec7a0
ARM: dts: qcom: use defines for interrupts
...
Replace hard-coded interrupt parts (GIC, flags) with standard defines
for readability. No changes in resulting DTBs.
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20231205153317.346109-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-24 08:56:27 -06:00
Matti Lehtimäki
ffb05e91b6
ARM: dts: qcom: apq8026-samsung-matissewifi: Configure touch keys
...
Add touch keys which are handled in touchscreen driver.
Use KEY_APPSELECT for the left button because other devices use that
even though downstream kernel uses KEY_RECENT.
Signed-off-by: Matti Lehtimäki <matti.lehtimaki@gmail.com >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Reviewed-by: Luca Weiss <luca@z3ntu.xyz >
Link: https://lore.kernel.org/r/20231204094649.10094-1-matti.lehtimaki@gmail.com
[bjorn: Wrapped each cell in <>, as requested by Luca]
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-24 08:56:23 -06:00
Krzysztof Kozlowski
71ae7237cd
ARM: dts: qcom: ipq4019: correct clock order in DWC3 node
...
Align the order of clocks in Qualcomm DWC3 USB controller to match
bindings. Linux driver does not care about the order. This fixes
dtbs_check warning:
qcom-ipq4018-ap120c-ac.dtb: usb@60f8800: clock-names:0: 'core' was expected
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20231112080136.12518-3-krzysztof.kozlowski@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-22 11:00:40 -06:00
Krzysztof Kozlowski
7d912adff5
ARM: dts: qcom: sdx65: correct clock order in DWC3 node
...
Align the order of clocks in Qualcomm DWC3 USB controller to match
bindings. Linux driver does not care about the order. This fixes
dtbs_check warning:
qcom-sdx65-mtp.dtb: usb@a6f8800: clock-names:3: 'sleep' was expected
qcom-sdx65-mtp.dtb: usb@a6f8800: clock-names:4: 'mock_utmi' was expected
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20231112080136.12518-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-22 11:00:40 -06:00
Krzysztof Kozlowski
a78a95b98d
ARM: dts: qcom: ipq8064: drop unused reset-names from DWC3 node
...
The Qualcomm DWC3 USB controller bindings do not allow "reset-names" and
Linux driver does no use it. This fixes dtbs_check warning:
qcom-ipq8064-ap148.dtb: usb@100f8800: 'reset-names' does not match any of the regexes: '^usb@[0-9a-f]+$', 'pinctrl-[0-9]+'
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org >
Link: https://lore.kernel.org/r/20231112080136.12518-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org >
2024-01-22 11:00:40 -06:00
Linus Torvalds
6613476e22
Linux 6.8-rc1
v6.8-rc1
2024-01-21 14:11:32 -08:00
Linus Torvalds
35a4474b5c
Merge tag 'bcachefs-2024-01-21' of https://evilpiepirate.org/git/bcachefs
...
Pull more bcachefs updates from Kent Overstreet:
"Some fixes, Some refactoring, some minor features:
- Assorted prep work for disk space accounting rewrite
- BTREE_TRIGGER_ATOMIC: after combining our trigger callbacks, this
makes our trigger context more explicit
- A few fixes to avoid excessive transaction restarts on
multithreaded workloads: fstests (in addition to ktest tests) are
now checking slowpath counters, and that's shaking out a few bugs
- Assorted tracepoint improvements
- Starting to break up bcachefs_format.h and move on disk types so
they're with the code they belong to; this will make room to start
documenting the on disk format better.
- A few minor fixes"
* tag 'bcachefs-2024-01-21' of https://evilpiepirate.org/git/bcachefs: (46 commits)
bcachefs: Improve inode_to_text()
bcachefs: logged_ops_format.h
bcachefs: reflink_format.h
bcachefs; extents_format.h
bcachefs: ec_format.h
bcachefs: subvolume_format.h
bcachefs: snapshot_format.h
bcachefs: alloc_background_format.h
bcachefs: xattr_format.h
bcachefs: dirent_format.h
bcachefs: inode_format.h
bcachefs; quota_format.h
bcachefs: sb-counters_format.h
bcachefs: counters.c -> sb-counters.c
bcachefs: comment bch_subvolume
bcachefs: bch_snapshot::btime
bcachefs: add missing __GFP_NOWARN
bcachefs: opts->compression can now also be applied in the background
bcachefs: Prep work for variable size btree node buffers
bcachefs: grab s_umount only if snapshotting
...
2024-01-21 14:01:12 -08:00
Linus Torvalds
4fbbed7872
Merge tag 'timers-core-2024-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
...
Pull timer updates from Thomas Gleixner:
"Updates for time and clocksources:
- A fix for the idle and iowait time accounting vs CPU hotplug.
The time is reset on CPU hotplug which makes the accumulated
systemwide time jump backwards.
- Assorted fixes and improvements for clocksource/event drivers"
* tag 'timers-core-2024-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
clocksource/drivers/ep93xx: Fix error handling during probe
clocksource/drivers/cadence-ttc: Fix some kernel-doc warnings
clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings
clocksource/timer-riscv: Add riscv_clock_shutdown callback
dt-bindings: timer: Add StarFive JH8100 clint
dt-bindings: timer: thead,c900-aclint-mtimer: separate mtime and mtimecmp regs
2024-01-21 11:14:40 -08:00
Linus Torvalds
7b297a5cc9
Merge tag 'powerpc-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux
...
Pull powerpc fixes from Aneesh Kumar:
- Increase default stack size to 32KB for Book3S
Thanks to Michael Ellerman.
* tag 'powerpc-6.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/64s: Increase default stack size to 32KB
2024-01-21 11:04:29 -08:00
Kent Overstreet
249f441f83
bcachefs: Improve inode_to_text()
...
Add line breaks - inode_to_text() is now much easier to read.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:11 -05:00
Kent Overstreet
d826cc57c5
bcachefs: logged_ops_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:11 -05:00
Kent Overstreet
8d52ba60c4
bcachefs: reflink_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:11 -05:00
Kent Overstreet
b2fa1b633b
bcachefs; extents_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:11 -05:00
Kent Overstreet
0560eb9abf
bcachefs: ec_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:11 -05:00
Kent Overstreet
c6c4ff6507
bcachefs: subvolume_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:11 -05:00
Kent Overstreet
8fed323b14
bcachefs: snapshot_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
d455179fce
bcachefs: alloc_background_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
72e0801049
bcachefs: xattr_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
7ffc4daa5f
bcachefs: dirent_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
b36425da71
bcachefs: inode_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
82de6207fb
bcachefs; quota_format.h
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
43314801a4
bcachefs: sb-counters_format.h
...
bcachefs_format.h has gotten too big; let's do some organizing.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
3a58dfbc46
bcachefs: counters.c -> sb-counters.c
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
12207f49ef
bcachefs: comment bch_subvolume
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
d32088f2f2
bcachefs: bch_snapshot::btime
...
Add a field to bch_snapshot for creation time; this will be important
when we start exposing the snapshot tree to userspace.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
7be0208fc9
bcachefs: add missing __GFP_NOWARN
...
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
d7e77f53e9
bcachefs: opts->compression can now also be applied in the background
...
The "apply this compression method in the background" paths now use the
compression option if background_compression is not set; this means that
setting or changing the compression option will cause existing data to
be compressed accordingly in the background.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Kent Overstreet
ec4edd7b9d
bcachefs: Prep work for variable size btree node buffers
...
bcachefs btree nodes are big - typically 256k - and btree roots are
pinned in memory. As we're now up to 18 btrees, we now have significant
memory overhead in mostly empty btree roots.
And in the future we're going to start enforcing that certain btree node
boundaries exist, to solve lock contention issues - analagous to XFS's
AGIs.
Thus, we need to start allocating smaller btree node buffers when we
can. This patch changes code that refers to the filesystem constant
c->opts.btree_node_size to refer to the btree node buffer size -
btree_buf_bytes() - where appropriate.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Su Yue
2acc59dd88
bcachefs: grab s_umount only if snapshotting
...
When I was testing mongodb over bcachefs with compression,
there is a lockdep warning when snapshotting mongodb data volume.
$ cat test.sh
prog=bcachefs
$prog subvolume create /mnt/data
$prog subvolume create /mnt/data/snapshots
while true;do
$prog subvolume snapshot /mnt/data /mnt/data/snapshots/$(date +%s)
sleep 1s
done
$ cat /etc/mongodb.conf
systemLog:
destination: file
logAppend: true
path: /mnt/data/mongod.log
storage:
dbPath: /mnt/data/
lockdep reports:
[ 3437.452330] ======================================================
[ 3437.452750] WARNING: possible circular locking dependency detected
[ 3437.453168] 6.7.0-rc7-custom+ #85 Tainted: G E
[ 3437.453562] ------------------------------------------------------
[ 3437.453981] bcachefs/35533 is trying to acquire lock:
[ 3437.454325] ffffa0a02b2b1418 (sb_writers#10){.+.+}-{0:0}, at: filename_create+0x62/0x190
[ 3437.454875]
but task is already holding lock:
[ 3437.455268] ffffa0a02b2b10e0 (&type->s_umount_key#48){.+.+}-{3:3}, at: bch2_fs_file_ioctl+0x232/0xc90 [bcachefs]
[ 3437.456009]
which lock already depends on the new lock.
[ 3437.456553]
the existing dependency chain (in reverse order) is:
[ 3437.457054]
-> #3 (&type->s_umount_key#48){.+.+}-{3:3}:
[ 3437.457507] down_read+0x3e/0x170
[ 3437.457772] bch2_fs_file_ioctl+0x232/0xc90 [bcachefs]
[ 3437.458206] __x64_sys_ioctl+0x93/0xd0
[ 3437.458498] do_syscall_64+0x42/0xf0
[ 3437.458779] entry_SYSCALL_64_after_hwframe+0x6e/0x76
[ 3437.459155]
-> #2 (&c->snapshot_create_lock){++++}-{3:3}:
[ 3437.459615] down_read+0x3e/0x170
[ 3437.459878] bch2_truncate+0x82/0x110 [bcachefs]
[ 3437.460276] bchfs_truncate+0x254/0x3c0 [bcachefs]
[ 3437.460686] notify_change+0x1f1/0x4a0
[ 3437.461283] do_truncate+0x7f/0xd0
[ 3437.461555] path_openat+0xa57/0xce0
[ 3437.461836] do_filp_open+0xb4/0x160
[ 3437.462116] do_sys_openat2+0x91/0xc0
[ 3437.462402] __x64_sys_openat+0x53/0xa0
[ 3437.462701] do_syscall_64+0x42/0xf0
[ 3437.462982] entry_SYSCALL_64_after_hwframe+0x6e/0x76
[ 3437.463359]
-> #1 (&sb->s_type->i_mutex_key#15){+.+.}-{3:3}:
[ 3437.463843] down_write+0x3b/0xc0
[ 3437.464223] bch2_write_iter+0x5b/0xcc0 [bcachefs]
[ 3437.464493] vfs_write+0x21b/0x4c0
[ 3437.464653] ksys_write+0x69/0xf0
[ 3437.464839] do_syscall_64+0x42/0xf0
[ 3437.465009] entry_SYSCALL_64_after_hwframe+0x6e/0x76
[ 3437.465231]
-> #0 (sb_writers#10){.+.+}-{0:0}:
[ 3437.465471] __lock_acquire+0x1455/0x21b0
[ 3437.465656] lock_acquire+0xc6/0x2b0
[ 3437.465822] mnt_want_write+0x46/0x1a0
[ 3437.465996] filename_create+0x62/0x190
[ 3437.466175] user_path_create+0x2d/0x50
[ 3437.466352] bch2_fs_file_ioctl+0x2ec/0xc90 [bcachefs]
[ 3437.466617] __x64_sys_ioctl+0x93/0xd0
[ 3437.466791] do_syscall_64+0x42/0xf0
[ 3437.466957] entry_SYSCALL_64_after_hwframe+0x6e/0x76
[ 3437.467180]
other info that might help us debug this:
[ 3437.469670] 2 locks held by bcachefs/35533:
other info that might help us debug this:
[ 3437.467507] Chain exists of:
sb_writers#10 --> &c->snapshot_create_lock --> &type->s_umount_key#48
[ 3437.467979] Possible unsafe locking scenario:
[ 3437.468223] CPU0 CPU1
[ 3437.468405] ---- ----
[ 3437.468585] rlock(&type->s_umount_key#48);
[ 3437.468758] lock(&c->snapshot_create_lock);
[ 3437.469030] lock(&type->s_umount_key#48);
[ 3437.469291] rlock(sb_writers#10);
[ 3437.469434]
*** DEADLOCK ***
[ 3437.469670] 2 locks held by bcachefs/35533:
[ 3437.469838] #0 : ffffa0a02ce00a88 (&c->snapshot_create_lock){++++}-{3:3}, at: bch2_fs_file_ioctl+0x1e3/0xc90 [bcachefs]
[ 3437.470294] #1 : ffffa0a02b2b10e0 (&type->s_umount_key#48){.+.+}-{3:3}, at: bch2_fs_file_ioctl+0x232/0xc90 [bcachefs]
[ 3437.470744]
stack backtrace:
[ 3437.470922] CPU: 7 PID: 35533 Comm: bcachefs Kdump: loaded Tainted: G E 6.7.0-rc7-custom+ #85
[ 3437.471313] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014
[ 3437.471694] Call Trace:
[ 3437.471795] <TASK>
[ 3437.471884] dump_stack_lvl+0x57/0x90
[ 3437.472035] check_noncircular+0x132/0x150
[ 3437.472202] __lock_acquire+0x1455/0x21b0
[ 3437.472369] lock_acquire+0xc6/0x2b0
[ 3437.472518] ? filename_create+0x62/0x190
[ 3437.472683] ? lock_is_held_type+0x97/0x110
[ 3437.472856] mnt_want_write+0x46/0x1a0
[ 3437.473025] ? filename_create+0x62/0x190
[ 3437.473204] filename_create+0x62/0x190
[ 3437.473380] user_path_create+0x2d/0x50
[ 3437.473555] bch2_fs_file_ioctl+0x2ec/0xc90 [bcachefs]
[ 3437.473819] ? lock_acquire+0xc6/0x2b0
[ 3437.474002] ? __fget_files+0x2a/0x190
[ 3437.474195] ? __fget_files+0xbc/0x190
[ 3437.474380] ? lock_release+0xc5/0x270
[ 3437.474567] ? __x64_sys_ioctl+0x93/0xd0
[ 3437.474764] ? __pfx_bch2_fs_file_ioctl+0x10/0x10 [bcachefs]
[ 3437.475090] __x64_sys_ioctl+0x93/0xd0
[ 3437.475277] do_syscall_64+0x42/0xf0
[ 3437.475454] entry_SYSCALL_64_after_hwframe+0x6e/0x76
[ 3437.475691] RIP: 0033:0x7f2743c313af
======================================================
In __bch2_ioctl_subvolume_create(), we grab s_umount unconditionally
and unlock it at the end of the function. There is a comment
"why do we need this lock?" about the lock coming from
commit 42d237320e ("bcachefs: Snapshot creation, deletion")
The reason is that __bch2_ioctl_subvolume_create() calls
sync_inodes_sb() which enforce locked s_umount to writeback all dirty
nodes before doing snapshot works.
Fix it by read locking s_umount for snapshotting only and unlocking
s_umount after sync_inodes_sb().
Signed-off-by: Su Yue <glass.su@suse.com >
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00
Su Yue
369acf97d6
bcachefs: kvfree bch_fs::snapshots in bch2_fs_snapshots_exit
...
bch_fs::snapshots is allocated by kvzalloc in __snapshot_t_mut.
It should be freed by kvfree not kfree.
Or umount will triger:
[ 406.829178 ] BUG: unable to handle page fault for address: ffffe7b487148008
[ 406.830676 ] #PF: supervisor read access in kernel mode
[ 406.831643 ] #PF: error_code(0x0000) - not-present page
[ 406.832487 ] PGD 0 P4D 0
[ 406.832898 ] Oops: 0000 [#1 ] PREEMPT SMP PTI
[ 406.833512 ] CPU: 2 PID: 1754 Comm: umount Kdump: loaded Tainted: G OE 6.7.0-rc7-custom+ #90
[ 406.834746 ] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Arch Linux 1.16.3-1-1 04/01/2014
[ 406.835796 ] RIP: 0010:kfree+0x62/0x140
[ 406.836197 ] Code: 80 48 01 d8 0f 82 e9 00 00 00 48 c7 c2 00 00 00 80 48 2b 15 78 9f 1f 01 48 01 d0 48 c1 e8 0c 48 c1 e0 06 48 03 05 56 9f 1f 01 <48> 8b 50 08 48 89 c7 f6 c2 01 0f 85 b0 00 00 00 66 90 48 8b 07 f6
[ 406.837810 ] RSP: 0018:ffffb9d641607e48 EFLAGS: 00010286
[ 406.838213 ] RAX: ffffe7b487148000 RBX: ffffb9d645200000 RCX: ffffb9d641607dc4
[ 406.838738 ] RDX: 000065bb00000000 RSI: ffffffffc0d88b84 RDI: ffffb9d645200000
[ 406.839217 ] RBP: ffff9a4625d00068 R08: 0000000000000001 R09: 0000000000000001
[ 406.839650 ] R10: 0000000000000001 R11: 000000000000001f R12: ffff9a4625d4da80
[ 406.840055 ] R13: ffff9a4625d00000 R14: ffffffffc0e2eb20 R15: 0000000000000000
[ 406.840451 ] FS: 00007f0a264ffb80(0000) GS:ffff9a4e2d500000(0000) knlGS:0000000000000000
[ 406.840851 ] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 406.841125 ] CR2: ffffe7b487148008 CR3: 000000018c4d2000 CR4: 00000000000006f0
[ 406.841464 ] Call Trace:
[ 406.841583 ] <TASK>
[ 406.841682 ] ? __die+0x1f/0x70
[ 406.841828 ] ? page_fault_oops+0x159/0x470
[ 406.842014 ] ? fixup_exception+0x22/0x310
[ 406.842198 ] ? exc_page_fault+0x1ed/0x200
[ 406.842382 ] ? asm_exc_page_fault+0x22/0x30
[ 406.842574 ] ? bch2_fs_release+0x54/0x280 [bcachefs]
[ 406.842842 ] ? kfree+0x62/0x140
[ 406.842988 ] ? kfree+0x104/0x140
[ 406.843138 ] bch2_fs_release+0x54/0x280 [bcachefs]
[ 406.843390 ] kobject_put+0xb7/0x170
[ 406.843552 ] deactivate_locked_super+0x2f/0xa0
[ 406.843756 ] cleanup_mnt+0xba/0x150
[ 406.843917 ] task_work_run+0x59/0xa0
[ 406.844083 ] exit_to_user_mode_prepare+0x197/0x1a0
[ 406.844302 ] syscall_exit_to_user_mode+0x16/0x40
[ 406.844510 ] do_syscall_64+0x4e/0xf0
[ 406.844675 ] entry_SYSCALL_64_after_hwframe+0x6e/0x76
[ 406.844907 ] RIP: 0033:0x7f0a2664e4fb
Signed-off-by: Su Yue <glass.su@suse.com >
Reviewed-by: Brian Foster <bfoster@redhat.com >
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev >
2024-01-21 13:27:10 -05:00