On Mon, Nov 28, 2016 at 09:39:31AM -0500, Neil Horman wrote: > On Mon, Nov 28, 2016 at 03:33:40PM +0100, Andrey Konovalov wrote: > > On Mon, Nov 28, 2016 at 3:13 PM, Neil Horman <nhorman@xxxxxxxxxxxxx> wrote: > > > On Mon, Nov 28, 2016 at 02:00:19PM +0100, Andrey Konovalov wrote: > > >> Hi! > > >> > > >> I've got the following error report while running the syzkaller fuzzer. > > >> > > >> On commit d8e435f3ab6fea2ea324dce72b51dd7761747523 (Nov 26). > > >> > > >> A reproducer is attached. > > >> > > >> a.out: vmalloc: allocation failure, allocated 823562240 of 1427091456 > > >> bytes, mode:0x24000c2(GFP_KERNEL|__GFP_HIGHMEM) > > >> > > > How much total ram do you have in this system? The call appears to be > > > attempting to allocate 1.3 Gb of data. Even using vmalloc to allow > > > discontiguous allocation, thats alot of memory, and if enough is in use already, > > > I could make the argument that this might be expected behavior. > > > > Hi Neail, > > > > I have 2 Gb. > > > That would be why. Allocating 65% of the available system memory will almost > certainly lead to OOM failures quickly. > > > Just tested with 4 Gb, everything seems to be working fine. > > So I guess this is not actually a bug and allocating 1.3 Gb is OK. Still we probably should avoid the warn triggered by an userspace application: (untested) --8<-- diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index fc4977456c30..b56a0e128fc3 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c @@ -958,7 +958,8 @@ struct xt_table_info *xt_alloc_table_info(unsigned int size) if (sz <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) info = kmalloc(sz, GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY); if (!info) { - info = vmalloc(sz); + info = __vmalloc(sz, GFP_KERNEL | __GFP_NOWARN | __GFP_HIGHMEM, + PAGE_KERNEL); if (!info) return NULL; } -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html