From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755980AbcHVONC (ORCPT ); Mon, 22 Aug 2016 10:13:02 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:36766 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755813AbcHVONA (ORCPT ); Mon, 22 Aug 2016 10:13:00 -0400 From: Minchan Kim X-Google-Original-From: Minchan Kim Date: Mon, 22 Aug 2016 23:12:41 +0900 To: Michal Hocko Cc: Minchan Kim , Sonny Rao , Jann Horn , Robert Foss , corbet@lwn.net, Andrew Morton , Vlastimil Babka , Konstantin Khlebnikov , Hugh Dickins , Naoya Horiguchi , John Stultz , ross.zwisler@linux.intel.com, jmarchan@redhat.com, Johannes Weiner , Kees Cook , Al Viro , Cyrill Gorcunov , Robin Humble , David Rientjes , eric.engestrom@imgtec.com, Janis Danisevskis , calvinowens@fb.com, Alexey Dobriyan , "Kirill A. Shutemov" , ldufour@linux.vnet.ibm.com, linux-doc@vger.kernel.org, "linux-kernel@vger.kernel.org" , Ben Zhang , Bryan Freed , Filipe Brandenburger , Mateusz Guzik Subject: Re: [PACTH v2 0/3] Implement /proc//totmaps Message-ID: <20160822141241.GA3464@blaptop> References: <20160817093125.GA27782@pc.thejh.net> <20160817130320.GC20703@dhcp22.suse.cz> <20160818074433.GC30162@dhcp22.suse.cz> <20160818180104.GS30162@dhcp22.suse.cz> <20160819022634.GA14206@bbox> <20160819080532.GC32619@dhcp22.suse.cz> <20160822000745.GA21441@bbox> <20160822074052.GC13596@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="x+6KMIRAuhnl3hBn" Content-Disposition: inline In-Reply-To: <20160822074052.GC13596@dhcp22.suse.cz> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --x+6KMIRAuhnl3hBn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Aug 22, 2016 at 09:40:52AM +0200, Michal Hocko wrote: > On Mon 22-08-16 09:07:45, Minchan Kim wrote: > [...] > > #!/bin/sh > > ./smap_test & > > pid=$! > > > > for i in $(seq 25) > > do > > awk '/^Rss/{rss+=$2} /^Pss/{pss+=$2} END {}' \ > > /proc/$pid/smaps > > done > > kill $pid > > > > root@bbox:/home/barrios/test/smap# time ./s.sh > > pid:21973 > > > > real 0m17.812s > > user 0m12.612s > > sys 0m5.187s > > retested on the bare metal (x86_64 - 2CPUs) > Command being timed: "sh s.sh" > User time (seconds): 0.00 > System time (seconds): 18.08 > Percent of CPU this job got: 98% > Elapsed (wall clock) time (h:mm:ss or m:ss): 0:18.29 > > multiple runs are quite consistent in those numbers. I am running with > $ awk --version > GNU Awk 4.1.3, API: 1.1 (GNU MPFR 3.1.4, GNU MP 6.1.0) > > > > like a problem we are not able to address. And I would even argue that > > > we want to address it in a generic way as much as possible. > > > > Sure. What solution do you think as generic way? > > either optimize seq_printf or replace it with something faster. If it's real culprit, I agree. However, I tested your test program on my 2 x86 machines and my friend's machine. Ubuntu, Fedora, Arch They have awk 4.0.1 and 4.1.3. Result are same. Userspace speand more times I mentioned. [root@blaptop smap_test]# time awk '/^Rss/{rss+=$2} /^Pss/{pss+=$2} END {printf "rss:%d pss:%d\n", rss, pss}' /proc/3552/smaps rss:263484 pss:262188 real 0m0.770s user 0m0.574s sys 0m0.197s I will attach my test progrma source. I hope you guys test and repost the result because it's the key for direction of patchset. Thanks. --x+6KMIRAuhnl3hBn Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="smap_test.c" #include int main() { unsigned long nr_vma = 0; while (1) { if (mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_SHARED|MAP_POPULATE, -1, 0) == MAP_FAILED) break; nr_vma++; }; printf("pid:%d nr_vma:%lu\n", getpid(), nr_vma); pause(); return 0; } --x+6KMIRAuhnl3hBn--