Frank Filz has uploaded this change for review.

View Change

FSAL_MEM: Add test option to make actual async I/O completion

A new FSAL parameter is added to set up a number of async threads.

Async_Threads(uint32, range 0 to 100, default to 0)

New EXPORT { FSAL { } } options are added to control how the async
happens:

Async_Delay(uint32, range 0 to 1000, defaults to 0)

Async_Type(enum, values [inline, fixed, random,
random_or_inline], defaults to inline)

Async_Stall_Delay(uint32, range 0 to 1000, defaults to 0)

Async_Type allows specifying between inline completion (as a default
and what the code used to do), a fixed delay, or random delay, with an
option to randomly complete inline or a random delay.

Async_Delay sets the maximum (or fixed) delay.

Async_Stall_Delay allows making the read2 or write2 call itself delay.
This allows simulating various kinds of races where the async completion
occurs before the read2 or write2 call returns.

Change-Id: Ie0b39f09f0dde28f37872bc99e335f7f409eff27
Signed-off-by: Frank S. Filz <ffilzlnx@mindspring.com>
---
M src/FSAL/FSAL_MEM/mem_export.c
M src/FSAL/FSAL_MEM/mem_handle.c
M src/FSAL/FSAL_MEM/mem_int.h
M src/FSAL/FSAL_MEM/mem_main.c
M src/config_samples/config.txt
5 files changed, 359 insertions(+), 11 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/91/437191/1

To view, visit change 437191. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie0b39f09f0dde28f37872bc99e335f7f409eff27
Gerrit-Change-Number: 437191
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Filz <ffilzlnx@mindspring.com>