Linux bcache driver list
 help / color / mirror / Atom feed
From: "Marcin Mirosław" <marcin@mejor.pl>
To: Kent Overstreet <kent.overstreet@gmail.com>
Cc: linux-bcache@vger.kernel.org
Subject: Re: Error after filling up fileystem (resend to correct email)
Date: Tue, 29 Mar 2016 14:38:43 +0200	[thread overview]
Message-ID: <56FA7753.5060806@mejor.pl> (raw)
In-Reply-To: <20160329111747.GA11536@kmo-pixel>

W dniu 29.03.2016 o 13:17, Kent Overstreet pisze:
> On Tue, Mar 29, 2016 at 12:41:27PM +0200, Marcin Mirosław wrote:
>> Hi!
>>
>> Because I don't know what features should work I think it's better to
>> report a bug than do nothing.
>> I created fs, mounted, then I changed compression (via sysfs) to lz4.
>> Next I copied portage tree to filesystem. Then I started to think why
>> "compression_stats" shows that data are compressed but `df` shows values
>> that looks like data are uncompressed:
>> cat compression_stats
>> uncompressed data:
>>         nr extents:                     1976
>>         size (bytes):                   1784832
>> compressed data:
>>         nr extents:                     282264
>>         compressed size (bytes):        346365952
>>         uncompressed size (bytes):      6398948352
> 
> Yeah, I don't have the code yet to distinguish between compressed/uncompressed
> size in the various usage stuff. It's coming.

Ok, thanks for info.


>> df -h:
>> Filesystem                          Size  Used Avail Use% Mounted on
>> /dev/mapper/system10-bcacheportage  4.0G  4.0G   82M  99% /usr/portage
>>
>> So I started to create file filled with zeroes: `dd if=/dev/zero
>> of=/path/file bs=1M". I filled up filesystem. Then I run `emerge` and I
>> got I/O error. In dmesg I see:
>>
>> [ 4466.898819] kworker/u8:0: page allocation failure: order:4,
>> mode:0x2404000
> 
> The lz4 code is unfinished - as you can see it doesn't gracefully handle memory
> allocation failures yet. The gzip compression code does handle allocation
> failures, but won't get as good a compression ratio (because it's doing the
> compression in smaller chunks).
> 
> At some point I need to dig into the lz4 code and come up with a version that
> doesn't require contiguous buffers, but that's going to be difficult.
> 
>> Accesing this file with zeroes throws I/O error, it looks that other
>> files are accesible. After removing this file with zeroes free space is
>> not returned.
> 
> Odd.. probably something to do with how the pagecache handles IO errors, I'm
> guessing.

When I did test with filling up free space and I didn't had I/O error
then free space was calculated correctly.


> You should have been able to still read the data later (after clearing the error
> in the pagecache somehow, a drop_caches might do it).
> 
> I'll bump the lz4 stuff higher up on the list, I want to use it myself.


Great! gzip is slow for me (at least used with zfs).

Thanks,
Marcin

      reply	other threads:[~2016-03-29 12:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-29 10:41 Error after filling up fileystem (resend to correct email) Marcin Mirosław
2016-03-29 11:17 ` Kent Overstreet
2016-03-29 12:38   ` Marcin Mirosław [this message]

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=56FA7753.5060806@mejor.pl \
    --to=marcin@mejor.pl \
    --cc=kent.overstreet@gmail.com \
    --cc=linux-bcache@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox