xfs
[Top] [All Lists]

Re: [PATCH] vfs: cap dedupe request structure size at PAGE_SIZE

To: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx>
Subject: Re: [PATCH] vfs: cap dedupe request structure size at PAGE_SIZE
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Sun, 31 Jul 2016 23:31:28 -0700
Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>, linux-api@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, "Kirill A. Shutemov" <kirill@xxxxxxxxxxxxx>, Vlastimil Babka <vbabka@xxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20160728183534.GB15753@xxxxxxxxxxxxxxxx>
References: <20160728183534.GB15753@xxxxxxxxxxxxxxxx>
User-agent: Mutt/1.6.1 (2016-04-27)
On Thu, Jul 28, 2016 at 11:35:34AM -0700, Darrick J. Wong wrote:
> Kirill A. Shutemov reports that the kernel doesn't try to cap dest_count
> in any way, and uses the number to allocate kernel memory.  This causes
> high order allocation warnings in the kernel log if someone passes in a
> big enough value.  We should clamp the allocation at PAGE_SIZE to avoid
> stressing the VM.
> 
> The two existing users of the dedupe ioctl never send more than 120
> requests, so we can safely clamp dest_range at PAGE_SIZE, because with
> 4k pages we can handle up to 127 dedupe candidates.  Given the max
> extent length of 16MB, we can end up doing 2GB of IO which is plenty.

Looks fine,

Reviewed-by: Christoph Hellwig <hch@xxxxxx>

> @@ -582,6 +582,10 @@ static int ioctl_file_dedupe_range(struct file *file, 
> void __user *arg)

This function returns long in mainline.  Maybe you should resend your
return type fix to Al while you're at it?

<Prev in Thread] Current Thread [Next in Thread>