Revision c4f675cd40d955d539180506c09515c90169b15b authored by Sergei Trofimovich on 20 May 2011, 20:20:30 UTC, committed by Chris Mason on 23 May 2011, 17:24:14 UTC
Observed as a large delay when --mixed filesystem is filled up.
Test example:
1. create tiny --mixed FS:
   $ dd if=/dev/zero of=2G.img seek=$((2048 * 1024 * 1024 - 1)) count=1 bs=1
   $ mkfs.btrfs --mixed 2G.img
   $ mount -oloop 2G.img /mnt/ut/
2. Try to fill it up:
   $ dd if=/dev/urandom of=10M.file bs=10240 count=1024
   $ seq 1 256 | while read file_no; do echo $file_no; time cp 10M.file ${file_no}.copy; done

Up to '200.copy' it goes fast, but when disk fills-up each -ENOSPC
message takes 3 seconds to pop-up _every_ ENOSPC (and in usermode linux
it's even more: 30-60 seconds!). (Maybe, time depends on kernel's timer resolution).

No IO, no CPU load, just rescheduling. Some debugging revealed busy spinning
in shrink_delalloc.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Reviewed-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
1 parent 0f3b708
History
File Mode Size
async_tx
Kconfig -rw-r--r-- 24.2 KB
Makefile -rw-r--r-- 3.2 KB
ablkcipher.c -rw-r--r-- 16.5 KB
aead.c -rw-r--r-- 12.6 KB
aes_generic.c -rw-r--r-- 61.9 KB
af_alg.c -rw-r--r-- 9.3 KB
ahash.c -rw-r--r-- 12.1 KB
algapi.c -rw-r--r-- 19.0 KB
algboss.c -rw-r--r-- 6.3 KB
algif_hash.c -rw-r--r-- 6.7 KB
algif_skcipher.c -rw-r--r-- 13.2 KB
ansi_cprng.c -rw-r--r-- 10.9 KB
anubis.c -rw-r--r-- 27.8 KB
api.c -rw-r--r-- 13.4 KB
arc4.c -rw-r--r-- 2.0 KB
authenc.c -rw-r--r-- 19.6 KB
authencesn.c -rw-r--r-- 23.4 KB
blkcipher.c -rw-r--r-- 18.6 KB
blowfish.c -rw-r--r-- 17.5 KB
camellia.c -rw-r--r-- 35.9 KB
cast5.c -rw-r--r-- 33.0 KB
cast6.c -rw-r--r-- 21.4 KB
cbc.c -rw-r--r-- 7.4 KB
ccm.c -rw-r--r-- 21.5 KB
chainiv.c -rw-r--r-- 8.6 KB
cipher.c -rw-r--r-- 3.3 KB
compress.c -rw-r--r-- 1.3 KB
crc32c.c -rw-r--r-- 8.0 KB
cryptd.c -rw-r--r-- 24.8 KB
crypto_null.c -rw-r--r-- 4.9 KB
crypto_wq.c -rw-r--r-- 942 bytes
ctr.c -rw-r--r-- 10.8 KB
cts.c -rw-r--r-- 9.8 KB
deflate.c -rw-r--r-- 5.5 KB
des_generic.c -rw-r--r-- 35.6 KB
ecb.c -rw-r--r-- 4.9 KB
eseqiv.c -rw-r--r-- 6.5 KB
fcrypt.c -rw-r--r-- 18.0 KB
fips.c -rw-r--r-- 705 bytes
gcm.c -rw-r--r-- 34.5 KB
gf128mul.c -rw-r--r-- 13.2 KB
ghash-generic.c -rw-r--r-- 3.7 KB
hmac.c -rw-r--r-- 6.9 KB
internal.h -rw-r--r-- 3.9 KB
khazad.c -rw-r--r-- 51.8 KB
krng.c -rw-r--r-- 1.5 KB
lrw.c -rw-r--r-- 7.6 KB
lzo.c -rw-r--r-- 2.5 KB
md4.c -rw-r--r-- 6.1 KB
md5.c -rw-r--r-- 7.5 KB
michael_mic.c -rw-r--r-- 3.6 KB
pcbc.c -rw-r--r-- 7.7 KB
pcompress.c -rw-r--r-- 2.5 KB
pcrypt.c -rw-r--r-- 14.7 KB
proc.c -rw-r--r-- 3.6 KB
ripemd.h -rw-r--r-- 974 bytes
rmd128.c -rw-r--r-- 10.2 KB
rmd160.c -rw-r--r-- 12.6 KB
rmd256.c -rw-r--r-- 10.5 KB
rmd320.c -rw-r--r-- 13.1 KB
rng.c -rw-r--r-- 2.8 KB
salsa20_generic.c -rw-r--r-- 6.7 KB
scatterwalk.c -rw-r--r-- 2.9 KB
seed.c -rw-r--r-- 17.4 KB
seqiv.c -rw-r--r-- 8.6 KB
serpent.c -rw-r--r-- 19.8 KB
sha1_generic.c -rw-r--r-- 3.4 KB
sha256_generic.c -rw-r--r-- 12.2 KB
sha512_generic.c -rw-r--r-- 8.8 KB
shash.c -rw-r--r-- 16.2 KB
tcrypt.c -rw-r--r-- 27.7 KB
tcrypt.h -rw-r--r-- 3.4 KB
tea.c -rw-r--r-- 7.1 KB
testmgr.c -rw-r--r-- 54.4 KB
testmgr.h -rw-r--r-- 328.3 KB
tgr192.c -rw-r--r-- 30.8 KB
twofish_common.c -rw-r--r-- 37.7 KB
twofish_generic.c -rw-r--r-- 6.3 KB
vmac.c -rw-r--r-- 17.9 KB
wp512.c -rw-r--r-- 60.1 KB
xcbc.c -rw-r--r-- 7.2 KB
xor.c -rw-r--r-- 3.9 KB
xts.c -rw-r--r-- 7.1 KB
zlib.c -rw-r--r-- 9.6 KB

back to top