bisecting cause commit starting from 181964e619b76ae2e71bcdc6001cf977bec4cf6e building syzkaller on cb93dc6ac64225e09f44bac6c6cce1dae1b248b0 testing commit 181964e619b76ae2e71bcdc6001cf977bec4cf6e with gcc (GCC) 8.1.0 kernel signature: 0a317a807461ff47eeb2d7d3088ee317210f1e3d912dc6f56503952eb8de1fdd run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: INFO: rcu detected stall in tc_modify_qdisc run #6: crashed: INFO: rcu detected stall in tc_modify_qdisc run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine testing release v5.7 testing commit 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162 with gcc (GCC) 8.1.0 kernel signature: 52cb8949a3fccca27c92823b1c6d364bcc7ffd9cb2c5bf1a3fde95e776dee726 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: no output from test machine run #5: crashed: no output from test machine run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine testing release v5.6 testing commit 7111951b8d4973bda27ff663f2cf18b663d15b48 with gcc (GCC) 8.1.0 kernel signature: 3c18f6b4f4b1e20e10866a29ed0608a6b7f88c84860f43927a31a53c128bcd87 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: no output from test machine run #5: crashed: no output from test machine run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine testing release v5.5 testing commit d5226fa6dbae0569ee43ecfc08bdcd6770fc4755 with gcc (GCC) 8.1.0 kernel signature: 27900d856edeec8650bce2e43221ecb250d9a2131a773bb4b01df2078a51c568 all runs: crashed: BUG: sleeping function called from invalid context in cpus_read_lock testing release v5.4 testing commit 219d54332a09e8d8741c1e1982f5eae56099de85 with gcc (GCC) 8.1.0 kernel signature: 295dc543aff0d4bbb809cee679eb60cbd9e6246d8cafe7bcc21cb910a153ba4f all runs: crashed: BUG: sleeping function called from invalid context in cpus_read_lock testing release v5.3 testing commit 4d856f72c10ecb060868ed10ff1b1453943fc6c8 with gcc (GCC) 8.1.0 kernel signature: 8c28a148a3282a2535cbd59e7173d08d546a68202910d0d27a92df7548ec2d8c all runs: crashed: BUG: sleeping function called from invalid context in cpus_read_lock testing release v5.2 testing commit 0ecfebd2b52404ae0c54a878c872bb93363ada36 with gcc (GCC) 8.1.0 kernel signature: 76089dfbc27e2b74faca7eb968f087a8bdceafd3ac07966c50353222c1ba0779 all runs: crashed: BUG: sleeping function called from invalid context in cpus_read_lock testing release v5.1 testing commit e93c9c99a629c61837d5a7fc2120cd2b6c70dbdd with gcc (GCC) 8.1.0 kernel signature: 19986124b8df35b73228f85a6d3da29b2a3ac31b5f8d57dff8edeb8ff7a301d8 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: INFO: rcu detected stall in tc_modify_qdisc run #6: crashed: INFO: rcu detected stall in tc_modify_qdisc run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine testing release v5.0 testing commit 1c163f4c7b3f621efff9b28a47abb36f7378d783 with gcc (GCC) 8.1.0 kernel signature: 9f6ba80ec707dda088ab7a2d15ec2211888e27b397176062c4bee374560ee4da run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: no output from test machine run #5: crashed: no output from test machine run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: BUG: soft lockup in smp_call_function testing release v4.20 testing commit 8fe28cb58bcb235034b64cbbb7550a8a43fd88be with gcc (GCC) 8.1.0 kernel signature: d5f7719a6d1c570d7e243d639457b390b2db293a5858f43167680f85dcc276aa run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: no output from test machine run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: BUG: soft lockup in smp_call_function run #9: crashed: BUG: soft lockup in smp_call_function testing release v4.19 testing commit 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d with gcc (GCC) 8.1.0 kernel signature: fe908c409d146430d864dd4ba244e6f2ec6fe126987636808b51e8ef266fde12 all runs: OK # git bisect start 8fe28cb58bcb235034b64cbbb7550a8a43fd88be 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d Bisecting: 7499 revisions left to test after this (roughly 13 steps) [ec9c166434595382be3babf266febf876327774d] Merge tag 'mips_fixes_4.20_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux testing commit ec9c166434595382be3babf266febf876327774d with gcc (GCC) 8.1.0 kernel signature: 6e701e1d1d2d05f4fdef296b6656ffad29d4d1c5892e0c56db911a3470162377 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: INFO: rcu detected stall in tc_modify_qdisc run #6: crashed: INFO: rcu detected stall in tc_modify_qdisc run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine # git bisect bad ec9c166434595382be3babf266febf876327774d Bisecting: 3252 revisions left to test after this (roughly 12 steps) [50b825d7e87f4cff7070df6eb26390152bb29537] Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next testing commit 50b825d7e87f4cff7070df6eb26390152bb29537 with gcc (GCC) 8.1.0 kernel signature: 2a24e2d542e9cfc5822c72b664f14e6258fee0ecc581f74a097798ad5bab8187 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: no output from test machine run #5: crashed: no output from test machine run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine # git bisect bad 50b825d7e87f4cff7070df6eb26390152bb29537 Bisecting: 2120 revisions left to test after this (roughly 11 steps) [99e9acd85ccbdc8f5785f9e961d4956e96bd6aa5] Merge tag 'mlx5-updates-2018-10-17' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux testing commit 99e9acd85ccbdc8f5785f9e961d4956e96bd6aa5 with gcc (GCC) 8.1.0 kernel signature: c0c38c9924150f94a1c62fe66da10eb08f4e42ed66fd49153722e14241238724 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: no output from test machine run #5: crashed: no output from test machine run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine # git bisect bad 99e9acd85ccbdc8f5785f9e961d4956e96bd6aa5 Bisecting: 989 revisions left to test after this (roughly 10 steps) [d793fb46822ff7408a1767313ef6b12e811baa55] Merge tag 'wireless-drivers-next-for-davem-2018-10-02' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next testing commit d793fb46822ff7408a1767313ef6b12e811baa55 with gcc (GCC) 8.1.0 kernel signature: 1a7e2399e817171a73917064762ff28181a9d360b948daddbe3d3c536812031c all runs: OK # git bisect good d793fb46822ff7408a1767313ef6b12e811baa55 Bisecting: 461 revisions left to test after this (roughly 9 steps) [071a234ad744ab9a1e9c948874d5f646a2964734] Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next testing commit 071a234ad744ab9a1e9c948874d5f646a2964734 with gcc (GCC) 8.1.0 kernel signature: 37cb850b8eaff3a4a97062860f77d62c3adef6a9244d85bebf5d37787e875526 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in corrupted run #5: crashed: INFO: rcu detected stall in corrupted run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: INFO: rcu detected stall in corrupted run #9: crashed: no output from test machine # git bisect bad 071a234ad744ab9a1e9c948874d5f646a2964734 Bisecting: 275 revisions left to test after this (roughly 8 steps) [5580d810560da33804053ae3bca13110c9a8d5e8] Merge tag 'mt76-for-kvalo-2018-10-05' of https://github.com/nbd168/wireless testing commit 5580d810560da33804053ae3bca13110c9a8d5e8 with gcc (GCC) 8.1.0 kernel signature: de05af90d18df8dab28be6bc77dcc776dc5b83c13c8932c77177f1ee4c3de5cc all runs: OK # git bisect good 5580d810560da33804053ae3bca13110c9a8d5e8 Bisecting: 137 revisions left to test after this (roughly 7 steps) [b245d32c995868879f361d252f32bb8a2ca33deb] net: sched: cls_u32: keep track of knodes count in tc_u_common testing commit b245d32c995868879f361d252f32bb8a2ca33deb with gcc (GCC) 8.1.0 kernel signature: acc4072d199290a4264eab6b582bdca72d481f4f34e341289c9237c3f87c7d5c run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: INFO: rcu detected stall in tc_modify_qdisc run #6: crashed: no output from test machine run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine # git bisect bad b245d32c995868879f361d252f32bb8a2ca33deb Bisecting: 68 revisions left to test after this (roughly 6 steps) [cc5f0eb2164f9aa11fe631f8d905192e0233e262] net: Move free of fib_metrics to helper testing commit cc5f0eb2164f9aa11fe631f8d905192e0233e262 with gcc (GCC) 8.1.0 kernel signature: bd77496b617c5c3702ce52090d735df239a89977ca7580f1f018786d00b75d0f run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: INFO: rcu detected stall in tc_modify_qdisc run #6: crashed: INFO: rcu detected stall in tc_modify_qdisc run #7: crashed: INFO: rcu detected stall in tc_modify_qdisc run #8: crashed: INFO: rcu detected stall in tc_modify_qdisc run #9: crashed: no output from test machine # git bisect bad cc5f0eb2164f9aa11fe631f8d905192e0233e262 Bisecting: 33 revisions left to test after this (roughly 5 steps) [6a5e6b118092dfddc545d95911d66d6562f05281] Merge branch 'ieee802154-for-davem-2018-10-04' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan-next testing commit 6a5e6b118092dfddc545d95911d66d6562f05281 with gcc (GCC) 8.1.0 kernel signature: db80949a593221433f6c35c030506bb7017f9c43224c1ad225f0008ce1fe9753 all runs: OK # git bisect good 6a5e6b118092dfddc545d95911d66d6562f05281 Bisecting: 15 revisions left to test after this (roughly 4 steps) [9e50727f0e710e25e9fd740c9f43f51b37757773] Merge tag 'mlx5-updates-2018-10-03' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux testing commit 9e50727f0e710e25e9fd740c9f43f51b37757773 with gcc (GCC) 8.1.0 kernel signature: 918c287ed2139c64cdfdb051806a7f8a2dbb44a75e7d20853e60b3a405936003 all runs: OK # git bisect good 9e50727f0e710e25e9fd740c9f43f51b37757773 Bisecting: 7 revisions left to test after this (roughly 3 steps) [2dc0865e9ac7150e2d3b29afdc32d04b99f37902] bnxt_en: Add a driver specific gre_ver_check devlink parameter. testing commit 2dc0865e9ac7150e2d3b29afdc32d04b99f37902 with gcc (GCC) 8.1.0 kernel signature: 6bbf86af66a6d63dbc7bc022fd61b5f5639a8414fbf5cbc9ad9878bd559375bf all runs: OK # git bisect good 2dc0865e9ac7150e2d3b29afdc32d04b99f37902 Bisecting: 3 revisions left to test after this (roughly 2 steps) [5a781ccbd19e4664babcbe4b4ead7aa2b9283d22] tc: Add support for configuring the taprio scheduler testing commit 5a781ccbd19e4664babcbe4b4ead7aa2b9283d22 with gcc (GCC) 8.1.0 kernel signature: e7b3883b1e62a6f2161ed00435b3fdec007e2463d53fc1a056a21db3da795ae8 run #0: crashed: INFO: rcu detected stall in tc_modify_qdisc run #1: crashed: INFO: rcu detected stall in tc_modify_qdisc run #2: crashed: INFO: rcu detected stall in tc_modify_qdisc run #3: crashed: INFO: rcu detected stall in tc_modify_qdisc run #4: crashed: INFO: rcu detected stall in tc_modify_qdisc run #5: crashed: INFO: rcu detected stall in tc_modify_qdisc run #6: crashed: INFO: rcu detected stall in corrupted run #7: crashed: no output from test machine run #8: crashed: no output from test machine run #9: crashed: no output from test machine # git bisect bad 5a781ccbd19e4664babcbe4b4ead7aa2b9283d22 Bisecting: 1 revision left to test after this (roughly 1 step) [53e233ea2fa9fa7e2405e95070981f327d90e519] devlink: Add Documentation/networking/devlink-params-bnxt.txt testing commit 53e233ea2fa9fa7e2405e95070981f327d90e519 with gcc (GCC) 8.1.0 kernel signature: f6e6d84e16b5035e98c786a6706ca3b6f2a6c0f2c08b17eb034ff5ac55774f91 all runs: OK # git bisect good 53e233ea2fa9fa7e2405e95070981f327d90e519 Bisecting: 0 revisions left to test after this (roughly 0 steps) [34f8c58f47797efa25ba212001514ef31e153134] Merge branch 'bnxt_en-devlink-param-updates' testing commit 34f8c58f47797efa25ba212001514ef31e153134 with gcc (GCC) 8.1.0 kernel signature: 51581d9194f29a3337b1cb951bb134a52dc7965dcf089274b606fb3abe3c7fbd all runs: OK # git bisect good 34f8c58f47797efa25ba212001514ef31e153134 5a781ccbd19e4664babcbe4b4ead7aa2b9283d22 is the first bad commit commit 5a781ccbd19e4664babcbe4b4ead7aa2b9283d22 Author: Vinicius Costa Gomes Date: Fri Sep 28 17:59:43 2018 -0700 tc: Add support for configuring the taprio scheduler This traffic scheduler allows traffic classes states (transmission allowed/not allowed, in the simplest case) to be scheduled, according to a pre-generated time sequence. This is the basis of the IEEE 802.1Qbv specification. Example configuration: tc qdisc replace dev enp3s0 parent root handle 100 taprio \ num_tc 3 \ map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \ queues 1@0 1@1 2@2 \ base-time 1528743495910289987 \ sched-entry S 01 300000 \ sched-entry S 02 300000 \ sched-entry S 04 300000 \ clockid CLOCK_TAI The configuration format is similar to mqprio. The main difference is the presence of a schedule, built by multiple "sched-entry" definitions, each entry has the following format: sched-entry The only supported is "S", which means "SetGateStates", following the IEEE 802.1Qbv-2015 definition (Table 8-6). is a bitmask where each bit is a associated with a traffic class, so bit 0 (the least significant bit) being "on" means that traffic class 0 is "active" for that schedule entry. is a time duration in nanoseconds that specifies for how long that state defined by and should be held before moving to the next entry. This schedule is circular, that is, after the last entry is executed it starts from the first one, indefinitely. The other parameters can be defined as follows: - base-time: specifies the instant when the schedule starts, if 'base-time' is a time in the past, the schedule will start at base-time + (N * cycle-time) where N is the smallest integer so the resulting time is greater than "now", and "cycle-time" is the sum of all the intervals of the entries in the schedule; - clockid: specifies the reference clock to be used; The parameters should be similar to what the IEEE 802.1Q family of specification defines. Signed-off-by: Vinicius Costa Gomes Signed-off-by: David S. Miller include/uapi/linux/pkt_sched.h | 46 ++ net/sched/Kconfig | 11 + net/sched/Makefile | 1 + net/sched/sch_taprio.c | 962 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1020 insertions(+) create mode 100644 net/sched/sch_taprio.c culprit signature: e7b3883b1e62a6f2161ed00435b3fdec007e2463d53fc1a056a21db3da795ae8 parent signature: 51581d9194f29a3337b1cb951bb134a52dc7965dcf089274b606fb3abe3c7fbd revisions tested: 25, total time: 5h51m17.877110923s (build: 2h29m25.860396327s, test: 3h18m9.20479942s) first bad commit: 5a781ccbd19e4664babcbe4b4ead7aa2b9283d22 tc: Add support for configuring the taprio scheduler cc: ["davem@davemloft.net" "jhs@mojatatu.com" "jiri@resnulli.us" "linux-kernel@vger.kernel.org" "netdev@vger.kernel.org" "vinicius.gomes@intel.com" "xiyou.wangcong@gmail.com"] crash: no output from test machine