From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 23 Feb 2010 12:55:51 +1100 From: Anton Blanchard To: Mel Gorman Subject: Re: [PATCH] powerpc: Set a smaller value for RECLAIM_DISTANCE to enable zone reclaim Message-ID: <20100223015551.GG31681@kryten> References: <20100218222923.GC31681@kryten> <20100219000730.GD31681@kryten> <20100219145523.GN30258@csn.ul.ie> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="tKW2IUtsqtDRztdT" In-Reply-To: <20100219145523.GN30258@csn.ul.ie> Cc: cl@linux-foundation.org, linuxppc-dev@lists.ozlabs.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Mel, > You're pretty much on the button here. Only one thread at a time enters > zone_reclaim. The others back off and try the next zone in the zonelist > instead. I'm not sure what the original intention was but most likely it > was to prevent too many parallel reclaimers in the same zone potentially > dumping out way more data than necessary. > > > I'm not sure if there is an easy way to fix this without penalising other > > workloads though. > > > > You could experiment with waiting on the bit if the GFP flags allowi it? The > expectation would be that the reclaim operation does not take long. Wait > on the bit, if you are making the forward progress, recheck the > watermarks before continueing. Thanks to you and Christoph for some suggestions to try. Attached is a chart showing the results of the following tests: baseline.txt The current ppc64 default of zone_reclaim_mode = 0. As expected we see no change in remote node memory usage even after 10 iterations. zone_reclaim_mode.txt Now we set zone_reclaim_mode = 1. On each iteration we continue to improve, but even after 10 runs of stream we have > 10% remote node memory usage. reclaim_4096_pages.txt Instead of reclaiming 32 pages at a time, we try for a much larger batch of 4096. The slope is much steeper but it still takes around 6 iterations to get almost all local node memory. wait_on_busy_flag.txt Here we busy wait if the ZONE_RECLAIM_LOCKED flag is set. As you suggest we would need to check the GFP flags etc, but so far it looks the most promising. We only get a few percent of remote node memory on the first iteration and get all local node by the second. Perhaps a combination of larger batch size and waiting on the busy flag is the way to go? Anton --tKW2IUtsqtDRztdT Content-Type: image/png Content-Disposition: attachment; filename="stream_test:_percentage_off_node_memory.png" Content-Transfer-Encoding: base64 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 tY8f+60f/tAfapq/9bea5pvfbJpf/dXJ/3/v95rmiy+a5hd+oWn+rX9r8v8f/uGm+Rt/o2n+ 4B9smk+fmuaXf7lp/pV/pWl++7fLed/7vU3z3e82zR/4A2WM3/qtpvnRH52cfvHiboDcNE3z O79TluUf/+Omef68nM74rW9NLpf7+SN/pCzPr/1a0/wL/8Ld+1nUN7/ZND//8+X5+D//z7vP U/24550/9HwPXe4f/aPyOH/lV5rmX/vX7j5Pv/qrTfMv/oure3zLvk+Glnve8n/jG03zu79b Xqe//teb5vu+r7xXHnt/qzDUAoXVWn0F+8P95b/cNP/6v16+8372Z8daAS2AZlT+x/+xbf+D /+Cnf/ov/+Wm+eVf/ut//Vvfapp/+9/+3u89OysHUJ2e/jv/zulp05yf/5v/5vn5ppcWAAAA AB4qYfj//r83zXe+M9YAWgsORuXf/Xeb5q/8le/5nv/tf2uaP/Wnvvd76/PPzv6X/+XsrGn+ 7J/92Z/9s3/2b//tP/fn/vyf/3N/7n/6n37xF3/oh37xF//v/3vTy89j5FCou7MqAwAAu6yu NF1UXUGbSuV/8A+a5k/8ieVvL5W9nz41zY/9WNP8+q83zR/7Y5OK2e/7vn4F9f/7/zbND/xA GX/wByeX+/a3S5gUv/RLTfMn/2TT/H//X6mS/uKLUk39xRf9yttUVA9V6G5bBXQq0jf1+HI/ /9Q/1TR//++XZf2FX7hbAZ/LfetbTfO3//bdxzNUib3o/cFj/OZvlgrokUsFtNE4prF0l+q6 k5Om+amfmnedm5syvnq16eU2Go1Go9FoNBqNRuNyY5HJ6TKmx3N69+aSt7dlPDm5//Zy/QSq OSe3nx7Q9f2ml3RuJ5Pw1ctRj5eXZby7XVrUkxXWy5XHlfNfvJh9O/X91ss7fP7DLpcAdnL5 zT6+ea9rzp93O3ld68tNXr9597fpz41xN8YikxB+/fWml+ehoxYcjNJ/+p+27Te+8Vu/9a1v NU3X/cE/+J/9Z03z7//7ZX/q//A//O7vfvvbTVP2rE5Lj9nT0/KjkEkgAAAAAGC7ZA60nC45 7vhacHxj0wsAD/Hd7zZN1/3O7+T0j/xI0/yVv9I0P/VTTdM03/u9P//zTdM0P/uz/WuldcPF RdO07WSPJgAAAACwDgJoRuk3fqNpSn+ovhcvmubDh6b5o3+0aUrvpaZpmqHpCE9OShB9c1NG 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 2q+QzehIw8caS+XwrkmLjfr575+/u6/LU3+efX/wEMsemVGu9eWXm17uxxJA75X6h+XycuiH qS+tNd68KQHzhw8Jmsv49m0dZJfT6bFcW/Xkhd/5TnpNl2g9k/tNP4KmmX9o0SYmJZxnurI5 QXTdYmS6pUrb3u3lBQAADCtbC5Nx2yZbh/v1C8XqwqRlW22O3VN/nn1/sJx0GFhsLrUcyf+d 72x6uR9LAM1Syg9bZtfNHpu7X7Cb3fM3NBnh0Oy/qYROsFsHvOVx3nf99UvP6q6b9IoeCvhP TkoQfXOjVzQAAGT9OaPWdeyiu9t9KRjb9JIBCKD3RCp/F9uzUqt7QB8eljF7+FJJXQe0dSXu 5891L+n1PNKhFcpF90RuYyX03cc5aXGSFYq6lUoe7+1tCaJ359AqAACeVlnfv7npH0F598i7 2YcQT9ajU8Ay+3KT7Yn+5e4euVnGTHqe84fW9+9WKJbL5/Tdy99//qqez6Oj2c9rxjyu4fX4 oec7y3//7T51oUoKmG5v+8uT08NHci7aOmLo0Pb++Yu+r9LKYvI8zb7ezc39y10/3tVtV/bf p3ffr/XjX+52V/X5m8xFNfv5mBxx3T+9+Odv0c9zGQ8P572f+stbX27z3x8wSpmE0Gic/Czl r4xpvZHzs2L46dPsyw+NR0erXc40Yf/667uXa5qmubkpY65ze7vM7XddmZQw/5mMz55t+nWa 9Xi77sWLMpbHPXzZk5PNL6/RaDQajUajcUxjkeAs/7m66p+fACf/yXh52b9cWgTkPzc3/fMT +C27vXF3fX9o+2b2cmScTGq+nucxQeuij2uy3Is9vkXHyeu3nsf50OU6O1v0dZx9uaH34dD7 KpPRJzCsz6/f5ynIunv7/ctlu3n4cqt5nuvJ64efz3nP4/3P00M/f4u+3+/e38Oeh/mf59nP V94HQ49/sh297P0ZjY//nN+Xf41jVAHNUsobJy0ucgjbUMVwKpHTI7qe5G/d6lYcy7bQGFre baqEjq6bPN68LkPLf3ZWKqIvL7XoAABgcfV6f12BWp/OEXp1ZWR9uj5CMuvt2Z7I/T5/XrYr cuTm8fHs6813//bJ+/er3n7pV9LW2xO5n+fPy/jyZf/xx6JzvQw9X3ULv6c+QjKPJ48vj7d+ ntc1uXred/X2T474zXbU0Nw7ed/k+a2PQE0wPXQ676v6eg/Xf5/e3S4v5w/NgTRk1Z+/+vV8 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 5FDQMtaB9fTYdV1nAwYAYJ5+RXUC6QTUdVBd/39dhiqrJ2PZGh6aBBsANmtX8i+TEAJbqp7N fVWVNqncWUTZlCqGDhWddbrruk6PQwBgf/RbZSwe6PYrrYfW8/L/Zdbjpm8n49D9h0prAFgH FdCMUtkD9H/8Hzld3sf/8r+86eViU9q2betDQoc2XJ6q4iZmtQSZNr2B1nVdt38VOOXzfHZW Psenp5teHmB55XM8CYjK5/ndu00vF7C88nk+Oiqnrq/L53l7gtbZldb1ep9Ka2ga69mwC3Yl /xJA8yjlg5AWCVlRzQpeVrjevSvvs/Pz1d7v3/t7OV1u/0d/dNPPB2PTtm071NswhjZo1m1e r+tZFdjj7HVdPs/d75uuQgLGonyO8/15clI+zwcHm14uYHnl83x1VU6dn5fP8/iD0/VWWi9r qEDh7vqfSmsew3o2jN+u5F9acPAg/eA5vXprWYE7OyuXzwdldUE0PM6sVhmLbGBNV/oNbcDU QfWyGzJDgfi85aofx7xe1+MNrgEAFlWC3Lq1Rt3ybWK9ldb15YfX9/otQobW7yYBtkprALaR AJpHSMVzpELi9DSH+pT/1xXSAmjGbvpQ1IyLBtfzNlgyDrUSWdS6e12bpBEA2F2ze1rPX98r a1VDreHq9bxlCxTmX74fWC9aaT3kw4f+8wAAD6MFB0vp93i8ve2f+/JlesQternHLcf4D0GA 5exCr+u7kzQ6NBDGTwsO2B272oJjW5XAeNEj6556/W5VVvX+WdUk349fnrFUmlvPhvHblfxL AM1S+huYWTHNB+DuD1p+8Pr/PTh47IrsrnwA4Wks0+v6qTdsPn8u3wTPnpUl2v4V+dVY1QYU bIe/+Tebpml+7Mdubpqmab788j/5T5qmaf7b/3bTywUs77/+r5umaf78n3/9umma5jvf+amf apqm+YVf2PRy0fc3/2bT/PRP/9iP/eN/3DQ/+IPf//3/1//VND/8w//sP/ubv9k03/zmP/1P /+7vNs33fd/3f/8//IdN861v/fP//KaXl9n+mX+maX7t137+5x96/e/93qb5f/6f3/mdb36z aX7zN3/91+vzf+7nmubTpy+//ON/vGmeP//Odzb9eIHl/Vf/VdN8+PCv/qv/6//aNL/4i//w H441/xJAs5TtCqBTWf1H/2gZf/d3F7t2Lvc7v7Op5xHG4Ad+oGma5nu+5wd/sGma5hvf+KEf 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 --tKW2IUtsqtDRztdT Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="reclaim_4096_pages.patch" --- mm/vmscan.c~ 2010-02-21 23:47:14.000000000 -0600 +++ mm/vmscan.c 2010-02-22 03:22:01.000000000 -0600 @@ -2534,7 +2534,7 @@ .may_unmap = !!(zone_reclaim_mode & RECLAIM_SWAP), .may_swap = 1, .nr_to_reclaim = max_t(unsigned long, nr_pages, - SWAP_CLUSTER_MAX), + 4096), .gfp_mask = gfp_mask, .swappiness = vm_swappiness, .order = order, --tKW2IUtsqtDRztdT Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="wait_on_ZONE_RECLAIM_LOCKED.patch" --- mm/vmscan.c~ 2010-02-21 23:47:14.000000000 -0600 +++ mm/vmscan.c 2010-02-21 23:47:31.000000000 -0600 @@ -2634,8 +2634,8 @@ if (node_state(node_id, N_CPU) && node_id != numa_node_id()) return ZONE_RECLAIM_NOSCAN; - if (zone_test_and_set_flag(zone, ZONE_RECLAIM_LOCKED)) - return ZONE_RECLAIM_NOSCAN; + while (zone_test_and_set_flag(zone, ZONE_RECLAIM_LOCKED)) + cpu_relax(); ret = __zone_reclaim(zone, gfp_mask, order); zone_clear_flag(zone, ZONE_RECLAIM_LOCKED); --tKW2IUtsqtDRztdT--