mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-07 01:53:34 +08:00
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
b8d5f7c650
@ -437,34 +437,22 @@ config KERNEL_PROVE_LOCKING
|
|||||||
select KERNEL_DEBUG_KERNEL
|
select KERNEL_DEBUG_KERNEL
|
||||||
default n
|
default n
|
||||||
|
|
||||||
config KERNEL_LOCKUP_DETECTOR
|
config KERNEL_SOFTLOCKUP_DETECTOR
|
||||||
bool "Compile the kernel with detect Hard and Soft Lockups"
|
bool "Compile the kernel with detect Soft Lockups"
|
||||||
depends on KERNEL_DEBUG_KERNEL
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
help
|
help
|
||||||
Say Y here to enable the kernel to act as a watchdog to detect
|
Say Y here to enable the kernel to act as a watchdog to detect
|
||||||
hard and soft lockups.
|
soft lockups.
|
||||||
|
|
||||||
Softlockups are bugs that cause the kernel to loop in kernel
|
Softlockups are bugs that cause the kernel to loop in kernel
|
||||||
mode for more than 20 seconds, without giving other tasks a
|
mode for more than 20 seconds, without giving other tasks a
|
||||||
chance to run. The current stack trace is displayed upon
|
chance to run. The current stack trace is displayed upon
|
||||||
detection and the system will stay locked up.
|
detection and the system will stay locked up.
|
||||||
|
|
||||||
Hardlockups are bugs that cause the CPU to loop in kernel mode
|
|
||||||
for more than 10 seconds, without letting other interrupts have a
|
|
||||||
chance to run. The current stack trace is displayed upon detection
|
|
||||||
and the system will stay locked up.
|
|
||||||
|
|
||||||
The overhead should be minimal. A periodic hrtimer runs to
|
|
||||||
generate interrupts and kick the watchdog task every 4 seconds.
|
|
||||||
An NMI is generated every 10 seconds or so to check for hardlockups.
|
|
||||||
|
|
||||||
The frequency of hrtimer and NMI events and the soft and hard lockup
|
|
||||||
thresholds can be controlled through the sysctl watchdog_thresh.
|
|
||||||
|
|
||||||
config KERNEL_DETECT_HUNG_TASK
|
config KERNEL_DETECT_HUNG_TASK
|
||||||
bool "Compile the kernel with detect Hung Tasks"
|
bool "Compile the kernel with detect Hung Tasks"
|
||||||
depends on KERNEL_DEBUG_KERNEL
|
depends on KERNEL_DEBUG_KERNEL
|
||||||
default KERNEL_LOCKUP_DETECTOR
|
default KERNEL_SOFTLOCKUP_DETECTOR
|
||||||
help
|
help
|
||||||
Say Y here to enable the kernel to detect "hung tasks",
|
Say Y here to enable the kernel to detect "hung tasks",
|
||||||
which are bugs that cause the task to be stuck in
|
which are bugs that cause the task to be stuck in
|
||||||
|
@ -50,7 +50,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
|
|||||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||||
CONFIG_BLK_DEV_SD=y
|
CONFIG_BLK_DEV_SD=y
|
||||||
CONFIG_BLK_SCSI_REQUEST=y
|
CONFIG_BLK_SCSI_REQUEST=y
|
||||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
|
||||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||||
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
|
CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED=y
|
||||||
CONFIG_CC_HAS_KASAN_GENERIC=y
|
CONFIG_CC_HAS_KASAN_GENERIC=y
|
||||||
|
@ -0,0 +1,60 @@
|
|||||||
|
From 07c6f9805f12f1bb538ef165a092b300350384aa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
|
Date: Wed, 26 Feb 2020 17:14:21 +0000
|
||||||
|
Subject: [PATCH] net: switchdev: do not propagate bridge updates across
|
||||||
|
bridges
|
||||||
|
|
||||||
|
When configuring a tree of independent bridges, propagating changes
|
||||||
|
from the upper bridge across a bridge master to the lower bridge
|
||||||
|
ports brings surprises.
|
||||||
|
|
||||||
|
For example, a lower bridge may have vlan filtering enabled. It
|
||||||
|
may have a vlan interface attached to the bridge master, which may
|
||||||
|
then be incorporated into another bridge. As soon as the lower
|
||||||
|
bridge vlan interface is attached to the upper bridge, the lower
|
||||||
|
bridge has vlan filtering disabled.
|
||||||
|
|
||||||
|
This occurs because switchdev recursively applies its changes to
|
||||||
|
all lower devices no matter what.
|
||||||
|
|
||||||
|
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
|
||||||
|
Tested-by: Ido Schimmel <idosch@mellanox.com>
|
||||||
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
||||||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||||
|
---
|
||||||
|
net/switchdev/switchdev.c | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
--- a/net/switchdev/switchdev.c
|
||||||
|
+++ b/net/switchdev/switchdev.c
|
||||||
|
@@ -476,6 +476,9 @@ static int __switchdev_handle_port_obj_a
|
||||||
|
* necessary to go through this helper.
|
||||||
|
*/
|
||||||
|
netdev_for_each_lower_dev(dev, lower_dev, iter) {
|
||||||
|
+ if (netif_is_bridge_master(lower_dev))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
err = __switchdev_handle_port_obj_add(lower_dev, port_obj_info,
|
||||||
|
check_cb, add_cb);
|
||||||
|
if (err && err != -EOPNOTSUPP)
|
||||||
|
@@ -528,6 +531,9 @@ static int __switchdev_handle_port_obj_d
|
||||||
|
* necessary to go through this helper.
|
||||||
|
*/
|
||||||
|
netdev_for_each_lower_dev(dev, lower_dev, iter) {
|
||||||
|
+ if (netif_is_bridge_master(lower_dev))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
err = __switchdev_handle_port_obj_del(lower_dev, port_obj_info,
|
||||||
|
check_cb, del_cb);
|
||||||
|
if (err && err != -EOPNOTSUPP)
|
||||||
|
@@ -579,6 +585,9 @@ static int __switchdev_handle_port_attr_
|
||||||
|
* necessary to go through this helper.
|
||||||
|
*/
|
||||||
|
netdev_for_each_lower_dev(dev, lower_dev, iter) {
|
||||||
|
+ if (netif_is_bridge_master(lower_dev))
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
err = __switchdev_handle_port_attr_set(lower_dev, port_attr_info,
|
||||||
|
check_cb, set_cb);
|
||||||
|
if (err && err != -EOPNOTSUPP)
|
@ -644,6 +644,8 @@ CONFIG_BLOCK=y
|
|||||||
# CONFIG_BONDING is not set
|
# CONFIG_BONDING is not set
|
||||||
# CONFIG_BOOKE_WDT is not set
|
# CONFIG_BOOKE_WDT is not set
|
||||||
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
|
||||||
|
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||||
|
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||||
# CONFIG_BOOT_PRINTK_DELAY is not set
|
# CONFIG_BOOT_PRINTK_DELAY is not set
|
||||||
CONFIG_BOOT_RAW=y
|
CONFIG_BOOT_RAW=y
|
||||||
CONFIG_BPF=y
|
CONFIG_BPF=y
|
||||||
@ -1239,6 +1241,7 @@ CONFIG_DEBUG_KERNEL=y
|
|||||||
CONFIG_DEFAULT_CUBIC=y
|
CONFIG_DEFAULT_CUBIC=y
|
||||||
CONFIG_DEFAULT_DEADLINE=y
|
CONFIG_DEFAULT_DEADLINE=y
|
||||||
CONFIG_DEFAULT_HOSTNAME="(none)"
|
CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||||
|
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
||||||
CONFIG_DEFAULT_IOSCHED="deadline"
|
CONFIG_DEFAULT_IOSCHED="deadline"
|
||||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
|
||||||
# CONFIG_DEFAULT_NOOP is not set
|
# CONFIG_DEFAULT_NOOP is not set
|
||||||
|
@ -165,7 +165,7 @@
|
|||||||
|
|
||||||
partition@200000 {
|
partition@200000 {
|
||||||
label = "kernel1";
|
label = "kernel1";
|
||||||
reg = <0x200000 0x290000>;
|
reg = <0x200000 0x1400000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@490000 {
|
partition@490000 {
|
||||||
@ -175,7 +175,7 @@
|
|||||||
|
|
||||||
partition@1600000 {
|
partition@1600000 {
|
||||||
label = "kernel2";
|
label = "kernel2";
|
||||||
reg = <0x1600000 0x290000>;
|
reg = <0x1600000 0x1400000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@1890000 {
|
partition@1890000 {
|
||||||
|
@ -28,8 +28,9 @@
|
|||||||
|
|
||||||
partition@200000 {
|
partition@200000 {
|
||||||
- label = "kernel";
|
- label = "kernel";
|
||||||
|
- reg = <0x200000 0x2A0000>;
|
||||||
+ label = "kernel1";
|
+ label = "kernel1";
|
||||||
reg = <0x200000 0x2A0000>;
|
+ reg = <0x200000 0x1A00000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@4a0000 {
|
partition@4a0000 {
|
||||||
@ -40,8 +41,9 @@
|
|||||||
|
|
||||||
partition@1c00000 {
|
partition@1c00000 {
|
||||||
- label = "alt_kernel";
|
- label = "alt_kernel";
|
||||||
|
- reg = <0x1C00000 0x2A0000>;
|
||||||
+ label = "kernel2";
|
+ label = "kernel2";
|
||||||
reg = <0x1C00000 0x2A0000>;
|
+ reg = <0x1C00000 0x1A00000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
partition@1ea0000 {
|
partition@1ea0000 {
|
||||||
|
@ -104,7 +104,6 @@ CONFIG_BLK_MQ_PCI=y
|
|||||||
CONFIG_BLK_MQ_VIRTIO=y
|
CONFIG_BLK_MQ_VIRTIO=y
|
||||||
CONFIG_BLK_PM=y
|
CONFIG_BLK_PM=y
|
||||||
CONFIG_BLK_SCSI_REQUEST=y
|
CONFIG_BLK_SCSI_REQUEST=y
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
|
||||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||||
CONFIG_BOUNCE=y
|
CONFIG_BOUNCE=y
|
||||||
CONFIG_BRCMSTB_GISB_ARB=y
|
CONFIG_BRCMSTB_GISB_ARB=y
|
||||||
@ -202,7 +201,6 @@ CONFIG_DECOMPRESS_GZIP=y
|
|||||||
CONFIG_DECOMPRESS_LZMA=y
|
CONFIG_DECOMPRESS_LZMA=y
|
||||||
CONFIG_DECOMPRESS_LZO=y
|
CONFIG_DECOMPRESS_LZO=y
|
||||||
CONFIG_DECOMPRESS_XZ=y
|
CONFIG_DECOMPRESS_XZ=y
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
CONFIG_DETECT_HUNG_TASK=y
|
||||||
# CONFIG_DEVFREQ_GOV_PASSIVE is not set
|
# CONFIG_DEVFREQ_GOV_PASSIVE is not set
|
||||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||||
|
@ -130,7 +130,6 @@ CONFIG_BLK_MQ_PCI=y
|
|||||||
CONFIG_BLK_MQ_VIRTIO=y
|
CONFIG_BLK_MQ_VIRTIO=y
|
||||||
CONFIG_BLK_PM=y
|
CONFIG_BLK_PM=y
|
||||||
CONFIG_BLK_SCSI_REQUEST=y
|
CONFIG_BLK_SCSI_REQUEST=y
|
||||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
|
||||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||||
CONFIG_BSD_PROCESS_ACCT=y
|
CONFIG_BSD_PROCESS_ACCT=y
|
||||||
CONFIG_BSD_PROCESS_ACCT_V3=y
|
CONFIG_BSD_PROCESS_ACCT_V3=y
|
||||||
@ -224,7 +223,6 @@ CONFIG_DECOMPRESS_GZIP=y
|
|||||||
CONFIG_DECOMPRESS_LZMA=y
|
CONFIG_DECOMPRESS_LZMA=y
|
||||||
CONFIG_DECOMPRESS_LZO=y
|
CONFIG_DECOMPRESS_LZO=y
|
||||||
CONFIG_DECOMPRESS_XZ=y
|
CONFIG_DECOMPRESS_XZ=y
|
||||||
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
|
|
||||||
CONFIG_DETECT_HUNG_TASK=y
|
CONFIG_DETECT_HUNG_TASK=y
|
||||||
# CONFIG_DEVICE_THERMAL is not set
|
# CONFIG_DEVICE_THERMAL is not set
|
||||||
CONFIG_DEVTMPFS=y
|
CONFIG_DEVTMPFS=y
|
||||||
|
Loading…
x
Reference in New Issue
Block a user