selftests: netconsole: enable the targets created by the torture test
Subsystems (4)
Breno Leitao
maintainerPATCH 1/1 selftests: netconsole: enable the targets created by the torture test
create_and_delete_random_target() is meant to create, enable and remove targets while messages are sent, but it only creates and removes them. The helper it calls, _create_dynamic_target(), stopped enabling the target when the bonding test moved that step into create_dynamic_target().
Enable the targets again, so they come up while messages flow and are disabled before being removed. Like toggle_netcons_target(), ignore a failed enable, which would otherwise end the function and leave the targets behind. With a console per target, this also registers and unregisters their consoles under load.
--- tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh | 1 + 1 file changed, 1 insertion(+)
tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh +1 -0
@@ -46,6 +46,7 @@ create_and_delete_random_target() { # Basic population so the target can come up _create_dynamic_target "${FORMAT}" "${RND_TARGET_PATH}" + echo 1 > "${RND_TARGET_PATH}"/enabled 2> /dev/null || true done echo "netconsole selftest: ${COUNT} additional targets were created" > /dev/kmsg
---
base-commit: b3dfbde62cf1981c4638939c159dfd087b7a72e9
change-id: 20261110-netcons_selftest_fix-4cbf633295ef
Best regards,
Signature · 1 line
Breno Leitao <[email protected]>
Hi Breno,
Quoted 35 lines · Breno Leitao
create_and_delete_random_target()is meant to create, enable and remove targets while messages are sent, but it only creates and removes them. The helper it calls,_create_dynamic_target(), stopped enabling the target when the bonding test moved that step intocreate_dynamic_target().Enable the targets again, so they come up while messages flow and are disabled before being removed. Like
toggle_netcons_target(), ignore a failed enable, which would otherwise end the function and leave the targets behind. With a console per target, this also registers and unregisters their consoles under load.Fixes 236682db3b6f ("selftest: netcons: add test for netconsole over bonded interfaces")Signed-off-by Breno Leitao <[email protected]>--- tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh | 1 + 1 file changed, 1 insertion(+)tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh +1
-1@@ -46,6 +46,7 @@ create_and_delete_random_target() { # Basic population so the target can come up _create_dynamic_target "${FORMAT}" "${RND_TARGET_PATH}" + echo 1 > "${RND_TARGET_PATH}"/enabled 2> /dev/null || true done echo "netconsole selftest: ${COUNT} additional targets were created" > /dev/kmsg ---base-commit:
b3dfbde62cf1981c4638939c159dfd087b7a72e9
change-id: 20261110-netcons_selftest_fix-4cbf633295ef
Quoted 4 lines
Best regards,
Signature · 1 line
Breno Leitao <[email protected]>
Ignore the failed enable makes sense to me, as we enabled set -e and use random target. Do we need sleep 1s like create_dynamic_target() to make sure the configuration loaded?
Thanks
Hangbin
Breno Leitao
maintainerHello Hangbin,
Quoted 36 lines · Hangbin Liu
Quoted 35 lines · Breno Leitao
create_and_delete_random_target()is meant to create, enable and remove targets while messages are sent, but it only creates and removes them. The helper it calls,_create_dynamic_target(), stopped enabling the target when the bonding test moved that step intocreate_dynamic_target().Enable the targets again, so they come up while messages flow and are disabled before being removed. Like
toggle_netcons_target(), ignore a failed enable, which would otherwise end the function and leave the targets behind. With a console per target, this also registers and unregisters their consoles under load.Fixes 236682db3b6f ("selftest: netcons: add test for netconsole over bonded interfaces")Signed-off-by Breno Leitao <[email protected]>--- tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh | 1 + 1 file changed, 1 insertion(+)tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh +1
-1@@ -46,6 +46,7 @@ create_and_delete_random_target() { # Basic population so the target can come up _create_dynamic_target "${FORMAT}" "${RND_TARGET_PATH}" + echo 1 > "${RND_TARGET_PATH}"/enabled 2> /dev/null || true done echo "netconsole selftest: ${COUNT} additional targets were created" > /dev/kmsg ---base-commit:
b3dfbde62cf1981c4638939c159dfd087b7a72e9
change-id: 20261110-netcons_selftest_fix-4cbf633295ef
Quoted 7 lines
Quoted 4 lines
Best regards,
Signature · 1 line
Breno Leitao <[email protected]>Ignore the failed enable makes sense to me, as we enabled
set -eand use random target.
ack!
Quoted 2 lines
Do we need sleep 1s like
create_dynamic_target()to make sure the configuration loaded?
I don't think we need it. The write to enabled is synchronous:enabled_store() sets up netpoll and moves the target to STATE_ENABLED before it returns. If the setup fails, enabled reads back 0, and the disable loop checks enabled before writing 0 to it.
The other reason for that sleep, keeping the console messages in order, does not apply either, since the torture test does not read back any message.
Thanks for the review,
--breno
Hangbin Liu
Reviewed-byQuoted 52 lines · Breno Leitao
Hello Hangbin,
Quoted 36 lines · Hangbin Liu
Quoted 35 lines · Breno Leitao
create_and_delete_random_target()is meant to create, enable and remove targets while messages are sent, but it only creates and removes them. The helper it calls,_create_dynamic_target(), stopped enabling the target when the bonding test moved that step intocreate_dynamic_target().Enable the targets again, so they come up while messages flow and are disabled before being removed. Like
toggle_netcons_target(), ignore a failed enable, which would otherwise end the function and leave the targets behind. With a console per target, this also registers and unregisters their consoles under load.Fixes 236682db3b6f ("selftest: netcons: add test for netconsole over bonded interfaces")Signed-off-by Breno Leitao <[email protected]>--- tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh | 1 + 1 file changed, 1 insertion(+)tools/testing/selftests/drivers/net/netconsole/netcons_torture.sh +1
-1@@ -46,6 +46,7 @@ create_and_delete_random_target() { # Basic population so the target can come up _create_dynamic_target "${FORMAT}" "${RND_TARGET_PATH}" + echo 1 > "${RND_TARGET_PATH}"/enabled 2> /dev/null || true done echo "netconsole selftest: ${COUNT} additional targets were created" > /dev/kmsg ---base-commit:
b3dfbde62cf1981c4638939c159dfd087b7a72e9
change-id: 20261110-netcons_selftest_fix-4cbf633295efQuoted 7 lines
Quoted 4 lines
Best regards,
Signature · 1 line
Breno Leitao <[email protected]>Ignore the failed enable makes sense to me, as we enabled
set -eand use random target.ack!
Quoted 2 lines
Do we need sleep 1s like
create_dynamic_target()to make sure the configuration loaded?
Quoted 8 lines
I don't think we need it. The write to enabled is synchronous:
enabled_store()sets up netpoll and moves the target toSTATE_ENABLEDbefore it returns. If the setup fails, enabled reads back 0, and the disable loop checks enabled before writing 0 to it.The other reason for that sleep, keeping the console messages in order, does not apply either, since the torture test does not read back any message.
Thanks for the explain.