sd_bench and logger use aligned buffers

This commit is contained in:
David Sidrane
2021-03-15 13:13:37 -07:00
committed by Lorenz Meier
parent 45d0603627
commit ccee36bb68
4 changed files with 22 additions and 3 deletions
+15 -2
View File
@@ -79,8 +79,10 @@ usage()
PRINT_MODULE_USAGE_PARAM_INT('r', 5, 1, 1000, "Number of runs", true);
PRINT_MODULE_USAGE_PARAM_INT('d', 2000, 1, 100000, "Duration of a run in ms", true);
PRINT_MODULE_USAGE_PARAM_FLAG('s', "Call fsync after each block (default=at end of each run)", true);
PRINT_MODULE_USAGE_PARAM_FLAG('u', "Test performance with unaligned data)", true);
}
int
sd_bench_main(int argc, char *argv[])
{
@@ -91,8 +93,10 @@ sd_bench_main(int argc, char *argv[])
synchronized = false;
num_runs = 5;
run_duration = 2000;
bool aligned = true;
uint8_t *block = NULL;
while ((ch = px4_getopt(argc, argv, "b:r:d:s", &myoptind, &myoptarg)) != EOF) {
while ((ch = px4_getopt(argc, argv, "b:r:d:su", &myoptind, &myoptarg)) != EOF) {
switch (ch) {
case 'b':
block_size = strtol(myoptarg, NULL, 0);
@@ -110,6 +114,10 @@ sd_bench_main(int argc, char *argv[])
synchronized = true;
break;
case 'u':
aligned = false;
break;
default:
usage();
return -1;
@@ -130,7 +138,12 @@ sd_bench_main(int argc, char *argv[])
}
//create some data block
uint8_t *block = (uint8_t *)malloc(block_size);
if (aligned) {
block = (uint8_t *)px4_cache_aligned_alloc(block_size);
} else {
block = (uint8_t *)malloc(block_size);
}
if (!block) {
PX4_ERR("Failed to allocate memory block");