That is just a waste of time on APUs.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3704
Fixes: 216c1282dd ("drm/amdgpu: use GTT only as fallback for VRAM|GTT")
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit e8fc090d32)
Cc: stable@vger.kernel.org
If srcu_read_lock_lite() is used on a given srcu_struct structure, then
the grace-period processing must do synchronize_rcu() instead of smp_mb()
between the scans of the ->srcu_unlock_count[] and ->srcu_lock_count[]
counters. Currently, it does that by testing the SRCU_READ_FLAVOR_LITE
bit of the ->srcu_reader_flavor mask, which works well. But only if
the CPU running that srcu_struct structure's grace period has previously
executed srcu_read_lock_lite(), which might not be the case, especially
just after that srcu_struct structure has been created and initialized.
This commit therefore updates the srcu_readers_unlock_idx() function
to OR together the ->srcu_reader_flavor masks from all CPUs, and
then make the srcu_readers_active_idx_check() function that test the
SRCU_READ_FLAVOR_LITE bit in the resulting mask.
Note that the srcu_readers_unlock_idx() function is already scanning all
the CPUs to sum up the ->srcu_unlock_count[] fields and that this is on
the grace-period slow path, hence no concerns about the small amount of
extra work.
Reported-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Closes: https://lore.kernel.org/all/d07e8f4a-d5ff-4c8e-8e61-50db285c57e9@amd.com/
Fixes: c0f08d6b5a61 ("srcu: Add srcu_read_lock_lite() and srcu_read_unlock_lite()")
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
The srcu_read_unlock_lite() function invokes __srcu_read_unlock() instead
of __srcu_read_unlock_lite(), which means that it is doing an unnecessary
smp_mb(). This is harmless other than the performance degradation.
This commit therefore switches to __srcu_read_unlock_lite().
Reported-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Closes: https://lore.kernel.org/all/d07e8f4a-d5ff-4c8e-8e61-50db285c57e9@amd.com/
Fixes: c0f08d6b5a61 ("srcu: Add srcu_read_lock_lite() and srcu_read_unlock_lite()")
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
- A change from Andrew Davis to convert i.MX6 PM code to use new
sys-off API
-----BEGIN PGP SIGNATURE-----
iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmcoe/MUHHNoYXduZ3Vv
QGtlcm5lbC5vcmcACgkQUFdYWoewfM58Ogf/Z3+r8M479tEnIkCMMy64Fpl7KlTJ
LvEZGChV7kaqTrwcE5HzW1sVbccNZbBVtXICjOfyleRI251dsxr3/c0DcduWxNM1
Ss10x7yavWReJUCscLDiIDMKA6IIGR6z3V5BJUWj43iVdImIGWLgoJwbbWwKWn07
qoc+S38gcws5JUSZtahEEIaOv98x8olOrFxKV5x0zMYK7tvD83rpmvxFFJFnbiXN
DlPykFvIY42+G1QpHCiND0JzPpLAN9XZE62Rpt045OMKswJFTJR6+Wo0cpsCYIJE
COOyTukXW1xgnYtsP2YL/Wpj40hk+bIr7WAu6GnT2ES3OIjwQNgyFsjyqA==
=Q548
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz01oACgkQYKtH/8kJ
UifZ4A//bf7ctofN4CBUtdwpS4FeQKgwVQzs4naI5t6idP2EmWSfPBeVOxwKpTB9
6bKSuK2iVq3qf+o7rQC4RasHDylzGN442hVOXVs5h0rIYjQ3k5DXsMCk7VYzO+qZ
8ycx5hFr6j5XNCweMyVc/QVITiwo4iIUKJ89xa1fvHyvB5zgB5vyTA0oyUFnyp2w
Rv1c/9ovL3A5+lunTO35gpgW6qHf12Z4r1ihdMIpRy4JmHjwzXzBPS43AkBcC5ed
qb8G4EHjFO1xcFuNcumvbvSZqGgsoUBiDS0kvWuvpRjAsmRNKb56XN7LEbTVvl0h
Fgi5mnstWewpomswo7vEhT/PytqCB3+klkaozkXYjmParLrKXhU6k2+xuBfgn0ge
VaZnijGyorV8cRmDFka2UDwyBdFmDrFHELiP35NWvHaKIfnulJQ3TrFKwWf4M8a+
F3kPcp0faSJusFebm8YDIXJPkeG3MhcT7KyXFwhJTpXtBMJgqtxtttwT4VkRld0l
gCC8FJvTX+YjqJ8wPz3/HEBxBnvbgg5jotOTdcS3Z/3ooLCVONMlU+hDQ0RFCxSe
BFuYYkyNA5wvknWMgv8W024q6VVRut5quwFdgMibAcK1EH31o4V8USQKGT7h9vpJ
cPkdIxCys4FJkrN54wTMfw16KvqOHhWFsIqXdPWr74gwKvlXkp4=
=IX9G
-----END PGP SIGNATURE-----
Merge tag 'imx-soc-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/arm
i.MX SoC changes for 6.13:
- A change from Andrew Davis to convert i.MX6 PM code to use new
sys-off API
* tag 'imx-soc-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
ARM: imx: Switch to new sys-off handler API
Link: https://lore.kernel.org/r/20241104090055.1881860-2-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
please pull the following:
- Linus adds support for the debug UART on BCM6846 (BCMBCA) platform
- Florian dros the custom init_irq() callback which does the same thing
as the standard irqchip_init()
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmcfCrEACgkQh9CWnEQH
BwRxBxAArVZ/cjrpMTvmNi9qgoZaT6Qtp5+fMdATSbIA6+O1lW+04anmGliH4ntm
gTsrchds8c3+Uf78rMWcI4rwztInRb7k2tjtWsH1S6Z+xWwaC050AVNvlQP66QJJ
N/S5WMTtROVE3ZXLENGQLdeTUvjoZjfvydUCReOsH1CX8aqnKNGzUjEW6O7mPtAc
1wWpQnZ/9BVEikcnKhcWouS5MkXejwbOO7YIbpQfUQCHOUjuSj5QAfZSZfNZpVOJ
OHtTS0Ukw3Ejcd8zNYI8+zBzNMyhuwnbKmMaE7CMK8PyfU1gx9Gp/0dQUunTx1eJ
Fj6QyzZ5Tw4U/Li4O9g90X+rdcCsuAjhDW1uf7SyaBTuSChCDrtrYcjXiNxnWOLs
vJiZOzj5VhHJNEKgVeJSGi17ZmXIqxOCKeMEVoG3N6430/tz5OsN8GlQlyZXsEe3
PWG9LsHrG78zSQs3bP8nzkW0yVmErvhoyaNXfL3EY/+4QnYgSn7tQG4L+ztIG93W
fC+TBz/zN3+cs9TpXBcnRK/Bv7+CSQGWvsqikPL7+zM0eshtyFwKzAUAM4ox0kaN
Es9f8Y6sjbRKu4J7n9cUHXzudh3El3P9fE47+oTLJwL8AL2H865A/EALYs6qaEW0
uTx7S4IskKn8hvV5UmBX10JXG6Vet3b5EfWPGULf9QuKcH+IcKc=
=IKb0
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz0sQACgkQYKtH/8kJ
Uife1g/9Gv6grB9m9KP3bu631sptFXPAAUHXRAxRzIbX46pSVBVNGxtcvTp07Og0
1Ise+WgJNReMW9JZplZGg7YubpfEbA0hLskOHBR7oJWQ4R2NvvKdx1bJB+oIo87h
UnlW+AeX4RlXVyfu4GkNXPHlWNnSU166njGJ7oqk6d9ExZMJZw31bBqVL6bZrKSe
VJyNr9iqKJ7upfFl0ldY9N6pL5ubZxWz54ni55HPtSe4BaCtfGoo4zM2SxDZiVPE
jbIhU/2GfOUysWdoxoZIQDqL8gyqC/tb2W1DDtQUgYmIK2WPiaqEtrBeot2tYE+6
UbldlaUsVmwAGtj367dyz8g45cIlcMLKQuasFSS2LYl4+YgUxqujXxvxvxWNTvYc
8PE72ZgzrOuTvOJPI5sFO0XTrsN3MbeJSKmsWQda3imZ3B2Zyc2mxV9tZCBsDw3O
3S+2dui3T4oppGLqUtqt6oocVVtf86lTSQHaVGlakFQ/Wo3uLRprvcluXjbQL4Qm
VS8qJ84cYgw7kxzWUwzBcUK2NdUDo+lExpAqSUUkSJOBIt0ey/7TWB2bE8u1NJ5y
PByGOuPQYzFBHvKHQcVOHADNyMEEkNRTwlYeblmA0WkwmtfxX6dY8yeR+v1d4PjC
T1ctBNOPUSewVKypbVZT1lQ4TtIN7t+MDKYXeHJD06/yU/6XYg0=
=pE/r
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-6.13/soc' of https://github.com/Broadcom/stblinux into soc/arm
This pull request contains Broadcom ARM-based SoC changes for 6.13,
please pull the following:
- Linus adds support for the debug UART on BCM6846 (BCMBCA) platform
- Florian dros the custom init_irq() callback which does the same thing
as the standard irqchip_init()
* tag 'arm-soc/for-6.13/soc' of https://github.com/Broadcom/stblinux:
ARM: bcm: brcmstb: Drop custom init_irq callback
ARM: bcm: Support BCMBCA debug UART
Link: https://lore.kernel.org/r/20241028035449.734504-2-florian.fainelli@broadcom.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
There is a strapping issue on NBIO 7.7.0 that can lead to spurious PME
events while in the D0 state.
Co-developed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://lore.kernel.org/r/20241112161142.28974-1-mario.limonciello@amd.com
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
That is just a waste of time on APUs.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3704
Fixes: 216c1282dd ("drm/amdgpu: use GTT only as fallback for VRAM|GTT")
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
- Enable Battery Backup Function (VBATTB) and RTC support for the
RZ/G3S SoC and the RZ/G3S SMARC SoM.
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZyjGoAAKCRCKwlD9ZEnx
cNneAPwMpcOT+xNkIHv3DAdOML2LEPEJlSW0NVjL51xV8FdNKgD+PqNQjo7E54QK
RqeJwTxiAxiSZQoe9vCOZ3Fx/DTnfA8=
=PPxK
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz0hsACgkQYKtH/8kJ
UidqpBAArgPtM8HDE67Xn9whNezu4MPBkE54T7a9/7nBUIhlkEET+DFJr45T7k93
IWESaD9ycW09l8V969Wz5iohTLQew0+Nm8rXPy/JL8JiKOU3JRohdXxxCaFZAhPZ
Vo+6USQK9ZeA47EcAhVVWRNriMRYNjlwbCQ4qR0P3A+HfKMo1bZGwJBlz2/Suub9
twQA2rhc1V+a8Ja6Yl9Qxb2Wb7vplLNG8Q/X9KmelYtLgG3bl15/2O7AcYox9yYi
72YgvsjO3bOCULder1muiZdR/WWkf11v918AENGHfqZHbdEPDNzFv47E/Wj0dnFz
/yrPfwqnnFKeg9r7Ly8yX8+t5Ha8OmyVfqB14MngQaiRRqLR2EqwMzxiYGpY8LL7
iLcNiYN2bFocBrSsGZm8cnJ25bBrEyU2urRB+M4iaIfPAPVBhu6XIBI1y+yuhw9d
F7rexA6iO6IKa98rd/QghP2WfK2hnGpDbJO/TXJWyrpov1YNlx7IoyUhnU6erSsO
cF4CeCYCPP4pnHoNERDDcOghL5eLkKxv8tmMp84J7rfdsqtyEEfbkySkHuHbxYsk
Uf9j5Br9o6asJfmGXBjP5GsEBjZlB8Jcnf0JSfvPIGB2gktu//eKhzfmk9FYTNv3
tcIYBrv+OYRrUInFrz4mbvf4y/VRrqs0gWLjn6w/UpRsSJkG8/o=
=UmbS
-----END PGP SIGNATURE-----
Merge tag 'renesas-arm-defconfig-for-v6.13-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/defconfig
Renesas ARM defconfig updates for v6.13
- Enable Battery Backup Function (VBATTB) and RTC support for the
RZ/G3S SoC and the RZ/G3S SMARC SoM.
* tag 'renesas-arm-defconfig-for-v6.13-tag1' of https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
arm64: defconfig: Enable VBATTB clock and Renesas RTCA-3
Link: https://lore.kernel.org/r/cover.1730726154.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- Enable BD71828 regulator and NXPUART Bluetooth driver support in
imx_v6_v7_defconfig (needed by Kobo Clara 2E device)
-----BEGIN PGP SIGNATURE-----
iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmcojA0UHHNoYXduZ3Vv
QGtlcm5lbC5vcmcACgkQUFdYWoewfM5PTAgAuIjJWSs48S1ITX67Y3T8ZeaKTpcc
gkfy2D/2VF39gWSfWGyFFQBUToBInu5WZQmUX/z8tKeEKuKneEh1YxSDyWdH0Dop
+VmSXcNotemQAvTirc9n6XixxH6seouIeZYvHYW/KwMcfrhZc3F2ALsKI+40NkAp
5v6JVRmRjmS0+FrMR2MqPDvrfoRzO6ENbKs1Y+wjOEvCld6AaLHGInSGW0+UmB8b
UzFdg7m+NBHGGZ3eTWIhkXh8vOkJ1o3WERV6it8GPVevsJg9X9eKo7m9HICPwVeV
I6EFpmAq7kLS4U8+BpuqcnGOzm8CBl5JVEg76Qe1RqlzZlz3JGlUbSEZ2Q==
=moI9
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz0f0ACgkQYKtH/8kJ
Uifd5Q/6A6h66NLDqDOpsTnQHGxMXYdWPyPnd+R9/tpiCyB8rijuBlPNJYeTATyB
5RYeQilAjtWRJBB9Bg67lFAQZC/orID4nAnO05gHlxi+dGjiUtdxSIXnplt+8vYE
9vDjNFBakL6jhWL65Bj5thL0Ijvm75Mk3/ttAqrtsrB7FLyV0XqV4NWEr510PvgM
Zb35YnzUS83ukZ1d1vXOexrzaq+GaMdKvJlu7olAvZEiPeTxZWF3lgl0HY21ZoOx
/viyvDQVA1aG0pInvXxxLv9mzPNMoMreEgHpPlXVunAsQAkRYgWS737PQHer9JEi
J6OG9D/bNUj/GqVsbTpk74QWMranMhbD7ICA1X+DoWYm5WNm6PSydIFjSfTNOCP8
lLZueyce1+bMmeu406L4YpGMMJXZcPdTYuNwipkj72InBasgoFcly+kUgetWNFCt
s9M0XyrKvXd9Fq1TxMuADNzslWJulRXL6BrOopmTEgdUS8zoiXUgPUHqeP+2dUmk
bLvSEp+zHG3VrQOATLa6Ge6x+HHyLuj6IzFAgcPzXpBhLkcHdwkWWlYU8ESHG9NX
H+EngiKrNFlSZUChIMynPbjrcIXS8QQ1mU+V1XAUE8DQIGT7l3YcRlHatB2ozuw0
6FsEzcQ1PXHe+L5S4i7Nta+z0zoz75JZyg5D4De+4yu8wFq5qEY=
=iawl
-----END PGP SIGNATURE-----
Merge tag 'imx-defconfig-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/defconfig
i.MX defconfig changes for 6.13:
- Enable BD71828 regulator and NXPUART Bluetooth driver support in
imx_v6_v7_defconfig (needed by Kobo Clara 2E device)
* tag 'imx-defconfig-6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
ARM: imx_v6_v7_defconfig: Enable drivers for Kobo Clara 2E
Link: https://lore.kernel.org/r/20241104090055.1881860-6-shawnguo2@yeah.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- Florian aligns the ARM64 and ARM multi_v7_defconfig by enabling the
kernel with debugging symbols by default and using the toolchain's
dwarf version
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmcfCvQACgkQh9CWnEQH
BwR9wBAAvhEZTD0qYLCXwFk1rA3CV0y2RNiw9v+lD2MmBCjviqVKJ6WtyCVDttm8
15w83QfCEs8JnHv/iEYtsXKDM5GRb6Ukz9CJj1cSPZmwql6Te7mXTwzKcBqY9ZUV
t85OK4RgIYTohyL5wdncMpyF0axP0qjT2KSc5/wFiyoefaywLSeifvHZHpIh0xEK
004eVuAVGKt7lMwvC6/rd0e8+ZpC81Utueonkl/qRcU7YQmn1JkfFL8wAWMAMwXQ
FUDjwfIyPCXaf9ZN//FbEpFAjded5PmLL5zyWCEuYAMMtliwMlbr08CGw6z5UrD0
w8DNhSMC60K9bHKnVCCGvTpgS05GOFLuZ5iaQt+e+PUYUyx42qfG1RkJmB4/xU5i
ktfkId14ZeizI1e6dXg6k+B7RltVMASpcjt7p4K6/XP/jk5N0wN7WDBk1lNK4/XO
hlVLYbv4UJGOJlpsVIJBNg0pPzeI08p21uwZLDP916eoj9NbIjQq7IRrfTtO7qCe
wsVaE5E0zIk8nYw1GQXH6e/VZTQ9gnoHAUC+Kv7lstmDx2VSh5lq5R/s90mfyTj1
VxevabH6pxkQYzMm4BvWmjRzuty0MCCLO1+Jzr8399nwtPXOrW1V8f/q/5lakh1w
lX3e6wpEeoDxscRlGot9Tl4hrUAW/e1JEiApObMqvtiqVke/wjU=
=Dt31
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz0XkACgkQYKtH/8kJ
UielaQ/8DY6aGGtoE6a2PgGHW8F/3KILuva1fNFc42sL+bbZQxdxKbz5Bh0lUcrR
1AwDYgFVBI+yFi0cSDKhva0f9d66WhYeQRGNP2Bdqyg9B8Jk8Pr0TOf3f9fCgGGr
qISxCNr9vGI3auEjc+pfO4GesxOheQ8wyYDKuXsD9n7Ryxyvc8hpH2LMSZXr9t+Y
t1xHRtykt4pkt5wpbiXrJLmdmyK6oW5P6Ltw1sXkHRJRxkxrQmOEooz/XYE+iOHt
gQDaKwdtEL+zhgORa+diIn1p+l5x00VOq1e+qx7/LzJ4Oz/NMcLQUtIXbbp/LVZ5
6F0c2/FUbN/dJWOndzAwSjRAc6NrAFvKjNp9NnfT7JIO2t+MYOxbsp4hBPDPYNoZ
jK8Fy6Gsq9nyteEPNswm0Y3e0tkdR5EXmo5mnAIl8M0uJFg1EbvrLVeSwEuOAslV
sbjXa0uR2MpecDVrxFVJMtbQjw/rOngDz991+tjEmMR1q7sQXVOhJCQrz/Js0JgJ
p33o0lA1SZ4tki1VA3h7UmGiOllGFU5Df+sxGrqT/+sBtJFLbshVNePFQQecyp0O
yoGuDY8sIfu5JQ8Pa6QuB1FYo2kz3VPPhqPRzQ/uJu6MpIQJisybguJBaGQm5i9i
MAslPLtwRDUzL/W+WvNTfrzZlvyD0VavAVDNw2n0za93FWPkjio=
=1G37
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-6.13/defconfig' of https://github.com/Broadcom/stblinux into soc/defconfig
This pull request contains a multi_v7_defconfig update:
- Florian aligns the ARM64 and ARM multi_v7_defconfig by enabling the
kernel with debugging symbols by default and using the toolchain's
dwarf version
* tag 'arm-soc/for-6.13/defconfig' of https://github.com/Broadcom/stblinux:
ARM: multi_v7_defconfig: Enable debugging symbols by default
Link: https://lore.kernel.org/r/20241028035449.734504-1-florian.fainelli@broadcom.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
If a CPU runs throughout the stalled grace period without passing
through a quiescent state, RCU priority boosting cannot help.
The rcu_torture_boost_failed() function therefore prints a message
flagging the first such CPU. However, if the stall was instead due to
(for example) RCU's grace-period kthread being starved of CPU, there will
be no such CPU, causing rcu_check_boost_fail() to instead pass back -1
through its cpup CPU-pointer parameter.
Therefore, the current message complains about a mythical CPU -1.
This commit therefore checks for this situation, and notes that all CPUs
have passed through a quiescent state.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
This commit adds a guest_os_delay module parameter that extends warm-up
and cool-down the specified number of seconds before and after the series
of test runs. This allows the data-collection intervals from any given
rcuscale guest OSes to line up with active periods in the other rcuscale
guest OSes, and also allows the thermal warm-up period required to obtain
consistent results from one test to the next.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
The current affinity check works fine until there are more reader
processes than CPUs, at which point the affinity check is looking for
non-existent CPUs. This commit therefore applies the same modulus to
the check as is present in the set_cpus_allowed_ptr() call.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
In performance tests, it can be counter-productive to spread torture-test
guest OSes across sockets. Plus the experimenter might have ideas about
what CPUs individual guest OSes are to run on. This commit therefore
adds a --no-affinity parameter to kvm.sh to prevent it from running
taskset on its guest OSes.
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
HDMI output enabled on a huge number of rk3588 boards, now that we
have the ability to do that.
A new RK356x variant - the RK3566T (with lower max-frequencies). The
variant was already in use on some boards which then encoded those OPP
differences in the board files itself. This moves this to saner place.
Fixed-regulator nowadays has a preferred node-naming scheme set in the
binding and we had accumulated a number of different styles over time.
A change brings all of them in line for arm64 dts files.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmcyI5cQHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgdFWB/49UwXgbADgRWIzSpf7zeD4sp48VO3TD/nI
+ql7kTamzS+9UY9PEAMSO7OyiO+hiJgaTaRBYdn4SFAd3vVxpg8bIBLl/vxNoOBx
/Nw6ae6zJZ5xymbISsBXIkDyPWJ7hE9PCYrtvF9Y3zJc9WcrH+cXM26q0IKr/+s/
YXXAFvYwG3u4OuJPJ0ENteRJ/CdPFhPHFYBjzv6UYbsHusvxWxcPtL1JKhHBFc9A
1QhBasn1FjQNq12yWHUWpodNoWc2qU7htxsctsoV+Jfikh9ekB5zt8W7xZ5WOcdZ
PQYslr0Zpe6hOXgv727cKT9MAUlRU2gacNA+FB+UI67a3+VuQ6WN
=6FzO
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz0GoACgkQYKtH/8kJ
UidMuw//SLw4oponyaio2ILmRJwSnYkuCD+uaYVQehvo9F1RO+2Gddd4aOjBTUwb
ttxpr11f7NED5r54M37YebQpyrLZHdrkRc3inrVRWVPoRw9AWdy7toiGs59MDQRp
K0VitOBFAWoliYRRZ9Z/fj037uXZEB7eWW/UVKZAVk+Fp4lWrN3xcoNcB0ks7Bkj
9ifo0yn3izG0ENvN9XhWmfD/5xESzgKyWra1crCWMtTbNB/Rvy5ao83ghiWQPJyB
tYd3U6JfB9R9uNRvq+UHBDC9sjJKRe7HMj1rje51M0dj0BOaa/kkkML7uAnf5BsL
B0QnnIwCatYtMHKfRbzJbsuLDHXGTBrWjS2yWO+2S8l4iEzMcAahJLiOPA6mEPDH
AgEnfhxFI8QsJYqnIiKhbqbGpzLvL4gKfwGJFMTyoJQaFHinAQWuAAd9PQ+1UH2+
ar32gWC9wxMA04N3SEABaDjCQBV+UZpRG3EYYD0R2nh+qUYAHpcFhsh/j8fqiiy8
t0huegcCxpGHIi7cuOa3GuweswjFmhwbIXBsc6pp0RKiB2zc1bOOIXL5ubpZ1l/t
Tp81shdhC0NBuiLCTCE4ZQXr05dfB5HN6kqNt/zvMUDTZF/tU4Y45G/BQCnaADz8
PTZN95kMlsNKmmtGaXOiDcy430//NN9pW/LEemZeTeW3OgLOoQQ=
=hMi+
-----END PGP SIGNATURE-----
Merge tag 'v6.13-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
More new boards: Rock-5C, Banana Pi P2 Pro
HDMI output enabled on a huge number of rk3588 boards, now that we
have the ability to do that.
A new RK356x variant - the RK3566T (with lower max-frequencies). The
variant was already in use on some boards which then encoded those OPP
differences in the board files itself. This moves this to saner place.
Fixed-regulator nowadays has a preferred node-naming scheme set in the
binding and we had accumulated a number of different styles over time.
A change brings all of them in line for arm64 dts files.
* tag 'v6.13-rockchip-dts64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (24 commits)
arm64: dts: rockchip: use less broad pinctrl for pcie3x1 on Radxa E25
arm64: dts: rockchip: add Radxa ROCK 5C
dt-bindings: arm: rockchip: add Radxa ROCK 5C
arm64: dts: rockchip: orangepi-5-plus: Enable GPU
arm64: dts: rockchip: enable USB3 on NanoPC-T6
arm64: dts: rockchip: adapt regulator nodenames to preferred form
arm64: dts: rockchip: Enable HDMI display for rk3588 Cool Pi GenBook
arm64: dts: rockchip: Enable HDMI display for rk3588 Cool Pi 4B
arm64: dts: rockchip: Enable HDMI0 for rk3588 Cool Pi CM5 EVB
arm64: dts: rockchip: Enable HDMI on NanoPi R6C/R6S
arm64: dts: rockchip: Enable GPU on NanoPi R6C/R6S
arm64: dts: rockchip: Enable HDMI on Hardkernel ODROID-M2
arm64: dts: rockchip: Remove non-removable flag from sdmmc on rk3576-sige5
arm64: dts: rockchip: Enable HDMI0 on FriendlyElec CM3588 NAS
arm64: dts: rockchip: add Banana Pi P2 Pro board
dt-bindings: arm: rockchip: add Banana Pi P2 Pro board
arm64: dts: rockchip: Add new SoC dtsi for the RK3566T variant
arm64: dts: rockchip: Prepare RK356x SoC dtsi files for per-variant OPPs
arm64: dts: rockchip: Update CPU OPP voltages in RK356x SoC dtsi
arm64: dts: rockchip: Add OPP voltage ranges to RK3399 OP1 SoC dtsi
...
Link: https://lore.kernel.org/r/3313711.oiGErgHkdL@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This is for MES to limit only one process for the user queues
Signed-off-by: Shaoyun Liu <shaoyun.liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
binding. This gets all boards on the same state for Rockchip arm32-dts.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmcyH54QHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgQqLB/9wgQ7tMybGu8ruGGGVcuyDGq28yqp4F53l
2KlIZGKSv9zDmNq/uKQhGAnomQLv7zNPemr7iqDK2QeWmPPm5GclLuxnKe7GA7sL
FyQrWWMNgI2ruH+ms8c8LcjzhWR010Vb6sWA/kXBEezW78Y+7EYaPAVdji7ylVH7
o3wgq6GWvc3AGXV7OSjBFeU680snsnwg8rW1DVjUdWVdPNmMyiN4sQlYxGdbTQN/
Vu8rdtROv2qiVhO7KvHfyrwTms56qTon8b3amzmKlFnBGlWOv4svrbwklzL9s+ua
aPJe0GWvkGlt9vCnRnh7fi9zLdOWNv7G/DQwJT+r2rXlYCng3CtB
=onFR
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmcz0AQACgkQYKtH/8kJ
UidCuA//UXJ8LTdhUvr5uBde5DlXftiDYy9VlO6k1bMb+W7T0mGjeA6ysKENC588
8j5fUtmtCRO2nzD/pMp/A02mvi3ZH1ErLEzUZo7HKLjFgIVG0ZoVW31dRbDgkAbx
d9wCGC7BHNo681I2xsBucoZwM55mMyeSI/EALVg89V7QYyj9tSjyr7Wj834jMOPp
7cTL/ZVtSkyNIG3+JlFndEQPF2tsYRNclWUUjf2wuWkQm/C9lVr84oi1H8QWtZop
tEixFi/kppfV6HXxt2Odk2pWKs7wJivPBVXX1L4ch8rqXUnxigCBPsKm7hmOp7qd
oTIm6bUofYzRZEVexnTwYm+Cbazg5b+TsPoB48/SVXeOsV9MuNHSzzmd3nktJj40
pbDOXTu8IBB1TpGHMVcU6e4UyDySDlIZnHxLyZLh5Flmym51Ft+pcni7R2+QG++B
VZqkPJ3/UqHPeIYOVk0B/2jG6n/fzMwXQGMO9xusgDEYM7+bs7QjutpTSlVE4p6c
0EUxdsT0JmERyuNo4NfNwR4cBtPIpXASBdT7rxdQOGD5XRg2rEex0j66lk6Gty5+
TPQM+F9PEaqYCYjkuWWQXTKEJ/2gA67OiKuFu4ny5bUHuYJHxtTHSnaQnmRdobW+
c2I3o3oCdG2cYwSIUKgslGX115lhfwflG8xBHlyJKP7uyMyqcBw=
=3uQG
-----END PGP SIGNATURE-----
Merge tag 'v6.13-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
Fixed-regulator nowadays has preferred node-naming scheme set in the
binding. This gets all boards on the same state for Rockchip arm32-dts.
* tag 'v6.13-rockchip-dts32-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: rockchip: adapt regulator nodenames to preferred form
ARM: dts: rockchip: Add Relfor Saib board
dt-bindings: arm: rockchip: Add Relfor Saib board
dt-bindings: vendor-prefixes: Add Relfor labs
ARM: dts: rockchip: Add watchdog node for RV1126
dt-bindings: watchdog: rockchip: Add rockchip,rv1126-wdt string
Link: https://lore.kernel.org/r/6740039.4vTCxPXJkl@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
StarFive:
Support for the DeepComputing FML13V01, a Framework laptop compatible
with a JH7110. This board is fairly different to the more standard SBCs
offerings that the kernel already supports, so there's also some
refactoring of jh7110-common.dtsi to move out nodes unused on the new
board.
Spacemit:
A vendor prefix I grabbed from the basic support series, since its
dependencies are not yet ready but peripheral drivers have started being
merged.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZy3atgAKCRB4tDGHoIJi
0j5TAP94t5ZS+Twusvf5ll28KRGY3GWeFDquXgqSeb58PrXpvAEAmSMfmo4RtadB
Juh06Pu7ZiqWpQ0/StFcDboQqdZZLgM=
=K0KY
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmczz0AACgkQYKtH/8kJ
Uid6RxAAqDyGogK3WkI7NkecA8wjaRuOms7aLfsVLDaJOrB76Ef+R4GIzJyP+Blp
X1cOydidIo0kn1VyIZfNXLFYN710SfKUs5sKGF1Io/qC4WPCW8psfWiFlLHboH/e
2/m7mOFY8OrzSDXgNmqaouAq/BXMlE1HO2q4CxrDhYu9zxr0XI7hjdGHnL737n0z
x/U/0FY+s5Jqtm4ilFuK9eAs8uwzpvOhGfsdXYidJE3RiVC0TWgbzt0/pMlM74Sr
XAIpnNSEpyUZGAApVKnta64Z/or4i/Hvaa4t0AdfUFPC9lxPaXM83KSQlLmXUZDW
ADpMirltR2PEWgLON5xW88lEJRNem6VPa20h4x5mClle5yEIrdcfeh42jMdqwkNA
1/UwzbLFx8NVNNd4WdykALsrEOupVo4WO6QX0wWxnp60JpmHef0/hQ/eSVs3zlAS
LBqQ+Ycd/yWh6BYjBjhIOxvE3pyYduO26beGZFaC/8MPnbmoJ+hX+wvGk9Mh27pH
gNjqSJeGOSdqkaLhizkTmvjFiottmS2+4mCIj2yKrNV74baW7yaatMEgBShBhMuJ
nU1HbGNxNZdWfDYH9arXvHdXSFL0E5NqgftPqiLYGU1gXudWNHAp8hOgBR1o5vBh
4khWIPjp2M767LUZgICGdzDL51GRTttY/zoMwuC6/NWbdxB10Hc=
=jxMB
-----END PGP SIGNATURE-----
Merge tag 'riscv-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux into soc/dt
RISC-V Devicetrees for v6.13
StarFive:
Support for the DeepComputing FML13V01, a Framework laptop compatible
with a JH7110. This board is fairly different to the more standard SBCs
offerings that the kernel already supports, so there's also some
refactoring of jh7110-common.dtsi to move out nodes unused on the new
board.
Spacemit:
A vendor prefix I grabbed from the basic support series, since its
dependencies are not yet ready but peripheral drivers have started being
merged.
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
* tag 'riscv-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux:
riscv: dts: starfive: add DeepComputing FML13V01 board device tree
dt-bindings: riscv: starfive: add deepcomputing,fml13v01
dt-bindings: vendor: add deepcomputing
riscv: dts: starfive: jh7110-common: move usb0 config to board dts
riscv: dts: starfive: jh7110-common: revised device node
dt-bindings: vendor-prefixes: add spacemit
Link: https://lore.kernel.org/r/20241108-washboard-material-6b9ff196063d@spud
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add support for I3C device in the tmp108 driver to handle the P3T1085
sensor. Register the I3C device driver to enable I3C functionality for the
sensor.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Message-ID: <20241112-p3t1085-v4-2-a1334314b1e6@nxp.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Add help function tmp108_common_probe() to pave road to support i3c for
P3T1085(NXP) chip.
Use dev_err_probe() to simplify the code.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Message-ID: <20241112-p3t1085-v4-1-a1334314b1e6@nxp.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
According to the ACPI specification, the _PMD method is optional. The
acpi_power_meter driver shouldn't fail to load if the platform has no
_PMD method.
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Message-ID: <20241112021228.22914-1-lihuisong@huawei.com>
[groeck: Reworded commit description]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
DIV_ROUND_CLOSEST() after kstrtoul() results in an overflow if a large
number such as 18446744073709551615 is provided by the user.
Fix it by reordering clamp_val() and DIV_ROUND_CLOSEST() operations.
Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
Fixes: c3963bc0a0 ("hwmon: (nct6775) Split core and platform driver")
Message-ID: <7d5084cea33f7c0fd0578c59adfff71f93de94d9.1731375425.git.xiaopei01@kylinos.cn>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Delta AFC0612DB-F00 fan has to be set to at least 30% PWM duty cycle
to spin up from a stopped state, and can be afterward throttled down to
lower PWM duty cycle. Introduce support for operating such fans which
need to start at higher PWM duty cycle first and can slow down next.
Introduce two new DT properties, "fan-stop-to-start-percent" and
"fan-stop-to-start-us". The former describes the minimum percent
of fan RPM at which it will surely spin up from stopped state. This
value can be found in the fan datasheet and can be converted to PWM
duty cycle easily. The "fan-stop-to-start-us" describes the minimum
time in microseconds for which the fan has to be set to stopped state
start RPM for the fan to surely spin up.
Adjust the PWM setting code such that if the PWM duty cycle is below
the minimum duty cycle needed by the fan to spin up from stopped state,
then first set the PWM duty cycle to the minimum duty cycle needed
by the fan to spin up from stopped state, then wait the time necessary
for the fan to spin up from stopped state, and finally set the PWM duty
cycle to the one desired by user.
Signed-off-by: Marek Vasut <marex@denx.de>
Message-ID: <20241106185925.223736-2-marex@denx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Delta AFC0612DB-F00 fan has to be set to at least 30% PWM duty cycle
to spin up from a stopped state, and can be afterward throttled down to
lower PWM duty cycle. Introduce support for operating such fans which
need to start at higher PWM duty cycle first and can slow down next.
Document two new DT properties, "fan-stop-to-start-percent" and
"fan-stop-to-start-usec". The former describes the minimum percent
of fan RPM at which it will surely spin up from stopped state. This
value can be found in the fan datasheet and can be converted to PWM
duty cycle easily. The "fan-stop-to-start-usec" describes the minimum
time in microseconds for which the fan has to be set to stopped state
start RPM for the fan to surely spin up.
Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Message-ID: <20241106185925.223736-1-marex@denx.de>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Add compatible string 'nxp,p3t1085' since p3t1085's register layout is the
same as tmp108.
The p3t1085 supports I3C interface.
Update document tmp108.rst and Kconfig's help context.
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Message-ID: <20241111-p3t1085-v3-2-bff511550aad@nxp.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
The register layout of P3T1085 is the same as ti,tmp108. Add compatible
string nxp,p3t1085 for it. The difference of P3T1085 is support I3C.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Message-ID: <20241111-p3t1085-v3-1-bff511550aad@nxp.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Fix some typos in hwmon/sch5627 and hwmon/max31827 reported by
checkpatch.pl. These changes are purely documentation cleanup with no
functional modifications.
Signed-off-by: Abhinav Saxena <xandfury@gmail.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Message-ID: <20241108212201.144482-1-xandfury@gmail.com>
[groeck: Updated subject]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This prevents use of this driver with ACPI via PRP0001 and
is an example of an anti pattern I'm trying to remove from
the kernel. Hence drop from this driver.
Also switch of.h for mod_devicetable.h include given use of
struct of_device_id which is defined in that header.
Reported-by: Konstantin Aladyshev <aladyshev22@gmail.com>
Closes: https://lore.kernel.org/r/CACSj6VW7WKv5tiAkLCvSujENJvXq1Mc7_7vtkQsRSz3JGY0i3Q@mail.gmail.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Message-ID: <20241108124348.1392473-1-andriy.shevchenko@linux.intel.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Fix several grammatical issues in the fan speed trip points documentation:
- Replace awkward "which % the fan should run at at" construction with
clearer "that specify the percentage at which"
- Fix incorrect "is chip depended" to "are chip dependent" for correct
verb agreement and adjective form
- Improve readability by reorganizing first sentence and separating the
complex explanation into simpler parts
- Add hyphen before "see" to improve readability
- Remove redundant "at" in temperature description
No functional changes, documentation only.
Signed-off-by: Abhinav Saxena <xandfury@gmail.com>
Message-ID: <20241107013849.47833-1-xandfury@gmail.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
pmbus_write_smbalert_mask() ignores the errors if the chip can't set
smbalert mask the standard way. It is not necessarily a problem for the irq
support if the chip is otherwise properly setup but it may leave an
uncleared fault behind.
pmbus_core will pick the fault on the next register_check(). The register
check will fails regardless of the actual register support by the chip.
This leads to missing attributes or debugfs entries for chips that should
provide them.
We cannot rely on register_check() as PMBUS_SMBALERT_MASK may be read-only.
Unconditionally clear the page fault after setting PMBUS_SMBALERT_MASK to
avoid the problem.
Suggested-by: Guenter Roeck <linux@roeck-us.net>
Fixes: 221819ca4c ("hwmon: (pmbus/core) Add interrupt support")
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Message-ID: <20241105-tps25990-v4-5-0e312ac70b62@baylibre.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Use _pmbus_read_byte_data() rather than calling smbus directly to check
the write protection status. This give a chance to device implementing
write protection differently to report back on the actual write protection
status.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Message-ID: <20241105-tps25990-v4-2-0e312ac70b62@baylibre.com>
[groeck: Fix page parameter of _pmbus_read_byte_data()]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Eduard Zingerman says:
====================
selftests/bpf: fix for bpf_signal stalls, watchdog for test_progs
Test case 'bpf_signal' had been recently reported to stall, both on
the mailing list [1] and CI [2]. The stall is caused by CPU cycles
perf event not being delivered within expected time frame, before test
process enters system call and waits indefinitely.
This patch-set addresses the issue in several ways:
- A watchdog timer is added to test_progs.c runner:
- it prints current sub-test name to stderr if sub-test takes longer
than 10 seconds to finish;
- it terminates process executing sub-test if sub-test takes longer
than 120 seconds to finish.
- The test case is updated to await perf event notification with a
timeout and a few retries, this serves two purposes:
- busy loops longer to increase the time frame for CPU cycles event
generation/delivery;
- makes a timeout, not stall, a worst case scenario.
- The test case is updated to lower frequency of perf events, as high
frequency of such events caused events generation throttling,
which in turn delayed events delivery by amount of time sufficient
to cause test case failure.
Note:
librt pthread-based timer API is used to implement watchdog timer.
I chose this API over SIGALRM because signal handler execution
within test process context was sufficient to trigger perf event
delivery for send_signal/send_signal_nmi_thread_remote test case,
w/o any additional changes. Thus I concluded that SIGALRM based
implementation interferes with tests execution.
[1] https://lore.kernel.org/bpf/CAP01T75OUeE8E-Lw9df84dm8ag2YmHW619f1DmPSVZ5_O89+Bg@mail.gmail.com/
[2] https://github.com/kernel-patches/bpf/actions/runs/11791485271/job/32843996871
====================
Link: https://lore.kernel.org/r/20241112110906.3045278-1-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Similar to commit [1] sample perf events less often in
test_send_signal_nmi(). This should reduce perf events throttling.
[1] 7015843afc ("selftests/bpf: Fix send_signal test with nested CONFIG_PARAVIRT")
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20241112110906.3045278-5-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
The following invocation:
$ t1=send_signal/send_signal_perf_thread_remote \
t2=send_signal/send_signal_nmi_thread_remote \
./test_progs -t $t1,$t2
Leads to send_signal_nmi_thread_remote to be stuck
on a line 180:
/* wait for result */
err = read(pipe_c2p[0], buf, 1);
In this test case:
- perf event PERF_COUNT_HW_CPU_CYCLES is created for parent process;
- BPF program is attached to perf event, and sends a signal to child
process when event occurs;
- parent program burns some CPU in busy loop and calls read() to get
notification from child that it received a signal.
The perf event is declared with .sample_period = 1.
This forces perf to throttle events, and under some unclear conditions
the event does not always occur while parent is in busy loop.
After parent enters read() system call CPU cycles event won't be
generated for parent anymore. Thus, if perf event had not occurred
already the test is stuck.
This commit updates the parent to wait for notification with a timeout,
doing several iterations of busy loop + read_with_timeout().
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20241112110906.3045278-4-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
int read_with_timeout(int fd, char *buf, size_t count, long usec)
As a regular read(2), but allows to specify a timeout in
micro-seconds. Returns -EAGAIN on timeout.
Implemented using select().
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20241112110906.3045278-3-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit provides a watchdog timer that sets a limit of how long a
single sub-test could run:
- if sub-test runs for 10 seconds, the name of the test is printed
(currently the name of the test is printed only after it finishes);
- if sub-test runs for 120 seconds, the running thread is terminated
with SIGSEGV (to trigger crash_handler() and get a stack trace).
Specifically:
- the timer is armed on each call to run_one_test();
- re-armed at each call to test__start_subtest();
- is stopped when exiting run_one_test().
Default timeout could be overridden using '-w' or '--watchdog-timeout'
options. Value 0 can be used to turn the timer off.
Here is an example execution:
$ ./ssh-exec.sh ./test_progs -w 5 -t \
send_signal/send_signal_perf_thread_remote,send_signal/send_signal_nmi_thread_remote
WATCHDOG: test case send_signal/send_signal_nmi_thread_remote executes for 5 seconds, terminating with SIGSEGV
Caught signal #11!
Stack trace:
./test_progs(crash_handler+0x1f)[0x9049ef]
/lib64/libc.so.6(+0x40d00)[0x7f1f1184fd00]
/lib64/libc.so.6(read+0x4a)[0x7f1f1191cc4a]
./test_progs[0x720dd3]
./test_progs[0x71ef7a]
./test_progs(test_send_signal+0x1db)[0x71edeb]
./test_progs[0x9066c5]
./test_progs(main+0x5ed)[0x9054ad]
/lib64/libc.so.6(+0x2a088)[0x7f1f11839088]
/lib64/libc.so.6(__libc_start_main+0x8b)[0x7f1f1183914b]
./test_progs(_start+0x25)[0x527385]
#292 send_signal:FAIL
test_send_signal_common:PASS:reading pipe 0 nsec
test_send_signal_common:PASS:reading pipe error: size 0 0 nsec
test_send_signal_common:PASS:incorrect result 0 nsec
test_send_signal_common:PASS:pipe_write 0 nsec
test_send_signal_common:PASS:setpriority 0 nsec
Timer is implemented using timer_{create,start} librt API.
Internally librt uses pthreads for SIGEV_THREAD timers,
so this change adds a background timer thread to the test process.
Because of this a few checks in tests 'bpf_iter' and 'iters'
need an update to account for an extra thread.
For parallelized scenario the watchdog is also created for each worker
fork. If one of the workers gets stuck, it would be terminated by a
watchdog. In theory, this might lead to a scenario when all worker
threads are exhausted, however this should not be a problem for
server_main(), as it would exit with some of the tests not run.
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://lore.kernel.org/r/20241112110906.3045278-2-eddyz87@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Generic Fixups/Cleanups:
- Cleanup bootph-* tags to limit to leaf nodes only
- clock IDs for MCSPI instances fixed up across J7xx family
- Misc indentation and whitespace cleanup across dts
New SoC
- J742s2 which is a cutdown of existing J784s4 and uses same EVM
SoC Specific features and Fixes:
- eQEP (counter) support across AM64/AM62/AM62A
AM64
- M4F Remoteproc support
- stats collection support for ICSSGs via ti,pa-stats
- Add PCIe EP overlays
AM65
- stats collection support for ICSSGs via ti,pa-stats
AM62:
- M4F Remoteproc support
- eMMC/SD TAP value updates
- dtbs_check fixes for opp_efuse_table
AM62A
- 1.4GHz opp entry
AM62P
- 1.4GHz opp entry
J7200
- Add PCIe EP overlays
- Pinmux node reg range fixes
Board Specific
AM62
- am62 verdin ivy carrier board support
- am625-verdin TPM device support
- am62 verdin ivy board support
- Beagleplay Mikrobus PWM header support
- am62-verdin increase SD regulator startup delay
AM64
- am642-phyboard-electra-rdk trickle charger support
- am64-phy* drop buswidth from sdhci nodes
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEEyRC2zAhGcGjrhiNExEYeRXyRFuMFAmcp9KAQHHZpZ25lc2hy
QHRpLmNvbQAKCRDERh5FfJEW40WlCAClaeiGzfL3a9da/KtAeee7H7Q+XWbjZod9
rysiexvCisp+aG9XUnHgS+zuiyYXHBRwpXVnOF5tKxrcOvmxloqOLr/5ZjWCtJKT
efCrgAmZfpwnBXlNQzUwYVmJ5j1hOTVowa01uMVZd5vGwMa+GUjaZe+jakbI+EOn
4F7dlNW6YTnwFvpyIiFCkVd3vXLNYNmpsbOT+ax6+uuRzDJ7z4QFQuWNvHLy/c9r
HG6AUXLR8EB2+MhJVSp41mrh8N4Tdwledtbs+VbzMMvMzlErMpx9AEeqOqp9cmo7
vNGXu5K/Abaozp1PryaxH1r0OPpKxL1nyUZ5xT9FpuXI0NpTxAuk
=E9iT
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmczzh8ACgkQYKtH/8kJ
Uid1jg//YlvVspOI+zVkGezhyToEvTxefDWs7pMmceo62Xu++i7XxIvZ/C9yUz7O
gPJ4rp/pXGMkQuwZSkTH21DwGpXJC2xTbZ10meuSwiiDXys25VnYcQO3/PxqcY5j
JEib8S0FVLqPBYwn6WCjKtznD+RKUNLiMbN/6vWvZfJMbpCVysJDP2LYTYWAmsm8
0gvyJU45xxYN+lhMWqjQXdtbycjTCidT5ZRIedvvV3sp5XwLOzNZLXgnezqdrCIV
EHCYZjai70atPAcUeBOjpr6RFN2NqKXx610vKdBNxjvltBYGCxk5vovYXJOjoxBl
uWZz/uq4LIxUfRIov31vEE1BtOeP1/xorowSL6PTrYLT863D3kQ+OyqIBr/LJlsk
S6OubK5dVJBJnuwohvpb/Vsqg3GuiHVRoRUAWGvfO27b7K1J752Zo7wJW4So/d+v
39N0k240xjqunfcDL/A/08FPliCUfx1qma3PQQc7brPDVyOo9o94yrbZxpbJpjsn
uRoIVnty9Zi2JAL+aYAAy3t0LFxQ2hDlCDIvcz9NhHQzpmc4FWzdRKbqptgnGaLf
2ifDZPfNqYK/TTQT6QwGDI4EfQNTTqLIEJUo6FigyVaS3tyvKcUYyP0m/5zAk6GD
Jo3F519d/mDCPTtJAtm5O0HPsXXvO4Z3NnIfVeoDPeU+zDk6wNw=
=ngkz
-----END PGP SIGNATURE-----
Merge tag 'ti-k3-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt
TI K3 device tree updates for v6.13
Generic Fixups/Cleanups:
- Cleanup bootph-* tags to limit to leaf nodes only
- clock IDs for MCSPI instances fixed up across J7xx family
- Misc indentation and whitespace cleanup across dts
New SoC
- J742s2 which is a cutdown of existing J784s4 and uses same EVM
SoC Specific features and Fixes:
- eQEP (counter) support across AM64/AM62/AM62A
AM64
- M4F Remoteproc support
- stats collection support for ICSSGs via ti,pa-stats
- Add PCIe EP overlays
AM65
- stats collection support for ICSSGs via ti,pa-stats
AM62:
- M4F Remoteproc support
- eMMC/SD TAP value updates
- dtbs_check fixes for opp_efuse_table
AM62A
- 1.4GHz opp entry
AM62P
- 1.4GHz opp entry
J7200
- Add PCIe EP overlays
- Pinmux node reg range fixes
Board Specific
AM62
- am62 verdin ivy carrier board support
- am625-verdin TPM device support
- am62 verdin ivy board support
- Beagleplay Mikrobus PWM header support
- am62-verdin increase SD regulator startup delay
AM64
- am642-phyboard-electra-rdk trickle charger support
- am64-phy* drop buswidth from sdhci nodes
* tag 'ti-k3-dt-for-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux: (61 commits)
arm64: dts: ti: k3-am62: use opp_efuse_table for opp-table syscon
arm64: dts: ti: k3-am62p5-sk: add 1.4ghz opp entry
arm64: dts: ti: k3-am62p: add opp frequencies
arm64: dts: ti: k3-am62a7-sk: add 1.4ghz opp entry
arm64: dts: ti: k3-am62a: add opp frequencies
arm64: dts: ti: k3-am62-verdin: Add Ivy carrier board
arm64: dts: ti: k3-am62-verdin: add label to som adc node
dt-bindings: arm: ti: Add verdin am62 ivy board
arm64: dts: ti: k3-am642-phyboard-electra-rdk: Enable trickle charger
arm64: dts: ti: k3-am64-phycore-som: Add M4F remoteproc nodes
arm64: dts: ti: k3-am62-phycore-som: Add M4F remoteproc nodes
arm64: dts: ti: minor whitespace cleanup
arm64: dts: ti: k3-am62x-phyboard-lyra: Fix indentation in audio-card
arm64: dts: ti: k3-am642-phyboard-electra-rdk: Fix bus-width property in MMC nodes
arm64: dts: ti: k3-am64-phycore-som: Fix bus-width property in MMC nodes
arm64: dts: ti: k3-am642-evm: Add overlay for PCIe0 EP mode
arm64: dts: ti: k3-j7200-evm: Add overlay for PCIE1 Endpoint Mode
arm64: dts: ti: k3-am62-main: Update otap/itap values
arm64: dts: ti: k3-am625-beagleplay: Enable MikroBUS PWM
arm64: dts: ti: k3-am62-verdin: Fix SD regulator startup delay
...
Link: https://lore.kernel.org/r/3ded4795-2186-4e06-bda6-9c9a65a3fdb9@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>