Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751306AbdISJfB (ORCPT ); Tue, 19 Sep 2017 05:35:01 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:38656 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750747AbdISJfA (ORCPT ); Tue, 19 Sep 2017 05:35:00 -0400 Subject: Re: [PATCH v3 0/2] Fixup for discontiguous/sparse numa nodes From: Satheesh Rajendran To: acme@kernel.org, mingo@kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Cc: srikar@linux.vnet.ibm.com, bala24@linux.vnet.ibm.com In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Date: Tue, 19 Sep 2017 15:04:38 +0530 Mime-Version: 1.0 X-Mailer: Evolution 3.18.5.2-0ubuntu3.2 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 x-cbid: 17091909-0040-0000-0000-000003A4852B X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00007761; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000230; SDB=6.00919206; UDB=6.00461812; IPR=6.00699432; BA=6.00005597; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00017205; XFM=3.00000015; UTC=2017-09-19 09:34:56 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17091909-0041-0000-0000-00000799889D Message-Id: <1505813678.16495.5.camel@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-09-19_04:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=2 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1709190136 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3080 Lines: 100 Hi Arnaldo, Please let me know if any further comments. Thanks in advance :-) Regards, -Satheesh.On Mon, 2017-08-21 at 15:45 +0530, sathnaga@linux.vnet.ibm.com wrote: > From: Satheesh Rajendran > > Certain systems would have sparse/discontinguous > numa nodes. > perf bench numa doesnt work well on such nodes. > 1. It shows wrong values. > 2. It can hang. > 3. It can show redundant information for non-existant nodes. > >  #numactl -H > available: 2 nodes (0,8) > node 0 cpus: 0 1 2 3 4 5 6 7 > node 0 size: 61352 MB > node 0 free: 57168 MB > node 8 cpus: 8 9 10 11 12 13 14 15 > node 8 size: 65416 MB > node 8 free: 36593 MB > node distances: > node   0   8 >   0:  10  40 >   8:  40  10 > > Scenario 1: > > Before Fix: >  # perf bench numa mem --no-data_rand_walk -p 2 -t 20 -G 0 -P 3072 -T > 0 -l 50 -c -s 1000 > ... > ... >  # 40 tasks will execute (on 9 nodes, 16 CPUs): ----> Wrong number of > nodes > ... >  #    2.0%  [0.2 > mins]  1/1   0/0   0/0   0/0   0/0   0/0   0/0   0/0   4/1  [ 4/2 ] > l:  0-0   (  0) ----> Shows info on non-existant nodes. > > After Fix: >  # ./perf bench numa mem --no-data_rand_walk -p 2 -t 20 -G 0 -P 3072 > -T 0 -l 50 -c -s 1000 > ... > ... >  # 40 tasks will execute (on 2 nodes, 16 CPUs): > ...  >  #    2.0%  [0.2 mins]  9/1   0/0  [ 9/1 ] l:  0-0   (  0) >  #    4.0%  [0.4 mins] 21/2  19/1  [ 2/3 ] l:  0-1   (  1) {1-2} > > Scenario 2: > > Before Fix: >  # perf bench numa all >  # Running numa/mem benchmark... > .... > ... >  # Running RAM-bw-remote, "perf bench numa mem -p 1 -t 1 -P 1024 -C 0 > -M 1 -s 20 -zZq --thp  1 --no-data_rand_walk" > perf: bench/numa.c:306: bind_to_memnode: Assertion `!(ret)' failed. > ------------> Got hung > > After Fix: >  # ./perf bench numa all >  # Running numa/mem benchmark... > .... > ... >  # Running RAM-bw-remote, "perf bench numa mem -p 1 -t 1 -P 1024 -C 0 > -M 1 -s 20 -zZq --thp  1 --no-data_rand_walk" > >  # NOTE: ignoring bind NODEs starting at NODE#1 >  # NOTE: 0 tasks mem-bound, 1 tasks unbound >          20.017 secs slowest (max) thread-runtime >          20.000 secs fastest (min) thread-runtime >          20.006 secs average thread-runtime >           0.043 % difference between max/avg runtime >         413.794 GB data processed, per thread >         413.794 GB data processed, total >           0.048 nsecs/byte/thread runtime >          20.672 GB/sec/thread speed >          20.672 GB/sec total speed > > Changes in v2: > Fixed review comments for function names and alloc failure handle > > Changes in v3: > Coding Style fixes. > > > Satheesh Rajendran (2): >   perf/bench/numa: Add functions to detect sparse numa nodes >   perf/bench/numa: Handle discontiguous/sparse numa nodes > >  tools/perf/bench/numa.c | 61 > +++++++++++++++++++++++++++++++++++++++++++------ >  1 file changed, 54 insertions(+), 7 deletions(-) >