Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

devlink: Add new "io_eq_size" generic device param

Add new device generic parameter to determine the size of the
I/O completion EQs.

For example, to reduce I/O EQ size to 64, execute:
$ devlink dev param set pci/0000:06:00.0 \
name io_eq_size value 64 cmode driverinit
$ devlink dev reload pci/0000:06:00.0

Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>

authored by

Shay Drory and committed by
Saeed Mahameed
47402385 f4f2970d

+12
+4
include/net/devlink.h
··· 459 459 DEVLINK_PARAM_GENERIC_ID_ENABLE_RDMA, 460 460 DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET, 461 461 DEVLINK_PARAM_GENERIC_ID_ENABLE_IWARP, 462 + DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE, 462 463 463 464 /* add new param generic ids above here*/ 464 465 __DEVLINK_PARAM_GENERIC_ID_MAX, ··· 511 510 512 511 #define DEVLINK_PARAM_GENERIC_ENABLE_IWARP_NAME "enable_iwarp" 513 512 #define DEVLINK_PARAM_GENERIC_ENABLE_IWARP_TYPE DEVLINK_PARAM_TYPE_BOOL 513 + 514 + #define DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_NAME "io_eq_size" 515 + #define DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_TYPE DEVLINK_PARAM_TYPE_U32 514 516 515 517 #define DEVLINK_PARAM_GENERIC(_id, _cmodes, _get, _set, _validate) \ 516 518 { \
+5
net/core/devlink.c
··· 4466 4466 .name = DEVLINK_PARAM_GENERIC_ENABLE_IWARP_NAME, 4467 4467 .type = DEVLINK_PARAM_GENERIC_ENABLE_IWARP_TYPE, 4468 4468 }, 4469 + { 4470 + .id = DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE, 4471 + .name = DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_NAME, 4472 + .type = DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_TYPE, 4473 + }, 4469 4474 }; 4470 4475 4471 4476 static int devlink_param_generic_verify(const struct devlink_param *param)