From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Heffner Subject: Re: [PATCH] tcp_mem initialization Date: Thu, 15 Mar 2007 14:39:29 -0400 Message-ID: <45F992E1.1060604@psc.edu> References: <45F86842.8040305@psc.edu> <20070315.025839.104050310.davem@davemloft.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------080606060803020603080905" Cc: netdev@vger.kernel.org To: David Miller Return-path: Received: from mailer2.psc.edu ([128.182.66.106]:60058 "EHLO mailer2.psc.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751487AbXCOSjf (ORCPT ); Thu, 15 Mar 2007 14:39:35 -0400 In-Reply-To: <20070315.025839.104050310.davem@davemloft.net> Sender: netdev-owner@vger.kernel.org List-Id: netdev.vger.kernel.org This is a multi-part message in MIME format. --------------080606060803020603080905 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit David Miller wrote: > From: John Heffner > Date: Wed, 14 Mar 2007 17:25:22 -0400 > >> The current tcp_mem initialization gives values that are really too >> small for systems with ~256-768 MB of memory, and also for systems with >> larger page sizes (ia64). This patch gives an alternate method of >> initialization that doesn't depend on the cache allocation functions, >> but I think should still provide a nice curve that gives a smaller >> fraction of total memory with small-memory systems, while maintaining >> the same upper bound (pressure at 1/2, max as 3/4) on larger memory systems. > > Indeed, it's really dumb for any of these calculations to be > dependant upon the page size. > > Your patch looks good, and I'll review it further tomorrow and > push upstream unless I find some issues with it. > > Thanks John. The way it's coded is somewhat opaque since it has to be done with 32-bit integer arithmetic. These plots might help make the motivation behind the code a little clearer. Thanks, -John --------------080606060803020603080905 Content-Type: image/png; x-mac-type="0"; x-mac-creator="0"; name="tcp_mem_pressure.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="tcp_mem_pressure.png" iVBORw0KGgoAAAANSUhEUgAABLAAAAOECAIAAAA+D1+tAAAACXBIWXMAABcSAAAXEgFnn9JS AAAAB3RJTUUH1wMPEh87v998FQAAACJ0RVh0Q3JlYXRpb24gVGltZQAxNS1NYXItMjAwNyAx NDozMjowMPYSAwYAAAAkdEVYdFNvZnR3YXJlAE1BVExBQiwgVGhlIE1hdGh3b3JrcywgSW5j LrrEUs8AACAASURBVHic7d1tc6NGFoBRMZX//5fZD2QJA6gBAf12z6mtrbHlkTUh9vjJ7W6G cRw/AAAAxPOn9AsAAACgDEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEA AEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCCEAAA IChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQ lCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhK EAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUI AQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQA AABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIL6p/QLCGcYhuWb 4zh+e3T10OGjAAAAl5gQZrWqwdV7Vo9eehMAAOAqE8J8poRbTvZ2o276gG+9l34UAADgPBPC WqxycRV+6UcBAAB+YEKYz+52QVsBAQCAUgRhAfNkTw0CAAAFCcKShmF4owktJQUAoEsGKo8T hAUsdwC+1IS+VHry0r8klOKCdsYF7YwL2hkXtDPGHm9wqEwxvj0BAABlCcJ8hmHwXzUAAIB6 CMJiVnF46T4TTigFAADus4cwn3Ect0PCbdSlp4hmjAAAwFNMCLNa5d+DbwIAAFxlQphbOuTu PAoAAHCJCSEAAEBQghAAACAoN+vskHuwAgDQHz/lvsGEEAAAIChBCAAAEJQgBAAACEoQAgAA BCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACC EoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJ QgAAgKAEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAAQQlCAACAoAQh AABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAA ACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCCEAAAIChBCAAA EJQgBAAACEoQAgAABCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAI ShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQl CAEAAIIShAAAAEEJQgAAgKAEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKE AAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIA AICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAA QFCCEAAA/jMMpV8BZPRP6RcAAABVmFJwHEu/DshIEAIAwGcYpCARWTIKAEB0apCwBCEAAKGp QSKzZBQAgKBsGgRBCABARAaD8LFkFACAgNQgTAQhAACxqEGYWTKa27C41+m4+FY07N0Ddfz7 e9W33wsAwElqEJZMCPMZhmFVfbsRmPjtP/9eAACGQQ3Cmglhbqup4DAMy/cczv2mD1CDAACX SEHYZUKYzziOP6/znApw/u2yEADgJINBSDAhLGY35+wSBAB4kBSENBPCMubwS1SfASAAAPAq E8ICEjU4v2f6mNUOwx8+xZbBIwAQwfTTkB982mIikp8gzO1bDW7fvPP1oPoAgLCkYLvSP8TK xTcIwqzOrBQFAOBnNg3CJfYQ5pOuwe1dCgEAuEQNwlWCMLeTs8FVHK7uM7G6CwUAAGoQfmDJ aG7bMeDqVvXfHvr22wEAUIPwGxPCWiROHD3zJgBATO47D3eYEOZzmHD3PwAAIBQpCDcJQgAA 2uPeEvAIQQgAQGMMBuEp9hACAAAEZUIIAEAzrBSFZwlCAAAaIAXhDYIQAIDa2TQIL7GHEACA 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 rkJggg== --------------080606060803020603080905 Content-Type: image/png; x-mac-type="0"; x-mac-creator="0"; name="tcp_mem_frac.png" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="tcp_mem_frac.png" iVBORw0KGgoAAAANSUhEUgAABLAAAAOECAIAAAA+D1+tAAAACXBIWXMAABcSAAAXEgFnn9JS AAAAB3RJTUUH1wMPEh83tmkwPgAAACJ0RVh0Q3JlYXRpb24gVGltZQAxNS1NYXItMjAwNyAx NDozMTo1NnCz/ZgAAAAkdEVYdFNvZnR3YXJlAE1BVExBQiwgVGhlIE1hdGh3b3JrcywgSW5j LrrEUs8AACAASURBVHic7d3beqs4toDRUF+//ytrX7CLpgUGJI7SHOMqK3Ecm2Id/ppCDCml PwAAAOL55+0XAAAAwDsEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAA QQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICg BCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCC EAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEI AAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQA AAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAA BCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShC2ZxiGYRjefhUA AEDz/vP2C+AoEQgAAFzLhBAAACAoE8JmpJTGD4wKAQCAS5gQAgAABCUIAQAAgrJktEPWlAIA 0KXpKiquIgj75LfKZBgGR2POAck4IBkHJOOAzDkaGQck44BkHJDM+QNi7HEHS0YBAACCEoQA AABBCUIAAICgBCEAAEBQghAAACAou4y2x3ZVAADAJUwIAQAAghKEAAAAQbldZofcBRUAgP74 V+4dTAgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEA AIIShAAAAEEJQgAAgKAEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAA QQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICg BCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCC EAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEI AAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQA AAhKEAIAAAT1n7dfQHTDMEwfp5QufDAAAMA2E8I3zQNv+cszDwYAANglCN+XUjo4G0z/mn8S AACgjiB8zdR44y/HDw42nvWiAADAeYIQAAAgKEEIAAAQlF1G25BSGobh+EWDG4+03BQAgG+y R8bzBGEzxiZcfvzrwY+8KAAAuMz2P2Ll4h0EYUtkHgAAcCHXEAIAAAQlCF+T3WciuwtFJruA cPvBAAAAR1gy+r7VxdCryWfZNAAAcCETwjdlvbcx8Vt+yXgQAAA4yYTwZb+6TgECAAB3MyEE AAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIA AAQlCAEAAIIShAAAAEEJQgAAgKAEIQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAA ghKEAAAAQQlCAACAoAQhAABAUIIQAAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABB CUIAAICgBCEAAEBQghAAACAoQQgAABCUIAQAAAhKEAIAAAQlCAEAAIIShAAAAEEJQgAAgKAE IQAAQFCCEAAAIChBCAAAEJQgBAAACEoQAgAABCUIAQAAghKEAAAAQQlCAACAoAQhAABAUIIQ AAAgKEEIAAAQlCAEAAAIShACAAAEJQgBAACCEoQAAABBCUIAAICgBCEAAEBQghAAACAoQQgA ABCUIAQAAAhKEAIAAAQlCAEAAIL6z9svILphGKaPU0oXPhgAAGCbCeGb5oG3/OWZBwMAAOwS hO9LKR2fDc4frAkBAIAzBOFrxpyb6m78YLvxsgcDAACcIQgBAACCEoRtyOaH2XQRAACggl1G G3PwusGNh8lIAAC+yR4ZzxOEbZhvKjP9chiGX3Wn+gAAaM72P2Ll4h0sGW2JTWUAAIALCUIA AICgBOFrKvaJyR4MAABwhmsI37dad8u7FE7XDU6PsXAUAAA4w4TwTVnRbQde0YMBAAB2mRC+ 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 AABJRU5ErkJggg== --------------080606060803020603080905--