Date: Thu, 2 Oct 2014 15:25:02 -0700 From: Rumen Telbizov <telbizov@gmail.com> To: "Alexander V. Chernikov" <melifaro@ipfw.ru> Cc: brian@freebsd.org, Gleb Smirnoff <glebius@freebsd.org>, "Alexander V. Chernikov" <melifaro@freebsd.org>, "freebsd-stable@freebsd.org" <freebsd-stable@freebsd.org> Subject: Re: 10.1-BETA2 possible kernel memory leak in routing table Message-ID: <CAENR%2B_XX=brNVRBOL-jeWPGSLpWZF9Gddso2FPJn5LKP3zG%2B%2Bg@mail.gmail.com> In-Reply-To: <CAENR%2B_Xv4iPAaOd3Vj%2BFQAZLu4%2BH3N1Rp6pd_b9UUSUu-a3j6A@mail.gmail.com> References: <CAENR%2B_UVLDDrsef2W4CXCFX65EYaxeKN4MNWbgoyaZ5qDGe1Pg@mail.gmail.com> <542AAA3C.1080803@ipfw.ru> <CAENR%2B_X5KTdeb00f9NShN1YK%2BT2aY1vG5YcTCgu4aXZO=%2Bpa=g@mail.gmail.com> <542AE376.6000003@FreeBSD.org> <CAENR%2B_XX4jnD6SBi8S1dGfWM68tmcm0aE2iMVA3LDR3R8ygQYw@mail.gmail.com> <542AFAE3.9030705@FreeBSD.org> <CAENR%2B_WbntqjE4b=iZS8z30AK7gSpur00HsWP9-T_UJ7OosU8Q@mail.gmail.com> <20141001135124.GM73266@glebius.int.ru> <542C20D7.3070606@sentex.net> <20141001171646.GQ73266@glebius.int.ru> <CAENR%2B_VwWor23sX4WAfzU18z8mdRxGverUsCKcjO=L3DVSuq6g@mail.gmail.com> <542C5529.9030800@FreeBSD.org> <7AB35136-89AA-48F2-8B0E-1BA3DCD4A6BA@ipfw.ru> <CAENR%2B_Xv4iPAaOd3Vj%2BFQAZLu4%2BH3N1Rp6pd_b9UUSUu-a3j6A@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello everyone, Alexander, Gleb: good news guys. The problem seems to be resolved! Good job.Here's what I have. 1. I upgraded the backup firewall to 10-STABLE (r272435), applied Gleb's patch of pf_table.c and rebuilt. Just as reported by Gleb, the leak seemed to be reduced but it was still present and leaked a little bit of memory upon every PF reload. 2. In addition to 1) I applied the second patch from Alexander on radix.c and rebuilt the kernel. After the reboot it seems like the amount of memory consumed by the routetbl grows a little bit temporarily after reload and then drops back to the previous, stable amount shortly after. 3. This is how I tested it with: Just after boot I checked vmstat -m | grep routetbl routetbl 606 170K - 4334 32,64,128,256,512,2048 Then I ran a tight loop of reloading the ruleset (and all tables) for a while: while true; do pfctl -f /etc/firewall/pf.conf; done The memory output while the loop was still running looked something like this: ... routetbl 5166 2387K - 33177467 32,64,128,256,512,2048 routetbl 5358 2483K - 33190813 32,64,128,256,512,2048 routetbl 5598 2603K - 33202561 32,64,128,256,512,2048 routetbl 5870 2739K - 33214365 32,64,128,256,512,2048 routetbl 5634 2638K - 33226099 32,64,128,256,512,2048 routetbl 6286 2947K - 33239443 32,64,128,256,512,2048 routetbl 6510 3059K - 33251175 32,64,128,256,512,2048 routetbl 6750 3179K - 33262925 32,64,128,256,512,2048 routetbl 4622 2115K - 33274645 32,64,128,256,512,2048 routetbl 4910 2259K - 33286441 32,64,128,256,512,2048 routetbl 3582 1658K - 33298175 32,64,128,256,512,2048 routetbl 5326 2467K - 33311519 32,64,128,256,512,2048 ... after I stopped the reload loop and waited a minute the routetbl memory pool went back to previous state routetbl 606 170K - 35615574 32,64,128,256,512,2048 I assume this delay is normal and is simply the kernel freeing memory after it gets "cold". I will leave this machine running and reloading the ruleset every 30 seconds as intended in carp backup mode and will report any potential problems back here. Aside from that I think we're all good. The problem seems solved. Gleb, Alexander, thank you very much for your help. I appreciate your quick response in providing patches for this problem. I hope those 2 patches get tested by more people and get MFC'ed into 10-STABLE soon. Regards, -- Rumen Telbizov Unix Systems Administrator <http://telbizov.com>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAENR%2B_XX=brNVRBOL-jeWPGSLpWZF9Gddso2FPJn5LKP3zG%2B%2Bg>