From: Vladislav Bolkhovitin <vst@vlnb.net>
To: Ronald Moesbergen <intercommit@gmail.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
"kosaki.motohiro@jp.fujitsu.com" <kosaki.motohiro@jp.fujitsu.com>,
"Alan.Brunelle@hp.com" <Alan.Brunelle@hp.com>,
"hifumi.hisashi@oss.ntt.co.jp" <hifumi.hisashi@oss.ntt.co.jp>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
"jens.axboe@oracle.com" <jens.axboe@oracle.com>,
"randy.dunlap@oracle.com" <randy.dunlap@oracle.com>,
Bart Van Assche <bart.vanassche@gmail.com>
Subject: Re: [RESEND] [PATCH] readahead:add blk_run_backing_dev
Date: Tue, 30 Jun 2009 14:22:32 +0400 [thread overview]
Message-ID: <4A49E768.5090305@vlnb.net> (raw)
In-Reply-To: <a0272b440906290700v7367d1c1r7237fd6593be00d2@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 11777 bytes --]
Ronald Moesbergen, on 06/29/2009 06:00 PM wrote:
> ... tests ...
>
>> We started with 2.6.29, so why not complete with it (to save additional
>> Ronald's effort to move on 2.6.30)?
>>
>>>> 2. Default vanilla 2.6.29 kernel, 512 KB read-ahead, the rest is default
>>> How about 2MB RAID readahead size? That transforms into about 512KB
>>> per-disk readahead size.
>> OK. Ronald, can you 4 more test cases, please:
>>
>> 7. Default vanilla 2.6.29 kernel, 2MB read-ahead, the rest is default
>>
>> 8. Default vanilla 2.6.29 kernel, 2MB read-ahead, 64 KB
>> max_sectors_kb, the rest is default
>>
>> 9. Patched by the Fengguang's patch vanilla 2.6.29 kernel, 2MB
>> read-ahead, the rest is default
>>
>> 10. Patched by the Fengguang's patch vanilla 2.6.29 kernel, 2MB
>> read-ahead, 64 KB max_sectors_kb, the rest is default
>
> The results:
>
> Unpatched, 128KB readahead, 512 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 5.621 5.503 5.419 185.744 2.780 2.902
> 33554432 6.628 5.897 6.242 164.068 7.827 5.127
> 16777216 7.312 7.165 7.614 139.148 3.501 8.697
> 8388608 8.719 8.408 8.694 119.003 1.973 14.875
> 4194304 11.836 12.192 12.137 84.958 1.111 21.239
> 2097152 13.452 13.992 14.035 74.090 1.442 37.045
> 1048576 12.759 11.996 12.195 83.194 2.152 83.194
> 524288 11.895 12.297 12.587 83.570 1.945 167.140
> 262144 7.325 7.285 7.444 139.304 1.272 557.214
> 131072 7.992 8.832 7.952 124.279 5.901 994.228
> 65536 10.940 10.062 10.122 98.847 3.715 1581.545
> 32768 9.973 10.012 9.945 102.640 0.281 3284.493
> 16384 11.377 10.538 10.692 94.316 3.100 6036.222
>
> Unpatched, 512KB readahead, 512 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 5.032 4.770 5.265 204.228 8.271 3.191
> 33554432 5.569 5.712 5.863 179.263 3.755 5.602
> 16777216 6.661 6.857 6.550 153.132 2.888 9.571
> 8388608 8.022 8.000 7.978 127.998 0.288 16.000
> 4194304 10.959 11.579 12.208 88.586 3.902 22.146
> 2097152 13.692 12.670 12.625 78.906 2.914 39.453
> 1048576 11.120 11.144 10.878 92.703 1.018 92.703
> 524288 11.234 10.915 11.374 91.667 1.587 183.334
Can somebody explain those big throughput drops (66% in this case, 68%
in the above case)? It happens nearly in all the tests, only cases of 64
max_sectors_kb with big RA sizes suffer less from it.
It looks like a possible sing of some not understood deficiency in I/O
submission or read-ahead path.
(blockdev-perftest just runs dd reading 1 GB for each "bs" 3 times, then
calculates the average and IOPS, then prints the results. It's small, so
I attached it.)
> 262144 6.848 6.678 6.795 151.191 1.594 604.763
> 131072 7.393 7.367 7.337 139.025 0.428 1112.202
> 65536 10.003 10.919 10.015 99.466 4.019 1591.462
> 32768 10.117 10.124 10.169 101.018 0.229 3232.574
> 16384 11.614 11.027 11.029 91.293 2.207 5842.771
>
> Unpatched, 2MB readahead, 512 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 5.268 5.316 5.418 191.996 2.241 3.000
> 33554432 5.831 6.459 6.110 167.259 6.977 5.227
> 16777216 7.313 7.069 7.197 142.385 1.972 8.899
> 8388608 8.657 8.500 8.498 119.754 1.039 14.969
> 4194304 11.846 12.116 11.801 85.911 0.994 21.478
> 2097152 12.917 13.652 13.100 77.484 1.808 38.742
> 1048576 9.544 10.667 10.807 99.345 5.640 99.345
> 524288 11.736 7.171 6.599 128.410 29.539 256.821
> 262144 7.530 7.403 7.416 137.464 1.053 549.857
> 131072 8.741 8.002 8.022 124.256 5.029 994.051
> 65536 10.701 10.138 10.090 99.394 2.629 1590.311
> 32768 9.978 9.950 9.934 102.875 0.188 3291.994
> 16384 11.435 10.823 10.907 92.684 2.234 5931.749
>
> Unpatched, 512KB readahead, 64 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 3.994 3.991 4.123 253.774 3.838 3.965
> 33554432 4.100 4.329 4.161 244.111 5.569 7.628
> 16777216 5.476 4.835 5.079 200.148 10.177 12.509
> 8388608 5.484 5.258 5.227 192.470 4.084 24.059
> 4194304 6.429 6.458 6.435 158.989 0.315 39.747
> 2097152 7.219 7.744 7.306 138.081 4.187 69.040
> 1048576 6.850 6.897 6.776 149.696 1.089 149.696
> 524288 6.406 6.393 6.469 159.439 0.814 318.877
> 262144 6.865 7.508 6.861 144.931 6.041 579.726
> 131072 8.435 8.482 8.307 121.792 1.076 974.334
> 65536 9.616 9.610 10.262 104.279 3.176 1668.462
> 32768 9.682 9.932 10.015 103.701 1.497 3318.428
> 16384 10.962 10.852 11.565 92.106 2.547 5894.813
>
> Unpatched, 2MB readahead, 64 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 3.730 3.714 3.914 270.615 6.396 4.228
> 33554432 4.445 3.999 3.989 247.710 12.276 7.741
> 16777216 4.763 4.712 4.709 216.590 1.122 13.537
> 8388608 5.001 5.086 5.229 200.649 3.673 25.081
> 4194304 6.365 6.362 6.905 156.710 5.948 39.178
> 2097152 7.390 7.367 7.270 139.470 0.992 69.735
> 1048576 7.038 7.050 7.090 145.052 0.456 145.052
> 524288 6.862 7.167 7.278 144.272 3.617 288.544
> 262144 7.266 7.313 7.265 140.635 0.436 562.540
> 131072 8.677 8.735 8.821 117.108 0.790 936.865
> 65536 10.865 10.040 10.038 99.418 3.658 1590.685
> 32768 10.167 10.130 10.177 100.805 0.201 3225.749
> 16384 11.643 11.017 11.103 91.041 2.203 5826.629
>
> Patched, 128KB readahead, 512 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 5.670 5.188 5.636 186.555 7.671 2.915
> 33554432 6.069 5.971 6.141 168.992 1.954 5.281
> 16777216 7.821 7.501 7.372 135.451 3.340 8.466
> 8388608 9.147 8.618 9.000 114.849 2.908 14.356
> 4194304 12.199 12.914 12.381 81.981 1.964 20.495
> 2097152 13.449 13.891 14.288 73.842 1.828 36.921
> 1048576 11.890 12.182 11.519 86.360 1.984 86.360
> 524288 11.899 12.706 12.135 83.678 2.287 167.357
> 262144 7.460 7.559 7.563 136.041 0.864 544.164
> 131072 7.987 8.003 8.530 125.403 3.792 1003.220
> 65536 10.179 10.119 10.131 100.957 0.255 1615.312
> 32768 9.899 9.923 10.589 101.114 3.121 3235.656
> 16384 10.849 10.835 10.876 94.351 0.150 6038.474
>
> Patched, 512KB readahead, 512 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 5.062 5.111 5.083 201.358 0.795 3.146
> 33554432 5.589 5.713 5.657 181.165 1.625 5.661
> 16777216 6.337 7.220 6.457 154.002 8.690 9.625
> 8388608 7.952 7.880 7.527 131.588 3.192 16.448
> 4194304 10.695 11.224 10.736 94.119 2.047 23.530
> 2097152 10.898 12.072 12.358 87.215 4.839 43.607
> 1048576 10.890 11.347 9.290 98.166 8.664 98.166
> 524288 10.898 11.032 10.887 93.611 0.560 187.223
> 262144 6.714 7.230 6.804 148.219 4.724 592.875
> 131072 7.325 7.342 7.363 139.441 0.295 1115.530
> 65536 9.773 9.988 10.592 101.327 3.417 1621.227
> 32768 10.031 9.995 10.086 102.019 0.377 3264.620
> 16384 11.041 10.987 11.564 91.502 2.093 5856.144
>
> Patched, 2MB readahead, 512 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 4.970 5.097 5.188 201.435 3.559 3.147
> 33554432 5.588 5.793 5.169 186.042 8.923 5.814
> 16777216 6.151 6.414 6.526 161.012 4.027 10.063
> 8388608 7.836 7.299 7.475 135.980 3.989 16.998
> 4194304 11.792 10.964 10.158 93.683 5.706 23.421
> 2097152 11.225 11.492 11.357 90.162 0.866 45.081
> 1048576 12.017 11.258 11.432 88.580 2.449 88.580
> 524288 5.974 10.883 11.840 117.323 38.361 234.647
> 262144 6.774 6.765 6.526 153.155 2.661 612.619
> 131072 8.036 7.324 7.341 135.579 5.766 1084.633
> 65536 9.964 10.595 9.999 100.608 2.806 1609.735
> 32768 10.132 10.036 10.190 101.197 0.637 3238.308
> 16384 11.133 11.568 11.036 91.093 1.850 5829.981
>
> Patched, 512KB readahead, 64 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 3.722 3.698 3.721 275.759 0.809 4.309
> 33554432 4.058 3.849 3.957 259.063 5.580 8.096
> 16777216 4.601 4.613 4.738 220.212 2.913 13.763
> 8388608 5.039 5.534 5.017 197.452 8.791 24.682
> 4194304 6.302 6.270 6.282 162.942 0.341 40.735
> 2097152 7.314 7.302 7.069 141.700 2.233 70.850
> 1048576 6.881 7.655 6.909 143.597 6.951 143.597
> 524288 7.163 7.025 6.951 145.344 1.803 290.687
> 262144 7.315 7.233 7.299 140.621 0.689 562.482
> 131072 9.292 8.756 8.807 114.475 3.036 915.803
> 65536 9.942 9.985 9.960 102.787 0.181 1644.598
> 32768 10.721 10.091 10.192 99.154 2.605 3172.935
> 16384 11.049 11.016 11.065 92.727 0.169 5934.531
>
> Patched, 2MB readahead, 64 max_sectors_kb
> blocksize R R R R(avg, R(std R
> (bytes) (s) (s) (s) MB/s) ,MB/s) (IOPS)
> 67108864 3.697 3.819 3.741 272.931 3.661 4.265
> 33554432 3.951 3.905 4.038 258.320 3.586 8.073
> 16777216 5.595 5.182 4.864 197.044 11.236 12.315
> 8388608 5.267 5.156 5.116 197.725 2.431 24.716
> 4194304 6.411 6.335 6.290 161.389 1.267 40.347
> 2097152 7.329 7.663 7.462 136.860 2.502 68.430
> 1048576 7.225 7.077 7.215 142.784 1.352 142.784
> 524288 6.903 7.015 7.095 146.210 1.647 292.419
> 262144 7.365 7.926 7.278 136.309 5.076 545.237
> 131072 8.796 8.819 8.814 116.233 0.130 929.862
> 65536 9.998 10.609 9.995 100.464 2.786 1607.423
> 32768 10.161 10.124 10.246 100.623 0.505 3219.943
>
> Regards,
> Ronald.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
[-- Attachment #2: blockdev-perftest --]
[-- Type: text/plain, Size: 5399 bytes --]
#!/bin/sh
############################################################################
#
# Script for testing block device I/O performance. Running this script on a
# block device that is connected to a remote SCST target device allows to
# test the performance of the transport protocols implemented in SCST. The
# operation of this script is similar to iozone, while this script is easier
# to use.
#
# Copyright (C) 2009 Bart Van Assche <bart.vanassche@gmail.com>.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, version 2
# of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
############################################################################
#########################
# Function definitions #
#########################
usage() {
echo "Usage: $0 [-a] [-d] [-i <i>] [-n] [-r] [-s <l2s>] <dev>"
echo " -a - use asynchronous (buffered) I/O."
echo " -d - use direct (non-buffered) I/O."
echo " -i - number times each test is iterated."
echo " -n - do not verify the data on <dev> before overwriting it."
echo " -r - only perform the read test."
echo " -s - logarithm base two of the I/O size."
echo " <dev> - block device to run the I/O performance test on."
}
# Echo ((2**$1))
pow2() {
if [ $1 = 0 ]; then
echo 1
else
echo $((2 * $(pow2 $(($1 - 1)) ) ))
fi
}
drop_caches() {
sync
if [ -w /proc/sys/vm/drop_caches ]; then
echo 3 > /proc/sys/vm/drop_caches
fi
}
# Read times in seconds from stdin, one number per line, echo each number
# using format $1, and also echo the average transfer size in MB/s, its
# standard deviation and the number of IOPS using the total I/O size $2 and
# the block transfer size $3.
echo_and_calc_avg() {
awk -v fmt="$1" -v iosize="$2" -v blocksize="$3" 'BEGIN{pow_2_20=1024*1024}{if ($1 != 0){n++;sum+=iosize/$1;sumsq+=iosize*iosize/($1*$1)};printf fmt, $1} END{d=(n>0?sumsq/n-sum*sum/n/n:0);avg=(n>0?sum/n:0);stddev=(d>0?sqrt(d):0);iops=avg/blocksize;printf fmt fmt fmt,avg/pow_2_20,stddev/pow_2_20,iops}'
}
#########################
# Default settings #
#########################
iterations=3
log2_io_size=30 # 1 GB
log2_min_blocksize=9 # 512 bytes
log2_max_blocksize=26 # 64 MB
iotype=direct
read_test_only=false
verify_device_data=true
#########################
# Argument processing #
#########################
set -- $(/usr/bin/getopt "adhi:nrs:" "$@")
while [ "$1" != "${1#-}" ]
do
case "$1" in
'-a') iotype="buffered"; shift;;
'-d') iotype="direct"; shift;;
'-i') iterations="$2"; shift; shift;;
'-n') verify_device_data="false"; shift;;
'-r') read_test_only="true"; shift;;
'-s') log2_io_size="$2"; shift; shift;;
'--') shift;;
*) usage; exit 1;;
esac
done
if [ "$#" != 1 ]; then
usage
exit 1
fi
device="$1"
####################
# Performance test #
####################
if [ ! -e "${device}" ]; then
echo "Error: device ${device} does not exist."
exit 1
fi
if [ "${read_test_only}" = "false" -a ! -w "${device}" ]; then
echo "Error: device ${device} is not writeable."
exit 1
fi
if [ "${read_test_only}" = "false" -a "${verify_device_data}" = "true" ] \
&& ! cmp -s -n $(pow2 $log2_io_size) "${device}" /dev/zero
then
echo "Error: device ${device} still contains data."
exit 1
fi
if [ "${iotype}" = "direct" ]; then
dd_oflags="oflag=direct"
dd_iflags="iflag=direct"
else
dd_oflags="oflag=sync"
dd_iflags=""
fi
# Header, line 1
printf "%9s " blocksize
i=0
while [ $i -lt ${iterations} ]
do
printf "%8s " "W"
i=$((i+1))
done
printf "%8s %8s %8s " "W(avg," "W(std," "W"
i=0
while [ $i -lt ${iterations} ]
do
printf "%8s " "R"
i=$((i+1))
done
printf "%8s %8s %8s" "R(avg," "R(std" "R"
printf "\n"
# Header, line 2
printf "%9s " "(bytes)"
i=0
while [ $i -lt ${iterations} ]
do
printf "%8s " "(s)"
i=$((i+1))
done
printf "%8s %8s %8s " "MB/s)" ",MB/s)" "(IOPS)"
i=0
while [ $i -lt ${iterations} ]
do
printf "%8s " "(s)"
i=$((i+1))
done
printf "%8s %8s %8s" "MB/s)" ",MB/s)" "(IOPS)"
printf "\n"
# Measurements
log2_blocksize=${log2_max_blocksize}
while [ ! $log2_blocksize -lt $log2_min_blocksize ]
do
if [ $log2_blocksize -gt $log2_io_size ]; then
continue
fi
iosize=$(pow2 $log2_io_size)
bs=$(pow2 $log2_blocksize)
count=$(pow2 $(($log2_io_size - $log2_blocksize)))
printf "%9d " ${bs}
i=0
while [ $i -lt ${iterations} ]
do
if [ "${read_test_only}" = "false" ]; then
drop_caches
dd if=/dev/zero of="${device}" bs=${bs} count=${count} \
${dd_oflags} 2>&1 \
| sed -n 's/.* \([0-9.]*\) s,.*/\1/p'
else
echo 0
fi
i=$((i+1))
done | echo_and_calc_avg "%8.3f " ${iosize} ${bs}
i=0
while [ $i -lt ${iterations} ]
do
drop_caches
dd if="${device}" of=/dev/null bs=${bs} count=${count} \
${dd_iflags} 2>&1 \
| sed -n 's/.* \([0-9.]*\) s,.*/\1/p'
i=$((i+1))
done | echo_and_calc_avg "%8.3f " ${iosize} ${bs}
printf "\n"
log2_blocksize=$((log2_blocksize - 1))
done
next prev parent reply other threads:[~2009-06-30 10:23 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-29 5:35 [RESEND] [PATCH] readahead:add blk_run_backing_dev Hisashi Hifumi
2009-06-01 0:36 ` Andrew Morton
2009-06-01 1:04 ` Hisashi Hifumi
2009-06-05 15:15 ` Alan D. Brunelle
2009-06-06 14:36 ` KOSAKI Motohiro
2009-06-06 22:45 ` Wu Fengguang
2009-06-18 19:04 ` Andrew Morton
2009-06-20 3:55 ` Wu Fengguang
2009-06-20 12:29 ` Vladislav Bolkhovitin
2009-06-29 9:34 ` Wu Fengguang
2009-06-29 10:26 ` Ronald Moesbergen
2009-06-29 10:26 ` Ronald Moesbergen
2009-06-29 10:55 ` Vladislav Bolkhovitin
2009-06-29 12:54 ` Wu Fengguang
2009-06-29 12:58 ` Bart Van Assche
2009-06-29 13:01 ` Wu Fengguang
2009-06-29 13:04 ` Vladislav Bolkhovitin
2009-06-29 13:13 ` Wu Fengguang
2009-06-29 13:28 ` Wu Fengguang
2009-06-29 14:43 ` Ronald Moesbergen
2009-06-29 14:51 ` Wu Fengguang
2009-06-29 14:56 ` Ronald Moesbergen
2009-06-29 15:37 ` Vladislav Bolkhovitin
2009-06-29 14:00 ` Ronald Moesbergen
2009-06-29 14:21 ` Wu Fengguang
2009-06-29 15:01 ` Wu Fengguang
2009-06-29 15:37 ` Vladislav Bolkhovitin
[not found] ` <20090630010414.GB31418@localhost>
2009-06-30 10:54 ` Vladislav Bolkhovitin
2009-07-01 13:07 ` Ronald Moesbergen
2009-07-01 18:12 ` Vladislav Bolkhovitin
2009-07-03 9:14 ` Ronald Moesbergen
2009-07-03 10:56 ` Vladislav Bolkhovitin
2009-07-03 12:41 ` Ronald Moesbergen
2009-07-03 12:46 ` Vladislav Bolkhovitin
2009-07-04 15:19 ` Ronald Moesbergen
2009-07-06 11:12 ` Vladislav Bolkhovitin
2009-07-06 14:37 ` Ronald Moesbergen
2009-07-06 14:37 ` Ronald Moesbergen
2009-07-06 17:48 ` Vladislav Bolkhovitin
2009-07-07 6:49 ` Ronald Moesbergen
2009-07-07 6:49 ` Ronald Moesbergen
[not found] ` <4A5395FD.2040507@vlnb.net>
[not found] ` <a0272b440907080149j3eeeb9bat13f942520db059a8@mail.gmail.com>
2009-07-08 12:40 ` Vladislav Bolkhovitin
2009-07-10 6:32 ` Ronald Moesbergen
2009-07-10 8:43 ` Vladislav Bolkhovitin
2009-07-10 9:27 ` Vladislav Bolkhovitin
2009-07-13 12:12 ` Ronald Moesbergen
2009-07-13 12:36 ` Wu Fengguang
2009-07-13 12:47 ` Ronald Moesbergen
2009-07-13 12:52 ` Wu Fengguang
2009-07-14 18:52 ` Vladislav Bolkhovitin
2009-07-15 7:06 ` Wu Fengguang
2009-07-14 18:52 ` Vladislav Bolkhovitin
2009-07-15 6:30 ` Vladislav Bolkhovitin
2009-07-16 7:32 ` Ronald Moesbergen
2009-07-16 10:36 ` Vladislav Bolkhovitin
2009-07-16 14:54 ` Ronald Moesbergen
2009-07-16 16:03 ` Vladislav Bolkhovitin
2009-07-17 14:15 ` Ronald Moesbergen
2009-07-17 18:23 ` Vladislav Bolkhovitin
2009-07-20 7:20 ` Vladislav Bolkhovitin
2009-07-22 8:44 ` Ronald Moesbergen
2009-07-27 13:11 ` Vladislav Bolkhovitin
2009-07-28 9:51 ` Ronald Moesbergen
2009-07-28 19:07 ` Vladislav Bolkhovitin
2009-07-29 12:48 ` Ronald Moesbergen
2009-07-31 18:32 ` Vladislav Bolkhovitin
2009-08-03 9:15 ` Ronald Moesbergen
2009-08-03 9:20 ` Vladislav Bolkhovitin
2009-08-03 11:44 ` Ronald Moesbergen
2009-08-03 11:44 ` Ronald Moesbergen
2009-07-15 20:52 ` Kurt Garloff
2009-07-16 10:38 ` Vladislav Bolkhovitin
2009-06-30 10:22 ` Vladislav Bolkhovitin [this message]
2009-06-29 10:55 ` Vladislav Bolkhovitin
2009-06-29 13:00 ` Wu Fengguang
2009-09-22 20:58 ` Andrew Morton
2009-09-22 20:58 ` Andrew Morton
-- strict thread matches above, loose matches on Subject: below --
2009-09-23 1:48 Wu Fengguang
2009-09-23 1:48 ` [RESEND] [PATCH] readahead:add blk_run_backing_dev Wu Fengguang
2009-09-23 1:48 ` (unknown) Wu Fengguang
2009-05-22 0:09 [RESEND][PATCH] readahead:add blk_run_backing_dev Hisashi Hifumi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A49E768.5090305@vlnb.net \
--to=vst@vlnb.net \
--cc=Alan.Brunelle@hp.com \
--cc=akpm@linux-foundation.org \
--cc=bart.vanassche@gmail.com \
--cc=fengguang.wu@intel.com \
--cc=hifumi.hisashi@oss.ntt.co.jp \
--cc=intercommit@gmail.com \
--cc=jens.axboe@oracle.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=randy.dunlap@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.