Re-sent, as the original may have been overlooked. Neal On Mon, 19 Oct 2015 01:34:54 -0400 "Neal P. Murphy" <neal.p.murphy@xxxxxxxxxxxx> wrote: > On Sat, 6 Jun 2015 13:15:38 +0200 (CEST) > Jan Engelhardt <jengelh@xxxxxxx> wrote: > > > x > > On Friday 2015-06-05 00:04, Neal P. Murphy wrote: > > >The theory: > > > - Use two kernel pages for the counters for each group of 256 > > > addresses. > > > - Change counters to 64-bit. > > > - Change to __get_free_pages/free_pages, using order=2 (two > > > consecutive pages), and zero both pages. > > > - Change "%u" to "%llu" as needed. > > > - Everything else pretty much stays the same. > > > > > >I also changed tmpbuf to two pages (Justin Case's idea), but I > > >don't know if that's really necessary. > > > > > >Did I miss anything? > > > > I applied it. > > Disembowel me with a wooden spoon. My first patch makes xt_ACCOUNT hiss. Well, I think that's what a memory leak sounds like. > > Below is the patch with the *rest* of the free_page(X) calls changed to free_pages(X, 2). xt_ACCOUNT should always allocate memory in page pairs. And always *free* memory in page pairs. > > Neal > > -------- diff -Nubr xtables-addons-1.45-P1/extensions/ACCOUNT/xt_ACCOUNT.c xtables-addons-1.45/extensions/ACCOUNT/xt_ACCOUNT.c --- xtables-addons-1.45-P1/extensions/ACCOUNT/xt_ACCOUNT.c 2015-10-19 01:23:03.000000000 -0400 +++ xtables-addons-1.45/extensions/ACCOUNT/xt_ACCOUNT.c 2015-10-19 01:23:39.000000000 -0400 @@ -145,7 +145,7 @@ unsigned int b; for (b = 0; b <= 255; b++) { if (mask_16->mask_24[b]) { - free_page((unsigned long)mask_16->mask_24[b]); + free_pages((unsigned long)mask_16->mask_24[b], 2); } } free_pages((unsigned long)data, 2); @@ -162,10 +162,10 @@ for (b = 0; b <= 255; b++) { if (mask_16->mask_24[b]) { - free_page((unsigned long)mask_16->mask_24[b]); + free_pages((unsigned long)mask_16->mask_24[b], 2); } } - free_page((unsigned long)mask_16); + free_pages((unsigned long)mask_16, 2); } } free_pages((unsigned long)data, 2); -- 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