All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch net-next 0/2] netdevsim: allow to test reload failures
@ 2019-10-06  6:30 Jiri Pirko
  2019-10-06  6:30 ` [patch net-next 1/2] netdevsim: add couple of debugfs bools to debug devlink reload Jiri Pirko
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jiri Pirko @ 2019-10-06  6:30 UTC (permalink / raw)
  To: netdev; +Cc: davem, jakub.kicinski, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Allow user to test devlink reload failures: Fail to reload and fail
during reload.

Jiri Pirko (2):
  netdevsim: add couple of debugfs bools to debug devlink reload
  selftests: test netdevsim reload forbid and fail

 drivers/net/netdevsim/dev.c                   | 20 ++++++++++++++++
 drivers/net/netdevsim/netdevsim.h             |  2 ++
 .../drivers/net/netdevsim/devlink.sh          | 24 +++++++++++++++++++
 3 files changed, 46 insertions(+)

-- 
2.21.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [patch net-next 1/2] netdevsim: add couple of debugfs bools to debug devlink reload
  2019-10-06  6:30 [patch net-next 0/2] netdevsim: allow to test reload failures Jiri Pirko
@ 2019-10-06  6:30 ` Jiri Pirko
  2019-10-06  6:30 ` [patch net-next 2/2] selftests: test netdevsim reload forbid and fail Jiri Pirko
  2019-10-06 16:30 ` [patch net-next 0/2] netdevsim: allow to test reload failures David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2019-10-06  6:30 UTC (permalink / raw)
  To: netdev; +Cc: davem, jakub.kicinski, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Add flag to disallow reload and another one that causes reload to
always fail.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 drivers/net/netdevsim/dev.c       | 20 ++++++++++++++++++++
 drivers/net/netdevsim/netdevsim.h |  2 ++
 2 files changed, 22 insertions(+)

diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c
index fbc4cdcfe551..31d1752c703a 100644
--- a/drivers/net/netdevsim/dev.c
+++ b/drivers/net/netdevsim/dev.c
@@ -90,6 +90,10 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
 			    &nsim_dev->test1);
 	debugfs_create_file("take_snapshot", 0200, nsim_dev->ddir, nsim_dev,
 			    &nsim_dev_take_snapshot_fops);
+	debugfs_create_bool("dont_allow_reload", 0600, nsim_dev->ddir,
+			    &nsim_dev->dont_allow_reload);
+	debugfs_create_bool("fail_reload", 0600, nsim_dev->ddir,
+			    &nsim_dev->fail_reload);
 	return 0;
 }
 
@@ -478,6 +482,14 @@ static int nsim_dev_reload_down(struct devlink *devlink, bool netns_change,
 {
 	struct nsim_dev *nsim_dev = devlink_priv(devlink);
 
+	if (nsim_dev->dont_allow_reload) {
+		/* For testing purposes, user set debugfs dont_allow_reload
+		 * value to true. So forbid it.
+		 */
+		NL_SET_ERR_MSG_MOD(extack, "User forbidded reload for testing purposes");
+		return -EOPNOTSUPP;
+	}
+
 	nsim_dev_reload_destroy(nsim_dev);
 	return 0;
 }
@@ -487,6 +499,14 @@ static int nsim_dev_reload_up(struct devlink *devlink,
 {
 	struct nsim_dev *nsim_dev = devlink_priv(devlink);
 
+	if (nsim_dev->fail_reload) {
+		/* For testing purposes, user set debugfs fail_reload
+		 * value to true. Fail right away.
+		 */
+		NL_SET_ERR_MSG_MOD(extack, "User setup the reload to fail for testing purposes");
+		return -EINVAL;
+	}
+
 	return nsim_dev_reload_create(nsim_dev, extack);
 }
 
diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netdevsim.h
index 8168a5475fe7..24358385d869 100644
--- a/drivers/net/netdevsim/netdevsim.h
+++ b/drivers/net/netdevsim/netdevsim.h
@@ -161,6 +161,8 @@ struct nsim_dev {
 	bool fw_update_status;
 	u32 max_macs;
 	bool test1;
+	bool dont_allow_reload;
+	bool fail_reload;
 	struct devlink_region *dummy_region;
 };
 
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [patch net-next 2/2] selftests: test netdevsim reload forbid and fail
  2019-10-06  6:30 [patch net-next 0/2] netdevsim: allow to test reload failures Jiri Pirko
  2019-10-06  6:30 ` [patch net-next 1/2] netdevsim: add couple of debugfs bools to debug devlink reload Jiri Pirko
@ 2019-10-06  6:30 ` Jiri Pirko
  2019-10-06 16:30 ` [patch net-next 0/2] netdevsim: allow to test reload failures David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Jiri Pirko @ 2019-10-06  6:30 UTC (permalink / raw)
  To: netdev; +Cc: davem, jakub.kicinski, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Extend netdevsim reload test by simulation of failures.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 .../drivers/net/netdevsim/devlink.sh          | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
index 69af99bd562b..de3174431b8e 100755
--- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
+++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
@@ -150,6 +150,30 @@ reload_test()
 	devlink dev reload $DL_HANDLE
 	check_err $? "Failed to reload"
 
+	echo "y"> $DEBUGFS_DIR/fail_reload
+	check_err $? "Failed to setup devlink reload to fail"
+
+	devlink dev reload $DL_HANDLE
+	check_fail $? "Unexpected success of devlink reload"
+
+	echo "n"> $DEBUGFS_DIR/fail_reload
+	check_err $? "Failed to setup devlink reload not to fail"
+
+	devlink dev reload $DL_HANDLE
+	check_err $? "Failed to reload after set not to fail"
+
+	echo "y"> $DEBUGFS_DIR/dont_allow_reload
+	check_err $? "Failed to forbid devlink reload"
+
+	devlink dev reload $DL_HANDLE
+	check_fail $? "Unexpected success of devlink reload"
+
+	echo "n"> $DEBUGFS_DIR/dont_allow_reload
+	check_err $? "Failed to re-enable devlink reload"
+
+	devlink dev reload $DL_HANDLE
+	check_err $? "Failed to reload after re-enable"
+
 	log_test "reload test"
 }
 
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [patch net-next 0/2] netdevsim: allow to test reload failures
  2019-10-06  6:30 [patch net-next 0/2] netdevsim: allow to test reload failures Jiri Pirko
  2019-10-06  6:30 ` [patch net-next 1/2] netdevsim: add couple of debugfs bools to debug devlink reload Jiri Pirko
  2019-10-06  6:30 ` [patch net-next 2/2] selftests: test netdevsim reload forbid and fail Jiri Pirko
@ 2019-10-06 16:30 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2019-10-06 16:30 UTC (permalink / raw)
  To: jiri; +Cc: netdev, jakub.kicinski, mlxsw

From: Jiri Pirko <jiri@resnulli.us>
Date: Sun,  6 Oct 2019 08:30:00 +0200

> From: Jiri Pirko <jiri@mellanox.com>
> 
> Allow user to test devlink reload failures: Fail to reload and fail
> during reload.

Series applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-10-06 16:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-06  6:30 [patch net-next 0/2] netdevsim: allow to test reload failures Jiri Pirko
2019-10-06  6:30 ` [patch net-next 1/2] netdevsim: add couple of debugfs bools to debug devlink reload Jiri Pirko
2019-10-06  6:30 ` [patch net-next 2/2] selftests: test netdevsim reload forbid and fail Jiri Pirko
2019-10-06 16:30 ` [patch net-next 0/2] netdevsim: allow to test reload failures David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.