blktrace: disallow -o when using multiple devices
Quoted 11 lines · Alan D. Brunelle
Document that "-o" does not work when specyfing multiple devices to blktrace, also: enforce this by stopping blktrace when one tries do do this.
The technical reason why "-o" doesn't work with multiple devices is because we use multiple threads of execution - one per device/CPU pair - and each of them opens a file named "<prefix>.blktrace.<cpu>". With the "-o" all of the"<prefix>" values are the same - so multiple threads open the same file and try to do output. Not good. Without the "-o" we get unique files named: "<device>.blktrace.<cpu>" - as the tuple (<device>,<cpu>) is unique.
Alan,
-Wouldn't it be a good idea to just add <prefix> before the filename(s) that would have been created in either the single or multiple device case? I.e. in the multiple device case, how about "<prefix>.<device>.blktrace.<cpu>"? That way the program always does what the user wants, no special case documentation required.
-I just tested that the blktrace "-D" option (output dir, create if doesn't exist) works for the multiple device case as long as the -o option isn't also used. So, this is another alternative.
-I found the following inconsistencies between the doc and the command line help, these would probably be a separate patch:
--blktrace
---doc is missing -[Dhlps]
---doc still contains deprecated option -k
--blkparse
---doc is missing -[aAD]
---doc still contains deprecated option -m
Thanks,
Brett
Quoted 5 lines · Brett Russ
-Wouldn't it be a good idea to just add<prefix> before the filename(s) that would have been created in either the single or multiple device case? I.e. in the multiple device case, how about "<prefix>.<device>.blktrace.<cpu>"? That way the program always does what the user wants, no special case documentation required.
I just now read in full your second email on the original thread where you mentioned doing this solution, sorry for the redundancy. You expressed reservations about it, wondering what else it might break. I'd suggest we make the change and test it, rather than having a "-o" option with limited utility? I imagine the biggest question mark is how blkparse handles it.
-Brett
Quoted 7 lines · Brett Russ
Quoted 5 lines · Brett Russ
-Wouldn't it be a good idea to just add<prefix> before the filename(s) that would have been created in either the single or multiple device case? I.e. in the multiple device case, how about "<prefix>.<device>.blktrace.<cpu>"? That way the program always does what the user wants, no special case documentation required.
Quoted 8 lines
I just now read in full your second email on the original thread where you mentioned doing this solution, sorry for the redundancy. You expressed reservations about it, wondering what else it might break. I'd suggest we make the change and test it, rather than having a "-o" option with limited utility? I imagine the biggest question mark is how blkparse handles it.
-Brett
I'm not so sure about this Brett - people may have scripts out there that depend on the current semantics. I'd be OK with doing it if Jens thought this was a minor concern...
Regards,
Alan
Quoted 15 lines · Alan D. Brunelle
Quoted 14 lines · Brett Russ
Quoted 5 lines · Brett Russ
-Wouldn't it be a good idea to just add<prefix> before the filename(s) that would have been created in either the single or multiple device case? I.e. in the multiple device case, how about "<prefix>.<device>.blktrace.<cpu>"? That way the program always does what the user wants, no special case documentation required.
I just now read in full your second email on the original thread where you mentioned doing this solution, sorry for the redundancy. You expressed reservations about it, wondering what else it might break. I'd suggest we make the change and test it, rather than having a "-o" option with limited utility? I imagine the biggest question mark is how blkparse handles it.
Quoted 5 lines
Quoted 1 line
-Brett
I'm not so sure about this Brett - people may have scripts out there that depend on the current semantics. I'd be OK with doing it if Jens thought this was a minor concern...
As long as the change only affected output of multiple devices with "-o", which doesn't work today, then I'd think no scripts could be affected.
Thanks,
Brett