On 3/19/14, 6:37 PM, "Marc MERLIN" <m...@merlins.org> wrote:

>On Wed, Mar 19, 2014 at 12:20:08PM -0400, Chris Mason wrote:
>> On 03/19/2014 11:45 AM, Marc MERLIN wrote:
>> >My server died last night during a btrfs send/receive to a btrfs radi5
>> >array
>> >
>> >Here are the logs. Is this anything known or with a possible
>>workaround?
>> >
>> >Thanks,
>> >Marc
>> >
>> >btrfs-rmw-2: page allocation failure: order:1, mode:0x8020
>> 
>> This is an order 1 atomic allocation from the mvs driver, we really
>> should not be depending on that to get IO done.  A quick search and it
>> looks like we're allocating MVS_SLOT_BUF_SZ (8192) bytes.
>> 
>> You could try bumping the lowmem reserves.
>
>Thanks for the info.
>
>So for now, I have
>CONFIG_X86_RESERVE_LOW=64
>
>This is the option we're talking about, right?
>
>Should I double it?
>
>For now, I have the copy running again, and it's been going for 8 hours
>without failure on the old kernel but of course that doesn't mean my 2TB
>copy will complete without hitting the bug again.

Sorry, I misspoke, you should bump /proc/sys/vm/min_free_kbytes.  Honestly
though, it¹s just a bug in the mvs driver.  Atomic 8K allocations are
doomed to fail eventually.

The driver should either busy loop until the allocation completes (really
not a great choice), gracefully deal with the failure (looks tricky), or
preallocate the space (like the rest of the block layer).

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to