mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
8dcaedcf62
After we have the performance dashboard, we have more data and no longer depend on the threshold to ensure performance. Set looser performance thresholds to avoid CI failure.
121 lines
7.6 KiB
C
121 lines
7.6 KiB
C
#pragma once
|
|
|
|
/* declare the performance here */
|
|
#define IDF_PERFORMANCE_MAX_HTTPS_REQUEST_BIN_SIZE 900
|
|
#define IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP 200
|
|
#define IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP_PSRAM 300
|
|
#define IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP_UNICORE 130
|
|
#define IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL 1000
|
|
|
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_ESP32 30
|
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA_ESP32 27
|
|
|
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_ESP32S2 32
|
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA_ESP32S2 30
|
|
|
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_POLLING 15
|
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_POLLING_NO_DMA 15
|
|
|
|
|
|
/* Due to code size & linker layout differences interacting with cache, VFS
|
|
microbenchmark currently runs slower with PSRAM enabled. */
|
|
#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME 20000
|
|
#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME_PSRAM 25000
|
|
// throughput performance by iperf
|
|
#define IDF_PERFORMANCE_MIN_TCP_RX_THROUGHPUT 45
|
|
#define IDF_PERFORMANCE_MIN_TCP_TX_THROUGHPUT 40
|
|
#define IDF_PERFORMANCE_MIN_UDP_RX_THROUGHPUT 64
|
|
#define IDF_PERFORMANCE_MIN_UDP_TX_THROUGHPUT 50
|
|
// events dispatched per second by event loop library
|
|
#define IDF_PERFORMANCE_MIN_EVENT_DISPATCH 25000
|
|
#define IDF_PERFORMANCE_MIN_EVENT_DISPATCH_PSRAM 21000
|
|
|
|
// floating point instructions per divide and per sqrt (configured for worst-case with PSRAM workaround)
|
|
#define IDF_PERFORMANCE_MAX_ESP32_CYCLES_PER_DIV 70
|
|
#define IDF_PERFORMANCE_MAX_ESP32_CYCLES_PER_SQRT 140
|
|
|
|
#define IDF_PERFORMANCE_MAX_SPILL_REG_CYCLES 150
|
|
#define IDF_PERFORMANCE_MAX_ISR_ENTER_CYCLES 290
|
|
#define IDF_PERFORMANCE_MAX_ISR_EXIT_CYCLES 565
|
|
|
|
#define IDF_PERFORMANCE_MIN_SDIO_THROUGHPUT_MBSEC_TOHOST_4BIT 12200
|
|
#define IDF_PERFORMANCE_MIN_SDIO_THROUGHPUT_MBSEC_FRHOST_4BIT 12200
|
|
#define IDF_PERFORMANCE_MIN_SDIO_THROUGHPUT_MBSEC_TOHOST_1BIT 4000
|
|
#define IDF_PERFORMANCE_MIN_SDIO_THROUGHPUT_MBSEC_FRHOST_1BIT 4000
|
|
#define IDF_PERFORMANCE_MIN_SDIO_THROUGHPUT_MBSEC_TOHOST_SPI 1000
|
|
#define IDF_PERFORMANCE_MIN_SDIO_THROUGHPUT_MBSEC_FRHOST_SPI 1000
|
|
|
|
|
|
/*
|
|
* Flash Performance value
|
|
* 4 subsections: legacy, normal (new driver after v4.0), SPI1 (external but on SPI1), external (SPI2)
|
|
* These thresholds are set to about 70% of the average test data, under certain condition.
|
|
* Contact Espressif for details.
|
|
*/
|
|
|
|
//The single_core config is much faster than other configs. Use the value of other configs
|
|
//Collect data and correct it later
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_4B 0
|
|
//The single_core config is much faster than other configs. Use the value of other configs
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 35300
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_2KB (697*1000)
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_2KB (6780*1000)
|
|
//erase performance is highly depending on the chip vendor. Use 70% of the minimal value.
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_ERASE 11200
|
|
|
|
//The single_core config is much faster than other configs. Use the value of other configs
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_4B 20100
|
|
//The single_core config is much faster than other configs. Use the value of other configs
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 35200
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_2KB (754*1000)
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_2KB (6650*1000)
|
|
//erase performance is highly depending on the chip vendor. Use 70% of the minimal value.
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_ERASE 0
|
|
|
|
//The single_core config is much faster than other configs. Use the value of other configs
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_SPI1_WR_4B 16200
|
|
//The single_core config is much faster than other configs. Use the value of other configs
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_SPI1_RD_4B 33600
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_SPI1_WR_2KB (484*1000)
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_SPI1_RD_2KB (1512*1000)
|
|
//erase performance is highly depending on the chip vendor. Use 70% of the minimal value.
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_SPI1_ERASE 49600
|
|
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 73500
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (261*1000)
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_2KB (470*1000)
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_2KB (261*1000)
|
|
//erase performance is highly depending on the chip vendor. Use 70% of the minimal value.
|
|
#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE 30900
|
|
|
|
#ifdef CONFIG_IDF_TARGET_ESP32
|
|
// AES-CBC hardware throughput (accounts for worst-case performance with PSRAM workaround)
|
|
#define IDF_PERFORMANCE_MIN_AES_CBC_THROUGHPUT_MBSEC 8.2
|
|
|
|
// SHA256 hardware throughput at 240MHz, threshold set lower than worst case
|
|
#define IDF_PERFORMANCE_MIN_SHA256_THROUGHPUT_MBSEC 9.0
|
|
// esp_sha() time to process 32KB of input data from RAM
|
|
#define IDF_PERFORMANCE_MAX_TIME_SHA1_32KB 5000
|
|
#define IDF_PERFORMANCE_MAX_TIME_SHA512_32KB 4500
|
|
|
|
#define IDF_PERFORMANCE_MAX_RSA_2048KEY_PUBLIC_OP 19000
|
|
#define IDF_PERFORMANCE_MAX_RSA_2048KEY_PRIVATE_OP 180000
|
|
#define IDF_PERFORMANCE_MAX_RSA_4096KEY_PUBLIC_OP 65000
|
|
#define IDF_PERFORMANCE_MAX_RSA_4096KEY_PRIVATE_OP 850000
|
|
|
|
#elif defined CONFIG_IDF_TARGET_ESP32S2BETA
|
|
#define IDF_PERFORMANCE_MIN_AES_CBC_THROUGHPUT_MBSEC 14.4
|
|
|
|
// SHA256 hardware throughput at 240MHz, threshold set lower than worst case
|
|
#define IDF_PERFORMANCE_MIN_SHA256_THROUGHPUT_MBSEC 19.8
|
|
// esp_sha() time to process 32KB of input data from RAM
|
|
#define IDF_PERFORMANCE_MAX_TIME_SHA1_32KB 1000
|
|
#define IDF_PERFORMANCE_MAX_TIME_SHA512_32KB 900
|
|
|
|
#define IDF_PERFORMANCE_MAX_RSA_2048KEY_PUBLIC_OP 14000
|
|
#define IDF_PERFORMANCE_MAX_RSA_2048KEY_PRIVATE_OP 100000
|
|
#define IDF_PERFORMANCE_MAX_RSA_4096KEY_PUBLIC_OP 60000
|
|
#define IDF_PERFORMANCE_MAX_RSA_4096KEY_PRIVATE_OP 600000
|
|
|
|
#endif //CONFIG_IDF_TARGET_ESP32S2BETA
|