* Bug with --buffer_compress_percentage
@ 2015-11-20 17:29 Matthew Eaton
2015-11-20 17:33 ` Matthew Eaton
2015-11-23 16:08 ` Jens Axboe
0 siblings, 2 replies; 14+ messages in thread
From: Matthew Eaton @ 2015-11-20 17:29 UTC (permalink / raw)
To: fio
I noticed that sometimes using --buffer_compress_percentage would not
result in the desired compression. After running some tests I found
that only some block sizes are affected.
512b, 4K, 8K, 16K, and 32K seem to work as expected.
64K, 128K, 256K, 512K, and 1024K exhibited the bug. I have not tested
beyond 1024K.
Here is the test script I used only changing block size for each test.
for i in {0..100}; do
fio --name=test --rw=write --bs=128k --ioengine=libaio --direct=1
--iodepth=32 --size=512m --refill_buffers
--buffer_compress_percentage=$i --filename=testfile.$i --eta=never
--output=/dev/null
done
for i in {0..100}; do
gzip -v testfile.$i &>> gzip.txt
done
rm *.gz
Below are compression results for 4K and then 128K. For 128K, you can
see compression stops matching at around 50%.
bs=4k
testfile.0: 0.3% -- replaced with testfile.0.gz
testfile.1: 1.2% -- replaced with testfile.1.gz
testfile.2: 2.2% -- replaced with testfile.2.gz
testfile.3: 3.2% -- replaced with testfile.3.gz
testfile.4: 4.1% -- replaced with testfile.4.gz
testfile.5: 5.1% -- replaced with testfile.5.gz
testfile.6: 6.1% -- replaced with testfile.6.gz
testfile.7: 7.1% -- replaced with testfile.7.gz
testfile.8: 8.1% -- replaced with testfile.8.gz
testfile.9: 9.1% -- replaced with testfile.9.gz
testfile.10: 10.1% -- replaced with testfile.10.gz
testfile.11: 11.1% -- replaced with testfile.11.gz
testfile.12: 12.1% -- replaced with testfile.12.gz
testfile.13: 13.1% -- replaced with testfile.13.gz
testfile.14: 14.1% -- replaced with testfile.14.gz
testfile.15: 15.1% -- replaced with testfile.15.gz
testfile.16: 16.0% -- replaced with testfile.16.gz
testfile.17: 17.0% -- replaced with testfile.17.gz
testfile.18: 18.0% -- replaced with testfile.18.gz
testfile.19: 19.0% -- replaced with testfile.19.gz
testfile.20: 20.0% -- replaced with testfile.20.gz
testfile.21: 21.0% -- replaced with testfile.21.gz
testfile.22: 22.0% -- replaced with testfile.22.gz
testfile.23: 23.0% -- replaced with testfile.23.gz
testfile.24: 24.0% -- replaced with testfile.24.gz
testfile.25: 25.0% -- replaced with testfile.25.gz
testfile.26: 25.9% -- replaced with testfile.26.gz
testfile.27: 26.9% -- replaced with testfile.27.gz
testfile.28: 27.9% -- replaced with testfile.28.gz
testfile.29: 28.9% -- replaced with testfile.29.gz
testfile.30: 29.9% -- replaced with testfile.30.gz
testfile.31: 30.9% -- replaced with testfile.31.gz
testfile.32: 31.9% -- replaced with testfile.32.gz
testfile.33: 32.9% -- replaced with testfile.33.gz
testfile.34: 33.9% -- replaced with testfile.34.gz
testfile.35: 34.9% -- replaced with testfile.35.gz
testfile.36: 35.9% -- replaced with testfile.36.gz
testfile.37: 36.9% -- replaced with testfile.37.gz
testfile.38: 37.9% -- replaced with testfile.38.gz
testfile.39: 38.9% -- replaced with testfile.39.gz
testfile.40: 39.9% -- replaced with testfile.40.gz
testfile.41: 40.8% -- replaced with testfile.41.gz
testfile.42: 41.8% -- replaced with testfile.42.gz
testfile.43: 42.8% -- replaced with testfile.43.gz
testfile.44: 43.8% -- replaced with testfile.44.gz
testfile.45: 44.8% -- replaced with testfile.45.gz
testfile.46: 45.8% -- replaced with testfile.46.gz
testfile.47: 46.8% -- replaced with testfile.47.gz
testfile.48: 47.8% -- replaced with testfile.48.gz
testfile.49: 48.8% -- replaced with testfile.49.gz
testfile.50: 49.8% -- replaced with testfile.50.gz
testfile.51: 50.3% -- replaced with testfile.51.gz
testfile.52: 51.2% -- replaced with testfile.52.gz
testfile.53: 52.3% -- replaced with testfile.53.gz
testfile.54: 53.2% -- replaced with testfile.54.gz
testfile.55: 54.2% -- replaced with testfile.55.gz
testfile.56: 55.3% -- replaced with testfile.56.gz
testfile.57: 56.1% -- replaced with testfile.57.gz
testfile.58: 57.2% -- replaced with testfile.58.gz
testfile.59: 58.2% -- replaced with testfile.59.gz
testfile.60: 59.2% -- replaced with testfile.60.gz
testfile.61: 60.2% -- replaced with testfile.61.gz
testfile.62: 61.2% -- replaced with testfile.62.gz
testfile.63: 62.2% -- replaced with testfile.63.gz
testfile.64: 63.2% -- replaced with testfile.64.gz
testfile.65: 64.1% -- replaced with testfile.65.gz
testfile.66: 65.2% -- replaced with testfile.66.gz
testfile.67: 66.2% -- replaced with testfile.67.gz
testfile.68: 67.2% -- replaced with testfile.68.gz
testfile.69: 68.2% -- replaced with testfile.69.gz
testfile.70: 69.2% -- replaced with testfile.70.gz
testfile.71: 70.2% -- replaced with testfile.71.gz
testfile.72: 71.2% -- replaced with testfile.72.gz
testfile.73: 72.2% -- replaced with testfile.73.gz
testfile.74: 73.2% -- replaced with testfile.74.gz
testfile.75: 74.3% -- replaced with testfile.75.gz
testfile.76: 75.2% -- replaced with testfile.76.gz
testfile.77: 76.1% -- replaced with testfile.77.gz
testfile.78: 77.2% -- replaced with testfile.78.gz
testfile.79: 78.2% -- replaced with testfile.79.gz
testfile.80: 79.1% -- replaced with testfile.80.gz
testfile.81: 80.1% -- replaced with testfile.81.gz
testfile.82: 81.2% -- replaced with testfile.82.gz
testfile.83: 82.2% -- replaced with testfile.83.gz
testfile.84: 83.1% -- replaced with testfile.84.gz
testfile.85: 84.2% -- replaced with testfile.85.gz
testfile.86: 85.1% -- replaced with testfile.86.gz
testfile.87: 86.1% -- replaced with testfile.87.gz
testfile.88: 87.2% -- replaced with testfile.88.gz
testfile.89: 88.2% -- replaced with testfile.89.gz
testfile.90: 89.2% -- replaced with testfile.90.gz
testfile.91: 90.1% -- replaced with testfile.91.gz
testfile.92: 91.1% -- replaced with testfile.92.gz
testfile.93: 92.0% -- replaced with testfile.93.gz
testfile.94: 93.2% -- replaced with testfile.94.gz
testfile.95: 94.1% -- replaced with testfile.95.gz
testfile.96: 95.0% -- replaced with testfile.96.gz
testfile.97: 96.4% -- replaced with testfile.97.gz
testfile.98: 97.3% -- replaced with testfile.98.gz
testfile.99: 98.5% -- replaced with testfile.99.gz
testfile.100: 99.9% -- replaced with testfile.100.gz
bs=128k
testfile.0: 0.3% -- replaced with testfile.0.gz
testfile.1: 1.3% -- replaced with testfile.1.gz
testfile.2: 2.3% -- replaced with testfile.2.gz
testfile.3: 3.3% -- replaced with testfile.3.gz
testfile.4: 4.2% -- replaced with testfile.4.gz
testfile.5: 5.2% -- replaced with testfile.5.gz
testfile.6: 6.2% -- replaced with testfile.6.gz
testfile.7: 7.2% -- replaced with testfile.7.gz
testfile.8: 8.2% -- replaced with testfile.8.gz
testfile.9: 9.2% -- replaced with testfile.9.gz
testfile.10: 10.2% -- replaced with testfile.10.gz
testfile.11: 11.2% -- replaced with testfile.11.gz
testfile.12: 12.2% -- replaced with testfile.12.gz
testfile.13: 13.2% -- replaced with testfile.13.gz
testfile.14: 14.2% -- replaced with testfile.14.gz
testfile.15: 15.2% -- replaced with testfile.15.gz
testfile.16: 16.1% -- replaced with testfile.16.gz
testfile.17: 17.1% -- replaced with testfile.17.gz
testfile.18: 18.1% -- replaced with testfile.18.gz
testfile.19: 19.1% -- replaced with testfile.19.gz
testfile.20: 20.1% -- replaced with testfile.20.gz
testfile.21: 21.1% -- replaced with testfile.21.gz
testfile.22: 22.1% -- replaced with testfile.22.gz
testfile.23: 23.1% -- replaced with testfile.23.gz
testfile.24: 24.1% -- replaced with testfile.24.gz
testfile.25: 25.1% -- replaced with testfile.25.gz
testfile.26: 26.1% -- replaced with testfile.26.gz
testfile.27: 27.1% -- replaced with testfile.27.gz
testfile.28: 28.1% -- replaced with testfile.28.gz
testfile.29: 29.1% -- replaced with testfile.29.gz
testfile.30: 30.0% -- replaced with testfile.30.gz
testfile.31: 31.0% -- replaced with testfile.31.gz
testfile.32: 32.0% -- replaced with testfile.32.gz
testfile.33: 33.0% -- replaced with testfile.33.gz
testfile.34: 34.0% -- replaced with testfile.34.gz
testfile.35: 35.0% -- replaced with testfile.35.gz
testfile.36: 36.0% -- replaced with testfile.36.gz
testfile.37: 37.0% -- replaced with testfile.37.gz
testfile.38: 38.0% -- replaced with testfile.38.gz
testfile.39: 39.0% -- replaced with testfile.39.gz
testfile.40: 40.0% -- replaced with testfile.40.gz
testfile.41: 41.0% -- replaced with testfile.41.gz
testfile.42: 42.0% -- replaced with testfile.42.gz
testfile.43: 43.0% -- replaced with testfile.43.gz
testfile.44: 44.0% -- replaced with testfile.44.gz
testfile.45: 45.0% -- replaced with testfile.45.gz
testfile.46: 46.0% -- replaced with testfile.46.gz
testfile.47: 47.0% -- replaced with testfile.47.gz
testfile.48: 47.9% -- replaced with testfile.48.gz
testfile.49: 48.9% -- replaced with testfile.49.gz
testfile.50: 49.9% -- replaced with testfile.50.gz
testfile.51: 48.9% -- replaced with testfile.51.gz
testfile.52: 47.9% -- replaced with testfile.52.gz
testfile.53: 47.0% -- replaced with testfile.53.gz
testfile.54: 46.0% -- replaced with testfile.54.gz
testfile.55: 45.0% -- replaced with testfile.55.gz
testfile.56: 44.0% -- replaced with testfile.56.gz
testfile.57: 43.0% -- replaced with testfile.57.gz
testfile.58: 42.0% -- replaced with testfile.58.gz
testfile.59: 41.0% -- replaced with testfile.59.gz
testfile.60: 40.0% -- replaced with testfile.60.gz
testfile.61: 39.0% -- replaced with testfile.61.gz
testfile.62: 38.0% -- replaced with testfile.62.gz
testfile.63: 37.0% -- replaced with testfile.63.gz
testfile.64: 36.0% -- replaced with testfile.64.gz
testfile.65: 35.0% -- replaced with testfile.65.gz
testfile.66: 34.0% -- replaced with testfile.66.gz
testfile.67: 34.0% -- replaced with testfile.67.gz
testfile.68: 36.0% -- replaced with testfile.68.gz
testfile.69: 38.0% -- replaced with testfile.69.gz
testfile.70: 40.0% -- replaced with testfile.70.gz
testfile.71: 42.0% -- replaced with testfile.71.gz
testfile.72: 43.9% -- replaced with testfile.72.gz
testfile.73: 45.9% -- replaced with testfile.73.gz
testfile.74: 47.9% -- replaced with testfile.74.gz
testfile.75: 49.9% -- replaced with testfile.75.gz
testfile.76: 47.9% -- replaced with testfile.76.gz
testfile.77: 45.9% -- replaced with testfile.77.gz
testfile.78: 43.9% -- replaced with testfile.78.gz
testfile.79: 41.9% -- replaced with testfile.79.gz
testfile.80: 40.0% -- replaced with testfile.80.gz
testfile.81: 42.9% -- replaced with testfile.81.gz
testfile.82: 45.9% -- replaced with testfile.82.gz
testfile.83: 48.9% -- replaced with testfile.83.gz
testfile.84: 47.9% -- replaced with testfile.84.gz
testfile.85: 44.9% -- replaced with testfile.85.gz
testfile.86: 43.9% -- replaced with testfile.86.gz
testfile.87: 47.9% -- replaced with testfile.87.gz
testfile.88: 87.4% -- replaced with testfile.88.gz
testfile.89: 88.4% -- replaced with testfile.89.gz
testfile.90: 89.4% -- replaced with testfile.90.gz
testfile.91: 90.4% -- replaced with testfile.91.gz
testfile.92: 91.4% -- replaced with testfile.92.gz
testfile.93: 92.4% -- replaced with testfile.93.gz
testfile.94: 93.4% -- replaced with testfile.94.gz
testfile.95: 94.4% -- replaced with testfile.95.gz
testfile.96: 95.4% -- replaced with testfile.96.gz
testfile.97: 96.4% -- replaced with testfile.97.gz
testfile.98: 97.4% -- replaced with testfile.98.gz
testfile.99: 98.4% -- replaced with testfile.99.gz
testfile.100: 99.9% -- replaced with testfile.100.gz
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-20 17:29 Bug with --buffer_compress_percentage Matthew Eaton
@ 2015-11-20 17:33 ` Matthew Eaton
2015-11-23 16:08 ` Jens Axboe
1 sibling, 0 replies; 14+ messages in thread
From: Matthew Eaton @ 2015-11-20 17:33 UTC (permalink / raw)
To: fio
On Fri, Nov 20, 2015 at 9:29 AM, Matthew Eaton <m.eaton82@gmail.com> wrote:
> I noticed that sometimes using --buffer_compress_percentage would not
> result in the desired compression. After running some tests I found
> that only some block sizes are affected.
Forgot to mention my fio version is: fio-2.2.11-17-gd883ef
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-20 17:29 Bug with --buffer_compress_percentage Matthew Eaton
2015-11-20 17:33 ` Matthew Eaton
@ 2015-11-23 16:08 ` Jens Axboe
2015-11-23 16:16 ` Jens Axboe
1 sibling, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-23 16:08 UTC (permalink / raw)
To: Matthew Eaton, fio
On 11/20/2015 10:29 AM, Matthew Eaton wrote:
> I noticed that sometimes using --buffer_compress_percentage would not
> result in the desired compression. After running some tests I found
> that only some block sizes are affected.
>
> 512b, 4K, 8K, 16K, and 32K seem to work as expected.
>
> 64K, 128K, 256K, 512K, and 1024K exhibited the bug. I have not tested
> beyond 1024K.
>
> Here is the test script I used only changing block size for each test.
>
> for i in {0..100}; do
> fio --name=test --rw=write --bs=128k --ioengine=libaio --direct=1
> --iodepth=32 --size=512m --refill_buffers
> --buffer_compress_percentage=$i --filename=testfile.$i --eta=never
> --output=/dev/null
> done
>
> for i in {0..100}; do
> gzip -v testfile.$i &>> gzip.txt
> done
>
> rm *.gz
>
> Below are compression results for 4K and then 128K. For 128K, you can
> see compression stops matching at around 50%.
I think this is an artifact of how gzip compression works, it doesn't
have an unlimited size window. It's 32k, iirc. Fio should fill so that
it ideally would compress to the given size with an ideal compression
algorithm.
You'd probably want to use buffer_compress_chunk=x to always force fio
to operate in sizes of that for compression, if you want to ensure that
gzip would be able to compress to the specified ratio. I do think we
have a loop missing though for that to do what you need, let me test
that and report back.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-23 16:08 ` Jens Axboe
@ 2015-11-23 16:16 ` Jens Axboe
2015-11-23 22:15 ` Matthew Eaton
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-23 16:16 UTC (permalink / raw)
To: Matthew Eaton, fio
[-- Attachment #1: Type: text/plain, Size: 1786 bytes --]
On 11/23/2015 09:08 AM, Jens Axboe wrote:
> On 11/20/2015 10:29 AM, Matthew Eaton wrote:
>> I noticed that sometimes using --buffer_compress_percentage would not
>> result in the desired compression. After running some tests I found
>> that only some block sizes are affected.
>>
>> 512b, 4K, 8K, 16K, and 32K seem to work as expected.
>>
>> 64K, 128K, 256K, 512K, and 1024K exhibited the bug. I have not tested
>> beyond 1024K.
>>
>> Here is the test script I used only changing block size for each test.
>>
>> for i in {0..100}; do
>> fio --name=test --rw=write --bs=128k --ioengine=libaio --direct=1
>> --iodepth=32 --size=512m --refill_buffers
>> --buffer_compress_percentage=$i --filename=testfile.$i --eta=never
>> --output=/dev/null
>> done
>>
>> for i in {0..100}; do
>> gzip -v testfile.$i &>> gzip.txt
>> done
>>
>> rm *.gz
>>
>> Below are compression results for 4K and then 128K. For 128K, you can
>> see compression stops matching at around 50%.
>
> I think this is an artifact of how gzip compression works, it doesn't
> have an unlimited size window. It's 32k, iirc. Fio should fill so that
> it ideally would compress to the given size with an ideal compression
> algorithm.
>
> You'd probably want to use buffer_compress_chunk=x to always force fio
> to operate in sizes of that for compression, if you want to ensure that
> gzip would be able to compress to the specified ratio. I do think we
> have a loop missing though for that to do what you need, let me test
> that and report back.
I think things should work for all sizes, if you add this patch and then
add buffer_compress_chunk=32k or similar to your job file. You can do
that for smaller block sizes as well, fio will use the minimum of that
chunk size or the write block size.
--
Jens Axboe
[-- Attachment #2: big-chunk-compress.patch --]
[-- Type: text/x-patch, Size: 1303 bytes --]
diff --git a/io_u.c b/io_u.c
index 6b6b47d0a1e1..b1aa4141cdbc 100644
--- a/io_u.c
+++ b/io_u.c
@@ -1919,6 +1919,7 @@ void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write,
unsigned int perc = td->o.compress_percentage;
struct frand_state *rs;
unsigned int left = max_bs;
+ unsigned int this_write;
do {
rs = get_buf_state(td);
@@ -1926,20 +1927,21 @@ void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write,
min_write = min(min_write, left);
if (perc) {
- unsigned int seg = min_write;
-
- seg = min(min_write, td->o.compress_chunk);
- if (!seg)
- seg = min_write;
-
- fill_random_buf_percentage(rs, buf, perc, seg,
- min_write, o->buffer_pattern,
- o->buffer_pattern_bytes);
- } else
+ this_write = min(min_write, td->o.compress_chunk);
+ if (!this_write)
+ this_write = min_write;
+
+ fill_random_buf_percentage(rs, buf, perc,
+ this_write, this_write,
+ o->buffer_pattern,
+ o->buffer_pattern_bytes);
+ } else {
fill_random_buf(rs, buf, min_write);
+ this_write = min_write;
+ }
- buf += min_write;
- left -= min_write;
+ buf += this_write;
+ left -= this_write;
save_buf_state(td, rs);
} while (left);
} else if (o->buffer_pattern_bytes)
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-23 16:16 ` Jens Axboe
@ 2015-11-23 22:15 ` Matthew Eaton
2015-11-24 3:13 ` Jens Axboe
0 siblings, 1 reply; 14+ messages in thread
From: Matthew Eaton @ 2015-11-23 22:15 UTC (permalink / raw)
To: Jens Axboe; +Cc: fio
>> I think this is an artifact of how gzip compression works, it doesn't
>> have an unlimited size window. It's 32k, iirc. Fio should fill so that
>> it ideally would compress to the given size with an ideal compression
>> algorithm.
>>
>> You'd probably want to use buffer_compress_chunk=x to always force fio
>> to operate in sizes of that for compression, if you want to ensure that
>> gzip would be able to compress to the specified ratio. I do think we
>> have a loop missing though for that to do what you need, let me test
>> that and report back.
>
>
> I think things should work for all sizes, if you add this patch and then add
> buffer_compress_chunk=32k or similar to your job file. You can do that for
> smaller block sizes as well, fio will use the minimum of that chunk size or
> the write block size.
>
> --
> Jens Axboe
>
Applied the patch and added buffer_compress_chunk=32k and now it's
working for all block sizes. Thank you for the info and the patch!
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-23 22:15 ` Matthew Eaton
@ 2015-11-24 3:13 ` Jens Axboe
2015-11-25 17:16 ` Matthew Eaton
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-24 3:13 UTC (permalink / raw)
To: Matthew Eaton; +Cc: fio
On 11/23/2015 03:15 PM, Matthew Eaton wrote:
>>> I think this is an artifact of how gzip compression works, it doesn't
>>> have an unlimited size window. It's 32k, iirc. Fio should fill so that
>>> it ideally would compress to the given size with an ideal compression
>>> algorithm.
>>>
>>> You'd probably want to use buffer_compress_chunk=x to always force fio
>>> to operate in sizes of that for compression, if you want to ensure that
>>> gzip would be able to compress to the specified ratio. I do think we
>>> have a loop missing though for that to do what you need, let me test
>>> that and report back.
>>
>>
>> I think things should work for all sizes, if you add this patch and then add
>> buffer_compress_chunk=32k or similar to your job file. You can do that for
>> smaller block sizes as well, fio will use the minimum of that chunk size or
>> the write block size.
>>
>> --
>> Jens Axboe
>>
>
> Applied the patch and added buffer_compress_chunk=32k and now it's
> working for all block sizes. Thank you for the info and the patch!
Perfect, thanks for reporting and followup testing.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-24 3:13 ` Jens Axboe
@ 2015-11-25 17:16 ` Matthew Eaton
2015-11-25 17:29 ` Jens Axboe
0 siblings, 1 reply; 14+ messages in thread
From: Matthew Eaton @ 2015-11-25 17:16 UTC (permalink / raw)
To: Jens Axboe; +Cc: fio
> Perfect, thanks for reporting and followup testing.
>
> --
> Jens Axboe
Unfortunately I am having an issue with buffer_compress_chunk in the
2.2.12 release. Removing buffer_compress_chunk from the tests below
fixes the issues.
fio --name=test --rw=write --bs=4k --ioengine=libaio --direct=1
--iodepth=32 --size=1g --refill_buffers
--buffer_compress_percentage=50 --buffer_compress_chunk=32k
--filename=testfile
test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
fio-2.2.12
Starting 1 process
fio: pid=24516, got signal=11
Run status group 0 (all jobs):
Disk stats (read/write):
sda: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00%
fio: file hash not empty on exit
fio --name=test --rw=write --bs=128k --ioengine=libaio --direct=1
--iodepth=32 --size=1g --refill_buffers
--buffer_compress_percentage=50 --buffer_compress_chunk=32k
--filename=testfile
test: (g=0): rw=write, bs=128K-128K/128K-128K/128K-128K,
ioengine=libaio, iodepth=32
fio-2.2.12
Starting 1 process
Segmentation fault (core dumped)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-25 17:16 ` Matthew Eaton
@ 2015-11-25 17:29 ` Jens Axboe
2015-11-26 0:55 ` Matthew Eaton
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-25 17:29 UTC (permalink / raw)
To: Matthew Eaton; +Cc: fio
On 11/25/2015 10:16 AM, Matthew Eaton wrote:
>> Perfect, thanks for reporting and followup testing.
>>
>> --
>> Jens Axboe
>
> Unfortunately I am having an issue with buffer_compress_chunk in the
> 2.2.12 release. Removing buffer_compress_chunk from the tests below
> fixes the issues.
>
> fio --name=test --rw=write --bs=4k --ioengine=libaio --direct=1
> --iodepth=32 --size=1g --refill_buffers
> --buffer_compress_percentage=50 --buffer_compress_chunk=32k
> --filename=testfile
> test: (g=0): rw=write, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
> fio-2.2.12
> Starting 1 process
> fio: pid=24516, got signal=11
>
>
> Run status group 0 (all jobs):
>
> Disk stats (read/write):
> sda: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00%
> fio: file hash not empty on exit
>
>
> fio --name=test --rw=write --bs=128k --ioengine=libaio --direct=1
> --iodepth=32 --size=1g --refill_buffers
> --buffer_compress_percentage=50 --buffer_compress_chunk=32k
> --filename=testfile
> test: (g=0): rw=write, bs=128K-128K/128K-128K/128K-128K,
> ioengine=libaio, iodepth=32
> fio-2.2.12
> Starting 1 process
> Segmentation fault (core dumped)
That's odd, I can't reproduce that. Could this just be a bad build? Fio
sometimes fails to rebuild correctly between version. Does it persist
across a make clean && make?
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-25 17:29 ` Jens Axboe
@ 2015-11-26 0:55 ` Matthew Eaton
2015-11-26 4:26 ` Jens Axboe
0 siblings, 1 reply; 14+ messages in thread
From: Matthew Eaton @ 2015-11-26 0:55 UTC (permalink / raw)
To: Jens Axboe; +Cc: fio
> That's odd, I can't reproduce that. Could this just be a bad build? Fio
> sometimes fails to rebuild correctly between version. Does it persist across
> a make clean && make?
>
>
> --
> Jens Axboe
>
Weird! I will look into this again on Monday when I am back at work.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-26 0:55 ` Matthew Eaton
@ 2015-11-26 4:26 ` Jens Axboe
2015-11-30 21:17 ` Matthew Eaton
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-26 4:26 UTC (permalink / raw)
To: Matthew Eaton; +Cc: fio
On 11/25/2015 05:55 PM, Matthew Eaton wrote:
>> That's odd, I can't reproduce that. Could this just be a bad build? Fio
>> sometimes fails to rebuild correctly between version. Does it persist across
>> a make clean && make?
>>
>>
>> --
>> Jens Axboe
>>
>
> Weird! I will look into this again on Monday when I am back at work.
I think I found and fixed the main issue why the rebuild issue would
happen, init.c didn't get the right dependencies. Hopefully a make clean
won't be needed going forward.
I still think that is your issue, I don't see any problems with the
buffer filling. So do let me know when you test on Monday, thanks.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-26 4:26 ` Jens Axboe
@ 2015-11-30 21:17 ` Matthew Eaton
2015-11-30 21:20 ` Jens Axboe
0 siblings, 1 reply; 14+ messages in thread
From: Matthew Eaton @ 2015-11-30 21:17 UTC (permalink / raw)
To: Jens Axboe; +Cc: fio
> I think I found and fixed the main issue why the rebuild issue would happen,
> init.c didn't get the right dependencies. Hopefully a make clean won't be
> needed going forward.
>
> I still think that is your issue, I don't see any problems with the buffer
> filling. So do let me know when you test on Monday, thanks.
>
> --
> Jens Axboe
>
I tested again trying a make clean as well as a fresh clone from git
but I could still reproduce. This system is Ubuntu 14.04, so for
kicks I moved to a completely different system and installed Fedora 23
and fio from git, but had the same problem!
This is my configure output. Could I be missing something?
Operating system Linux
CPU x86_64
Big endian no
Compiler gcc
Cross compile no
Static build no
Wordsize 64
zlib yes
Linux AIO support yes
POSIX AIO support yes
POSIX AIO support needs -lrt yes
POSIX AIO fsync yes
Solaris AIO support no
__sync_fetch_and_add yes
libverbs yes
rdmacm yes
Linux fallocate yes
POSIX fadvise yes
POSIX fallocate yes
sched_setaffinity(3 arg) yes
sched_setaffinity(2 arg) no
clock_gettime yes
CLOCK_MONOTONIC yes
CLOCK_MONOTONIC_RAW yes
CLOCK_MONOTONIC_PRECISE no
gettimeofday yes
fdatasync yes
sync_file_range yes
EXT4 move extent yes
Linux splice(2) yes
GUASI no
Fusion-io atomic engine no
libnuma no
strsep yes
strcasestr yes
strlcat no
getopt_long_only() yes
inet_aton yes
socklen_t yes
__thread yes
RUSAGE_THREAD yes
SCHED_IDLE yes
TCP_NODELAY yes
Net engine window_size yes
TCP_MAXSEG yes
RLIMIT_MEMLOCK yes
pwritev/preadv yes
IPv6 helpers yes
Rados Block Device engine no
setvbuf yes
Gluster API engine no
s390_z196_facilities no
HDFS engine no
MTD yes
lex/yacc for arithmetic no
getmntent yes
getmntinfo no
Static Assert yes
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-30 21:17 ` Matthew Eaton
@ 2015-11-30 21:20 ` Jens Axboe
2015-11-30 21:30 ` Jens Axboe
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-30 21:20 UTC (permalink / raw)
To: Matthew Eaton; +Cc: fio
On 11/30/2015 02:17 PM, Matthew Eaton wrote:
>> I think I found and fixed the main issue why the rebuild issue would happen,
>> init.c didn't get the right dependencies. Hopefully a make clean won't be
>> needed going forward.
>>
>> I still think that is your issue, I don't see any problems with the buffer
>> filling. So do let me know when you test on Monday, thanks.
>>
>> --
>> Jens Axboe
>>
>
> I tested again trying a make clean as well as a fresh clone from git
> but I could still reproduce. This system is Ubuntu 14.04, so for
> kicks I moved to a completely different system and installed Fedora 23
> and fio from git, but had the same problem!
>
> This is my configure output. Could I be missing something?
Nope, that part should not matter. I'm probably wrong, then. I'll try
and reproduce!
BTW, the rebuild bug should hopefully be fixed, so I can trust reports
like this more in the future.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-30 21:20 ` Jens Axboe
@ 2015-11-30 21:30 ` Jens Axboe
2015-11-30 22:02 ` Matthew Eaton
0 siblings, 1 reply; 14+ messages in thread
From: Jens Axboe @ 2015-11-30 21:30 UTC (permalink / raw)
To: Matthew Eaton; +Cc: fio
On 11/30/2015 02:20 PM, Jens Axboe wrote:
> On 11/30/2015 02:17 PM, Matthew Eaton wrote:
>>> I think I found and fixed the main issue why the rebuild issue would
>>> happen,
>>> init.c didn't get the right dependencies. Hopefully a make clean
>>> won't be
>>> needed going forward.
>>>
>>> I still think that is your issue, I don't see any problems with the
>>> buffer
>>> filling. So do let me know when you test on Monday, thanks.
>>>
>>> --
>>> Jens Axboe
>>>
>>
>> I tested again trying a make clean as well as a fresh clone from git
>> but I could still reproduce. This system is Ubuntu 14.04, so for
>> kicks I moved to a completely different system and installed Fedora 23
>> and fio from git, but had the same problem!
>>
>> This is my configure output. Could I be missing something?
>
> Nope, that part should not matter. I'm probably wrong, then. I'll try
> and reproduce!
Try current -git, I think I found it.
--
Jens Axboe
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Bug with --buffer_compress_percentage
2015-11-30 21:30 ` Jens Axboe
@ 2015-11-30 22:02 ` Matthew Eaton
0 siblings, 0 replies; 14+ messages in thread
From: Matthew Eaton @ 2015-11-30 22:02 UTC (permalink / raw)
To: Jens Axboe; +Cc: fio
> Try current -git, I think I found it.
>
> --
> Jens Axboe
>
That did the trick! Thanks again!
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2015-11-30 22:02 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-20 17:29 Bug with --buffer_compress_percentage Matthew Eaton
2015-11-20 17:33 ` Matthew Eaton
2015-11-23 16:08 ` Jens Axboe
2015-11-23 16:16 ` Jens Axboe
2015-11-23 22:15 ` Matthew Eaton
2015-11-24 3:13 ` Jens Axboe
2015-11-25 17:16 ` Matthew Eaton
2015-11-25 17:29 ` Jens Axboe
2015-11-26 0:55 ` Matthew Eaton
2015-11-26 4:26 ` Jens Axboe
2015-11-30 21:17 ` Matthew Eaton
2015-11-30 21:20 ` Jens Axboe
2015-11-30 21:30 ` Jens Axboe
2015-11-30 22:02 ` Matthew Eaton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox