Merge branch 'bugfix/vfs_open_write_close_perf_test' into 'master'
Fix VFS unit test failure ("Open & write & close through VFS passes performance test") Closes #44 See merge request idf/esp-idf!3759
This commit is contained in:
commit
21b3919369
5 changed files with 16 additions and 4 deletions
|
@ -12,8 +12,8 @@
|
||||||
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_POLLING_NO_DMA 15
|
#define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_POLLING_NO_DMA 15
|
||||||
/* Due to code size & linker layout differences interacting with cache, VFS
|
/* Due to code size & linker layout differences interacting with cache, VFS
|
||||||
microbenchmark currently runs slower with PSRAM enabled. */
|
microbenchmark currently runs slower with PSRAM enabled. */
|
||||||
#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME 50000
|
#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME 20000
|
||||||
#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME_PSRAM 40000
|
#define IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME_PSRAM 25000
|
||||||
// throughput performance by iperf
|
// throughput performance by iperf
|
||||||
#define IDF_PERFORMANCE_MIN_TCP_RX_THROUGHPUT 50
|
#define IDF_PERFORMANCE_MIN_TCP_RX_THROUGHPUT 50
|
||||||
#define IDF_PERFORMANCE_MIN_TCP_TX_THROUGHPUT 40
|
#define IDF_PERFORMANCE_MIN_TCP_TX_THROUGHPUT 40
|
||||||
|
|
|
@ -3,4 +3,6 @@ set(COMPONENT_ADD_INCLUDEDIRS ".")
|
||||||
|
|
||||||
set(COMPONENT_REQUIRES unity test_utils vfs fatfs spiffs)
|
set(COMPONENT_REQUIRES unity test_utils vfs fatfs spiffs)
|
||||||
|
|
||||||
register_component()
|
set(COMPONENT_ADD_LDFRAGMENTS linker.lf)
|
||||||
|
|
||||||
|
register_component()
|
||||||
|
|
|
@ -1 +1,3 @@
|
||||||
COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive
|
COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive
|
||||||
|
|
||||||
|
COMPONENT_ADD_LDFRAGMENTS += linker.lf
|
||||||
|
|
6
components/vfs/test/linker.lf
Normal file
6
components/vfs/test/linker.lf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[mapping]
|
||||||
|
archive: libvfs.a
|
||||||
|
entries:
|
||||||
|
vfs:esp_vfs_open (noflash)
|
||||||
|
vfs:esp_vfs_write (noflash)
|
||||||
|
vfs:esp_vfs_close (noflash)
|
|
@ -227,7 +227,7 @@ static int time_test_vfs_close(int fd)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int time_test_vfs_write(int fd, const void *data, size_t size)
|
static int time_test_vfs_write(int fd, const void *data, size_t size)
|
||||||
{
|
{
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
@ -255,6 +255,8 @@ TEST_CASE("Open & write & close through VFS passes performance test", "[vfs]")
|
||||||
TEST_ASSERT_NOT_EQUAL(close(fd), -1);
|
TEST_ASSERT_NOT_EQUAL(close(fd), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// esp_vfs_open, esp_vfs_write and esp_vfs_close need to be in IRAM for performance test to pass
|
||||||
|
|
||||||
const int64_t time_diff_us = esp_timer_get_time() - begin;
|
const int64_t time_diff_us = esp_timer_get_time() - begin;
|
||||||
const int ns_per_iter = (int) (time_diff_us * 1000 / iter_count);
|
const int ns_per_iter = (int) (time_diff_us * 1000 / iter_count);
|
||||||
TEST_ESP_OK( esp_vfs_unregister(VFS_PREF1) );
|
TEST_ESP_OK( esp_vfs_unregister(VFS_PREF1) );
|
||||||
|
|
Loading…
Reference in a new issue