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

Configure Feed

Select the types of activity you want to include in your feed.

netdevsim: add fw_update_flash_chunk_time_ms debugfs knobs

Netdevsim emulates firmware update and it takes 5 seconds to complete.
For some use cases, this is too long and unnecessary. Allow user to
configure the time by exposing debugfs a knob to set chunk time.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Link: https://patch.msgid.link/20250722091945.79506-1-jiri@resnulli.us
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Jiri Pirko and committed by
Jakub Kicinski
9a5bbab2 1bbdb81a

+9 -3
+6 -3
drivers/net/netdevsim/dev.c
··· 314 314 &nsim_dev->fw_update_status); 315 315 debugfs_create_u32("fw_update_overwrite_mask", 0600, nsim_dev->ddir, 316 316 &nsim_dev->fw_update_overwrite_mask); 317 + debugfs_create_u32("fw_update_flash_chunk_time_ms", 0600, nsim_dev->ddir, 318 + &nsim_dev->fw_update_flash_chunk_time_ms); 317 319 debugfs_create_u32("max_macs", 0600, nsim_dev->ddir, 318 320 &nsim_dev->max_macs); 319 321 debugfs_create_bool("test1", 0600, nsim_dev->ddir, ··· 1017 1015 DEVLINK_INFO_VERSION_TYPE_COMPONENT); 1018 1016 } 1019 1017 1020 - #define NSIM_DEV_FLASH_SIZE 500000 1018 + #define NSIM_DEV_FLASH_SIZE 50000 1021 1019 #define NSIM_DEV_FLASH_CHUNK_SIZE 1000 1022 - #define NSIM_DEV_FLASH_CHUNK_TIME_MS 10 1020 + #define NSIM_DEV_FLASH_CHUNK_TIME_MS_DEFAULT 100 1023 1021 1024 1022 static int nsim_dev_flash_update(struct devlink *devlink, 1025 1023 struct devlink_flash_update_params *params, ··· 1043 1041 params->component, 1044 1042 i * NSIM_DEV_FLASH_CHUNK_SIZE, 1045 1043 NSIM_DEV_FLASH_SIZE); 1046 - msleep(NSIM_DEV_FLASH_CHUNK_TIME_MS); 1044 + msleep(nsim_dev->fw_update_flash_chunk_time_ms ?: 1); 1047 1045 } 1048 1046 1049 1047 if (nsim_dev->fw_update_status) { ··· 1587 1585 INIT_LIST_HEAD(&nsim_dev->port_list); 1588 1586 nsim_dev->fw_update_status = true; 1589 1587 nsim_dev->fw_update_overwrite_mask = 0; 1588 + nsim_dev->fw_update_flash_chunk_time_ms = NSIM_DEV_FLASH_CHUNK_TIME_MS_DEFAULT; 1590 1589 nsim_dev->max_macs = NSIM_DEV_MAX_MACS_DEFAULT; 1591 1590 nsim_dev->test1 = NSIM_DEV_TEST1_DEFAULT; 1592 1591 spin_lock_init(&nsim_dev->fa_cookie_lock);
+1
drivers/net/netdevsim/netdevsim.h
··· 317 317 struct list_head port_list; 318 318 bool fw_update_status; 319 319 u32 fw_update_overwrite_mask; 320 + u32 fw_update_flash_chunk_time_ms; 320 321 u32 max_macs; 321 322 bool test1; 322 323 bool dont_allow_reload;
+2
tools/testing/selftests/drivers/net/netdevsim/devlink.sh
··· 40 40 return 41 41 fi 42 42 43 + echo "10"> $DEBUGFS_DIR/fw_update_flash_chunk_time_ms 44 + 43 45 devlink dev flash $DL_HANDLE file $DUMMYFILE 44 46 check_err $? "Failed to flash with status updates on" 45 47