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

devlink: Add new "event_eq_size" generic device param

Add new device generic parameter to determine the size of the
asynchronous control events EQ.

For example, to reduce event EQ size to 64, execute:
$ devlink dev param set pci/0000:06:00.0 \
name event_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
0b5705eb 0844fa5f

+12
+4
include/net/devlink.h
··· 460 460 DEVLINK_PARAM_GENERIC_ID_ENABLE_VNET, 461 461 DEVLINK_PARAM_GENERIC_ID_ENABLE_IWARP, 462 462 DEVLINK_PARAM_GENERIC_ID_IO_EQ_SIZE, 463 + DEVLINK_PARAM_GENERIC_ID_EVENT_EQ_SIZE, 463 464 464 465 /* add new param generic ids above here*/ 465 466 __DEVLINK_PARAM_GENERIC_ID_MAX, ··· 515 514 516 515 #define DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_NAME "io_eq_size" 517 516 #define DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_TYPE DEVLINK_PARAM_TYPE_U32 517 + 518 + #define DEVLINK_PARAM_GENERIC_EVENT_EQ_SIZE_NAME "event_eq_size" 519 + #define DEVLINK_PARAM_GENERIC_EVENT_EQ_SIZE_TYPE DEVLINK_PARAM_TYPE_U32 518 520 519 521 #define DEVLINK_PARAM_GENERIC(_id, _cmodes, _get, _set, _validate) \ 520 522 { \
+5
net/core/devlink.c
··· 4471 4471 .name = DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_NAME, 4472 4472 .type = DEVLINK_PARAM_GENERIC_IO_EQ_SIZE_TYPE, 4473 4473 }, 4474 + { 4475 + .id = DEVLINK_PARAM_GENERIC_ID_EVENT_EQ_SIZE, 4476 + .name = DEVLINK_PARAM_GENERIC_EVENT_EQ_SIZE_NAME, 4477 + .type = DEVLINK_PARAM_GENERIC_EVENT_EQ_SIZE_TYPE, 4478 + }, 4474 4479 }; 4475 4480 4476 4481 static int devlink_param_generic_verify(const struct devlink_param *param)