Re: [PATCH net 1/4] selftests/tc-testing: Fix Error: Specified qdisc kind is unknown.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon 12 Jun 2023 at 18:35, shaozhengchao <shaozhengchao@xxxxxxxxxx> wrote:
> On 2023/6/12 15:57, Vlad Buslov wrote:
>> All TEQL tests assume that sch_teql module is loaded. Load module in tdc.sh
>> before running qdisc tests.
>> Fixes following example error when running tests via tdc.sh for all TEQL
>> tests:
>>   # $ sudo ./tdc.py -d eth2 -e 84a0
>>   #  -- ns/SubPlugin.__init__
>>   # Test 84a0: Create TEQL with default setting
>>   # exit: 2
>>   # exit: 0
>>   # Error: Specified qdisc kind is unknown.
>>   #
>>   # -----> teardown stage *** Could not execute: "$TC qdisc del dev $DUMMY handle 1: root"
>>   #
>>   # -----> teardown stage *** Error message: "Error: Invalid handle.
>>   # "
>>   # returncode 2; expected [0]
>>   #
>>   # -----> teardown stage *** Aborting test run.
>>   #
>>   # <_io.BufferedReader name=3> *** stdout ***
>>   #
>>   # <_io.BufferedReader name=5> *** stderr ***
>>   # "-----> teardown stage" did not complete successfully
>>   # Exception <class '__main__.PluginMgrTestFail'> ('teardown', 'Error: Specified qdisc kind is unknown.\n', '"-----> teardown stage" did not complete successfully') (caught in test_runner, running test 2 84a0 Create TEQL with default setting stage teardown)
>>   # ---------------
>>   # traceback
>>   #   File "/images/src/linux/tools/testing/selftests/tc-testing/./tdc.py", line 495, in test_runner
>>   #     res = run_one_test(pm, args, index, tidx)
>>   #   File "/images/src/linux/tools/testing/selftests/tc-testing/./tdc.py", line 434, in run_one_test
>>   #     prepare_env(args, pm, 'teardown', '-----> teardown stage', tidx['teardown'], procout)
>>   #   File "/images/src/linux/tools/testing/selftests/tc-testing/./tdc.py", line 245, in prepare_env
>>   #     raise PluginMgrTestFail(
>>   # ---------------
>>   # accumulated output for this test:
>>   # Error: Specified qdisc kind is unknown.
>>   #
>>   # ---------------
>>   #
>>   # All test results:
>>   #
>>   # 1..1
>>   # ok 1 84a0 - Create TEQL with default setting # skipped - "-----> teardown stage" did not complete successfully
>> Fixes: cc62fbe114c9 ("selftests/tc-testing: add selftests for teql qdisc")
>> Signed-off-by: Vlad Buslov <vladbu@xxxxxxxxxx>
>> ---
>>   tools/testing/selftests/tc-testing/tdc.sh | 1 +
>>   1 file changed, 1 insertion(+)
>> diff --git a/tools/testing/selftests/tc-testing/tdc.sh
>> b/tools/testing/selftests/tc-testing/tdc.sh
>> index afb0cd86fa3d..eb357bd7923c 100755
>> --- a/tools/testing/selftests/tc-testing/tdc.sh
>> +++ b/tools/testing/selftests/tc-testing/tdc.sh
>> @@ -2,5 +2,6 @@
>>   # SPDX-License-Identifier: GPL-2.0
>>     modprobe netdevsim
>> +modprobe sch_teql
> I think not only the sch_teql module needs to be imported, but all test
> modules need to be imported before testing. Modifying the config file
> looks more appropriate.

All other modules are automatically loaded when first
qdisc/action/classifier is instantiated via their respective APIs. The
problem with two modules that are manually inserted here is that
netdevsim-related tests expect /sys/bus/netdevsim/new_device to exist
(which only exists if netdevsim module has been manually loaded) and
specific command format "$TC qdisc add dev $DUMMY handle 1: root teql0"
failing since 'telq0', again, only exists when sch_telq is loaded.

Overall, I added modprobe here not for theoretical correctness sake but
because running tdc.sh on cold system causes error included in the
commit message for me. I don't get any other errors related to necessary
kernel modules not being loaded for any other kinds of tc tests.

>>   ./tdc.py -c actions --nobuildebpf
>>   ./tdc.py -c qdisc




[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux