Cherry-picked upstream out-of-order emubd testing
More information upstream (f2a6f45,fc2aa33,7873d81), but this adds LFS_EMUBD_POWERLOS_OOO for testing out-of-order block devices that require sync to be called for things to serialize. It's a simple implementation, just reverts the first write since last sync on powerloss, but gets the job done. Cherry-picking these changes required reverting emubd's scratch buffer, but carrying around an extra ~block_size of memory isn't a big deal here.
This commit is contained in:
@@ -157,7 +157,8 @@ void bench_permutation(size_t i, uint32_t *buffer, size_t size);
|
||||
#define BENCH_BDCFG \
|
||||
.erase_value = ERASE_VALUE, \
|
||||
.erase_cycles = ERASE_CYCLES, \
|
||||
.badblock_behavior = BADBLOCK_BEHAVIOR,
|
||||
.badblock_behavior = BADBLOCK_BEHAVIOR, \
|
||||
.powerloss_behavior = POWERLOSS_BEHAVIOR,
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1379,7 +1379,6 @@ static void run_powerloss_linear(
|
||||
.power_cycles = (TEST_PLS < powerloss->cycle_count)
|
||||
? TEST_PLS+1
|
||||
: 0,
|
||||
.powerloss_behavior = POWERLOSS_BEHAVIOR,
|
||||
.powerloss_cb = powerloss_longjmp,
|
||||
.powerloss_data = &powerloss_jmp,
|
||||
TEST_BDCFG
|
||||
@@ -1457,7 +1456,6 @@ static void run_powerloss_log(
|
||||
.power_cycles = (TEST_PLS < powerloss->cycle_count)
|
||||
? 1 << TEST_PLS
|
||||
: 0,
|
||||
.powerloss_behavior = POWERLOSS_BEHAVIOR,
|
||||
.powerloss_cb = powerloss_longjmp,
|
||||
.powerloss_data = &powerloss_jmp,
|
||||
TEST_BDCFG
|
||||
@@ -1535,7 +1533,6 @@ static void run_powerloss_cycles(
|
||||
.power_cycles = (TEST_PLS < powerloss->cycle_count)
|
||||
? powerloss->cycles[TEST_PLS]
|
||||
: 0,
|
||||
.powerloss_behavior = POWERLOSS_BEHAVIOR,
|
||||
.powerloss_cb = powerloss_longjmp,
|
||||
.powerloss_data = &powerloss_jmp,
|
||||
TEST_BDCFG
|
||||
@@ -1708,7 +1705,6 @@ static void run_powerloss_exhaustive(
|
||||
.read_sleep = test_read_sleep,
|
||||
.prog_sleep = test_prog_sleep,
|
||||
.erase_sleep = test_erase_sleep,
|
||||
.powerloss_behavior = POWERLOSS_BEHAVIOR,
|
||||
.powerloss_cb = powerloss_exhaustive_branch,
|
||||
.powerloss_data = NULL,
|
||||
TEST_BDCFG
|
||||
|
||||
@@ -142,7 +142,8 @@ void test_permutation(size_t i, uint32_t *buffer, size_t size);
|
||||
#define TEST_BDCFG \
|
||||
.erase_value = ERASE_VALUE, \
|
||||
.erase_cycles = ERASE_CYCLES, \
|
||||
.badblock_behavior = BADBLOCK_BEHAVIOR,
|
||||
.badblock_behavior = BADBLOCK_BEHAVIOR, \
|
||||
.powerloss_behavior = POWERLOSS_BEHAVIOR,
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user