From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754006AbaIOQYv (ORCPT ); Mon, 15 Sep 2014 12:24:51 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54202 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753051AbaIOQYt (ORCPT ); Mon, 15 Sep 2014 12:24:49 -0400 Date: Mon, 15 Sep 2014 18:21:31 +0200 From: Oleg Nesterov To: Jerome Marchand Cc: linux-mm@kvack.org, Randy Dunlap , Martin Schwidefsky , Heiko Carstens , linux390@de.ibm.com, Hugh Dickins , Peter Zijlstra , Paul Mackerras , Ingo Molnar , Arnaldo Carvalho de Melo , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Subject: Re: [RFC PATCH v2 5/5] mm, shmem: Show location of non-resident shmem pages in smaps Message-ID: <20140915162131.GA22768@redhat.com> References: <1410791077-5300-1-git-send-email-jmarchan@redhat.com> <1410791077-5300-6-git-send-email-jmarchan@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1410791077-5300-6-git-send-email-jmarchan@redhat.com> User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jerome, Not sure I understand this patch correctly, will try to read it later. But a couple of nits/questions anyway, On 09/15, Jerome Marchand wrote: > > +The ShmXXX lines only appears for shmem mapping. They show the amount of memory > +from the mapping that is currently: > + - resident in RAM but not mapped into any process (ShmNotMapped) But how can we know that it is not mapped by another process? And in fact "not mapped" looks confusing (at least to me). IIUC it is actually mapped even by this process, just it never tried to fault these (resident or swapped) pages in. Right? > +void update_shmem_stats(struct mem_size_stats *mss, struct vm_area_struct *vma, > + pgoff_t pgoff, unsigned long size) static? > +{ > + int count = 0; > + > + switch (shmem_locate(vma, pgoff, &count)) { > + case SHMEM_RESIDENT: > + if (!count) > + mss->shmem_notmapped += size; > + break; > + case SHMEM_SWAP: > + mss->shmem_swap += size; > + break; > + } > +} It seems that shmem_locate() and shmem_vma() are only defined if CONFIG_SHMEM, probably this series needs more ifdef's. And I am not sure why we ignore SHMEM_SWAPCACHE... Oleg.