diff options
author | Mariusz Zaborski <oshogbo@FreeBSD.org> | 2019-07-31 17:47:12 +0000 |
---|---|---|
committer | Mariusz Zaborski <oshogbo@FreeBSD.org> | 2019-07-31 17:47:12 +0000 |
commit | 4f80c85519d5957dd3c919b4889585dc92da2a39 (patch) | |
tree | a24c2db1366177cdce84a7d3349161048cf912a7 /lib/geom | |
parent | c54ee572e54a6ee705fdd3047aa544e057b87f0f (diff) | |
download | src-4f80c85519d5957dd3c919b4889585dc92da2a39.tar.gz src-4f80c85519d5957dd3c919b4889585dc92da2a39.zip |
gnop: Introduce requests delay.
This allows to simulated disk that is responding slowly to the IO requests.
Reviewed by: markj, bcr, pjd (previous version)
Differential Revision: https://reviews.freebsd.org/D21052
Notes
Notes:
svn path=/head/; revision=350471
Diffstat (limited to 'lib/geom')
-rw-r--r-- | lib/geom/nop/geom_nop.c | 15 | ||||
-rw-r--r-- | lib/geom/nop/gnop.8 | 15 |
2 files changed, 25 insertions, 5 deletions
diff --git a/lib/geom/nop/geom_nop.c b/lib/geom/nop/geom_nop.c index 65dc07cf1a3c..12321d2179f2 100644 --- a/lib/geom/nop/geom_nop.c +++ b/lib/geom/nop/geom_nop.c @@ -43,29 +43,36 @@ uint32_t version = G_NOP_VERSION; struct g_command class_commands[] = { { "create", G_FLAG_VERBOSE | G_FLAG_LOADKLD, NULL, { + { 'd', "delaymsec", "-1", G_TYPE_NUMBER }, { 'e', "error", "-1", G_TYPE_NUMBER }, { 'o', "offset", "0", G_TYPE_NUMBER }, { 'p', "stripesize", "0", G_TYPE_NUMBER }, { 'P', "stripeoffset", "0", G_TYPE_NUMBER }, + { 'q', "rdelayprob", "-1", G_TYPE_NUMBER }, { 'r', "rfailprob", "-1", G_TYPE_NUMBER }, { 's', "size", "0", G_TYPE_NUMBER }, { 'S', "secsize", "0", G_TYPE_NUMBER }, { 'w', "wfailprob", "-1", G_TYPE_NUMBER }, + { 'x', "wdelayprob", "1", G_TYPE_NUMBER }, { 'z', "physpath", G_NOP_PHYSPATH_PASSTHROUGH, G_TYPE_STRING }, G_OPT_SENTINEL }, - "[-v] [-e error] [-o offset] [-p stripesize] [-P stripeoffset] " - "[-r rfailprob] [-s size] [-S secsize] [-w wfailprob] " - "[-z physpath] dev ..." + "[-v] [-d delaymsec] [-e error] [-o offset] [-p stripesize] " + "[-P stripeoffset] [-q rdelayprob] [-r rfailprob] [-s size] " + "[-S secsize] [-w wfailprob] [-x wdelayprob] [-z physpath] dev ..." }, { "configure", G_FLAG_VERBOSE, NULL, { + { 'd', "delaymsec", "-1", G_TYPE_NUMBER }, { 'e', "error", "-1", G_TYPE_NUMBER }, + { 'q', "rdelayprob", "-1", G_TYPE_NUMBER }, { 'r', "rfailprob", "-1", G_TYPE_NUMBER }, { 'w', "wfailprob", "-1", G_TYPE_NUMBER }, + { 'x', "wdelayprob", "1", G_TYPE_NUMBER }, G_OPT_SENTINEL }, - "[-v] [-e error] [-r rfailprob] [-w wfailprob] prov ..." + "[-v] [-d delaymsec] [-e error] [-q rdelayprob] [-r rfailprob] " + "[-w wfailprob] [-x wdelayprob] prov ..." }, { "destroy", G_FLAG_VERBOSE, NULL, { diff --git a/lib/geom/nop/gnop.8 b/lib/geom/nop/gnop.8 index f9b3dc2c440e..ef6c44bc5297 100644 --- a/lib/geom/nop/gnop.8 +++ b/lib/geom/nop/gnop.8 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 17, 2018 +.Dd July 31, 2019 .Dt GNOP 8 .Os .Sh NAME @@ -34,22 +34,28 @@ .Nm .Cm create .Op Fl v +.Op Fl d Ar delaymsec .Op Fl e Ar error .Op Fl o Ar offset .Op Fl p Ar stripesize .Op Fl P Ar stripeoffset +.Op Fl q Ar rdelayprob .Op Fl r Ar rfailprob .Op Fl s Ar size .Op Fl S Ar secsize .Op Fl w Ar wfailprob +.Op Fl x Ar wdelayprob .Op Fl z Ar physpath .Ar dev ... .Nm .Cm configure .Op Fl v +.Op Fl d Ar delaymsec .Op Fl e Ar error +.Op Fl q Ar rdelayprob .Op Fl r Ar rfailprob .Op Fl w Ar wfailprob +.Op Fl x Ar wdelayprob .Ar prov ... .Nm .Cm destroy @@ -113,6 +119,9 @@ See .Pp Additional options: .Bl -tag -width ".Fl r Ar rfailprob" +.It Fl d Ar delaymsec +Specifies the delay of the requests in milliseconds. +Note that requests will be delayed before they are sent to the backing device. .It Fl e Ar error Specifies the error number to return on failure. .It Fl f @@ -123,6 +132,8 @@ Where to begin on the original provider. Value of the stripesize property of the transparent provider. .It Fl P Ar stripeoffset Value of the stripeoffset property of the transparent provider. +.It Fl q Ar rdelayprob +Specifies read delay probability in percent. .It Fl r Ar rfailprob Specifies read failure probability in percent. .It Fl s Ar size @@ -133,6 +144,8 @@ Sector size of the transparent provider. Specifies write failure probability in percent. .It Fl v Be more verbose. +.It Fl x Ar wdelayprob +Specifies write delay probability in percent. .It Fl z Ar physpath Physical path of the transparent provider. .El |