在 2014-1-13,下午11:20,Jim Salter <j...@jrs-s.net> 写道:

> Er... I can't use incremental send if I can't get one full send to go through 
> first. =)

sory,  i mean one approach is use '-p' option, you can use:

# btrfs sub create subv
# btrfs sub snapshot -r subv snap
# btrfs sub snapshot -r sub  snap1
# btrfs send snap -p snap1 -f 1
# btrfs receive -f 1 backup
# btrfs sub delete snap1 -<-- now you can delete snap1 safely

The above approach is much faster, i think you can try it!

Thanks,
Wang
> 
> I'm hoping the problem will go away for long enough to get a full send 
> completed once I reboot the box, but I can't do that until (much) later in 
> the day.
> 
> On 01/13/2014 10:17 AM, Wang Shilong wrote:
>> Hello,
>> 
>> I took a careful think about your problems below, i think this is because 
>> btrfs *ulist* implement use
>> krealloc which might cause memory allocation fails especial you use full 
>> send.
>> 
>> Before we kicked off now stupid  *ulist* implements, i think you can use 
>> incremental send to solve
>> this issue.
>> 
>> Thanks,
>> Wang
>> 
>>> Hi list -
>>> 
>>> Getting sporadic page allocation failures in btrfs send. This happened once 
>>> several weeks ago but was fine after a reboot; yesterday I did not reboot, 
>>> but had the failure back-to-back trying to send two different snapshots. 
>>> These are full sends, not incremental, of a bit over 600G of data. Test 
>>> machine has 32G of RAM, with 21G of it free (not including cache):
>>> 
>>> root@gwa-virt1:/data/images/.snapshots# free -m
>>>             total       used       free     shared    buffers cached
>>> Mem:         32159      31789        369          0          0 21276
>>> -/+ buffers/cache:      10513      21646
>>> Swap:            0          0          0
>>> 
>>> In both cases (all three, really) the btrfs send failed a bit more than 
>>> half of the way through the send (somewhere around the 380GB mark).
>>> 
>>> Kern log snippets follow:
>>> 
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627611] btrfs: page allocation 
>>> failure: order:6, mode:0x104050
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627622] CPU: 6 PID: 9642 Comm: 
>>> btrfs Not tainted 3.13.0-031300rc7-generic #201401041835
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627773] [<ffffffffa0142214>] ? 
>>> btrfs_get_token_64+0x64/0xf0 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627818] [<ffffffffa01876dd>] ? 
>>> ulist_add_merge+0xcd/0x270 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627860] [<ffffffffa01876dd>] 
>>> ulist_add_merge+0xcd/0x270 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627894] [<ffffffffa018615c>] 
>>> find_parent_nodes+0x50c/0x6f0 [btrf ]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627930] [<ffffffffa018e550>] ? 
>>> compare_refs.isra.23+0x130/0x130 btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.627965] [<ffffffffa0187019>] 
>>> iterate_extent_inodes+0xf9/0x270 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628003] [<ffffffffa014b7a5>] ? 
>>> free_extent_buffer+0x35/0x40 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628037] [<ffffffffa018dc9d>] 
>>> find_extent_clone.isra.26+0x26d/0x340 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628072] [<ffffffffa0191207>] 
>>> process_extent+0xd7/0x180 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628107] [<ffffffffa01918ff>] 
>>> changed_cb+0xdf/0x170 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628141] [<ffffffffa0191ad2>] 
>>> full_send_tree+0x142/0x280 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628174] [<ffffffffa0191ccc>] ? 
>>> send_subvol_begin+0xbc/0x2b0 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628209] [<ffffffffa0191fa0>] 
>>> send_subvol+0xe0/0xf0 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628244] [<ffffffffa01922f1>] 
>>> btrfs_ioctl_send+0x341/0x520 [btrfs]
>>> Jan 12 14:05:36 gwa-virt1 kernel: [535523.628279] [<ffffffffa01606d3>] 
>>> btrfs_ioctl+0x953/0xac0 [btrfs]
>>> 
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016512] btrfs: page allocation 
>>> failure: order:5, mode:0x104050
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016518] CPU: 4 PID: 18689 Comm: 
>>> btrfs Not tainted 3.13.0-031300rc7-generic #201401041835
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016597] [<ffffffffa0142214>] ? 
>>> btrfs_get_token_64+0x64/0xf0 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016617] [<ffffffffa01876dd>] ? 
>>> ulist_add_merge+0xcd/0x270 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016637] [<ffffffffa01876dd>] 
>>> ulist_add_merge+0xcd/0x270 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016653] [<ffffffffa018615c>] 
>>> find_parent_nodes+0x50c/0x6f0 [btrf ]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016669] [<ffffffffa018e550>] ? 
>>> compare_refs.isra.23+0x130/0x130 btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016684] [<ffffffffa0187019>] 
>>> iterate_extent_inodes+0xf9/0x270 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016700] [<ffffffffa014b7a5>] ? 
>>> free_extent_buffer+0x35/0x40 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016716] [<ffffffffa018dc9d>] 
>>> find_extent_clone.isra.26+0x26d/0x340 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016732] [<ffffffffa0191207>] 
>>> process_extent+0xd7/0x180 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016747] [<ffffffffa01918ff>] 
>>> changed_cb+0xdf/0x170 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016763] [<ffffffffa0191ad2>] 
>>> full_send_tree+0x142/0x280 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016778] [<ffffffffa0191ccc>] ? 
>>> send_subvol_begin+0xbc/0x2b0 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016794] [<ffffffffa0191fa0>] 
>>> send_subvol+0xe0/0xf0 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016810] [<ffffffffa01922f1>] 
>>> btrfs_ioctl_send+0x341/0x520 [btrfs]
>>> Jan 12 21:34:00 gwa-virt1 kernel: [562448.016826] [<ffffffffa01606d3>] 
>>> btrfs_ioctl+0x953/0xac0 [btrfs]
>>> 
>>> --
>>> 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
>> --
>> 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
> 

--
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