Message ID | 1504104706-11965-8-git-send-email-amir73il@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Aug 30, 2017 at 05:51:39PM +0300, Amir Goldstein wrote: > When writing the intermixed output of several fsx processes > to a single log file, it is usefull to prefix logs with a log id. > Use fsx -j <logid> to define the log messages prefix. Would it be better to allow any string as prefix, not limit to id number? Thanks, Eryu -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Sep 5, 2017 at 1:46 PM, Eryu Guan <eguan@redhat.com> wrote: > On Wed, Aug 30, 2017 at 05:51:39PM +0300, Amir Goldstein wrote: >> When writing the intermixed output of several fsx processes >> to a single log file, it is usefull to prefix logs with a log id. >> Use fsx -j <logid> to define the log messages prefix. > > Would it be better to allow any string as prefix, not limit to id > number? > Maybe, but I didn't see an immediate need for that beyond the concurrent test runs, for with numeric id is sufficient. Besides, the function that prepends the prefix, prt() is sometimes uses for continued line, which results with weird looking lines like this one: 1: 60( 60 mod 256): 1: FALLOC 0x30140 thru 0x30f3c (0xdfc bytes) 1: EXTENDING1: So it's not really worth fixing properly, but anything more then a single numeric prefix is going to look quite bad. -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Sep 05, 2017 at 02:24:20PM +0300, Amir Goldstein wrote: > On Tue, Sep 5, 2017 at 1:46 PM, Eryu Guan <eguan@redhat.com> wrote: > > On Wed, Aug 30, 2017 at 05:51:39PM +0300, Amir Goldstein wrote: > >> When writing the intermixed output of several fsx processes > >> to a single log file, it is usefull to prefix logs with a log id. > >> Use fsx -j <logid> to define the log messages prefix. > > > > Would it be better to allow any string as prefix, not limit to id > > number? > > > > Maybe, but I didn't see an immediate need for that beyond > the concurrent test runs, for with numeric id is sufficient. I agreed, I don't have strong preference on this. Thanks, Eryu > > Besides, the function that prepends the prefix, prt() > is sometimes uses for continued line, which results with > weird looking lines like this one: > > 1: 60( 60 mod 256): 1: FALLOC 0x30140 thru 0x30f3c (0xdfc bytes) > 1: EXTENDING1: > > So it's not really worth fixing properly, but anything more then a single > numeric prefix is going to look quite bad. -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Sep 5, 2017 at 2:31 PM, Eryu Guan <eguan@redhat.com> wrote: > On Tue, Sep 05, 2017 at 02:24:20PM +0300, Amir Goldstein wrote: >> On Tue, Sep 5, 2017 at 1:46 PM, Eryu Guan <eguan@redhat.com> wrote: >> > On Wed, Aug 30, 2017 at 05:51:39PM +0300, Amir Goldstein wrote: >> >> When writing the intermixed output of several fsx processes >> >> to a single log file, it is usefull to prefix logs with a log id. >> >> Use fsx -j <logid> to define the log messages prefix. >> > >> > Would it be better to allow any string as prefix, not limit to id >> > number? >> > >> >> Maybe, but I didn't see an immediate need for that beyond >> the concurrent test runs, for with numeric id is sufficient. > > I agreed, I don't have strong preference on this. > Nah, you were right the first time. Using numeric id was just me being lazy and then I had a bug where -j 0 (not surprising) does not prefix logs with 0: I'll fix this and re-post the fsx patches. Amir. -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/ltp/fsx.c b/ltp/fsx.c index d206a3a..a6420f6 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -132,6 +132,7 @@ unsigned long simulatedopcount = 0; /* -b flag */ int closeprob = 0; /* -c flag */ int debug = 0; /* -d flag */ unsigned long debugstart = 0; /* -D flag */ +int logid = 0; /* -j flag */ int flush = 0; /* -f flag */ int do_fsync = 0; /* -y flag */ unsigned long maxfilelen = 256 * 1024; /* -l flag */ @@ -195,13 +196,16 @@ static void *round_ptr_up(void *ptr, unsigned long align, unsigned long offset) } void -vwarnc(int code, const char *fmt, va_list ap) { - fprintf(stderr, "fsx: "); - if (fmt != NULL) { - vfprintf(stderr, fmt, ap); - fprintf(stderr, ": "); - } - fprintf(stderr, "%s\n", strerror(code)); +vwarnc(int code, const char *fmt, va_list ap) +{ + if (logid) + fprintf(stderr, "%d: ", logid); + fprintf(stderr, "fsx: "); + if (fmt != NULL) { + vfprintf(stderr, fmt, ap); + fprintf(stderr, ": "); + } + fprintf(stderr, "%s\n", strerror(code)); } void @@ -223,6 +227,8 @@ prt(const char *fmt, ...) va_start(args, fmt); vsnprintf(buffer, BUF_SIZE, fmt, args); va_end(args); + if (logid) + fprintf(stdout, "%d: ", logid); fputs(buffer, stdout); if (fsxlogf) fputs(buffer, fsxlogf); @@ -1624,12 +1630,13 @@ void usage(void) { fprintf(stdout, "usage: %s", - "fsx [-dnqxAFLOWZ] [-b opnum] [-c Prob] [-i logdev] [-l flen] [-m start:end] [-o oplen] [-p progressinterval] [-r readbdy] [-s style] [-t truncbdy] [-w writebdy] [-D startingop] [-N numops] [-P dirpath] [-S seed] fname\n\ + "fsx [-dnqxAFLOWZ] [-b opnum] [-c Prob] [-i logdev] [-j logid] [-l flen] [-m start:end] [-o oplen] [-p progressinterval] [-r readbdy] [-s style] [-t truncbdy] [-w writebdy] [-D startingop] [-N numops] [-P dirpath] [-S seed] fname\n\ -b opnum: beginning operation number (default 1)\n\ -c P: 1 in P chance of file close+open at each op (default infinity)\n\ -d: debug output for all operations\n\ -f flush and invalidate cache after I/O\n\ -i logdev: do integrity testing, logdev is the dm log writes device\n\ + -j logid: prefix logs with this id\n\ -l flen: the upper bound on file size (default 262144)\n\ -m startop:endop: monitor (print debug output) specified byte range (default 0:infinity)\n\ -n: no verifications of file size\n\ @@ -1862,7 +1869,7 @@ main(int argc, char **argv) setvbuf(stdout, (char *)0, _IOLBF, 0); /* line buffered stdout */ while ((ch = getopt_long(argc, argv, - "b:c:dfi:l:m:no:p:qr:s:t:w:xyAD:FKHzCILN:OP:RS:WZ", + "b:c:dfi:j:l:m:no:p:qr:s:t:w:xyAD:FKHzCILN:OP:RS:WZ", longopts, NULL)) != EOF) switch (ch) { case 'b': @@ -1897,6 +1904,9 @@ main(int argc, char **argv) exit(101); } break; + case 'j': + logid = getnum(optarg, &endp); + break; case 'l': maxfilelen = getnum(optarg, &endp); if (maxfilelen <= 0)
When writing the intermixed output of several fsx processes to a single log file, it is usefull to prefix logs with a log id. Use fsx -j <logid> to define the log messages prefix. Signed-off-by: Amir Goldstein <amir73il@gmail.com> --- ltp/fsx.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-)