From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932196AbbC0M2L (ORCPT ); Fri, 27 Mar 2015 08:28:11 -0400 Received: from mail.skyhub.de ([78.46.96.112]:41553 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932165AbbC0M2H (ORCPT ); Fri, 27 Mar 2015 08:28:07 -0400 Date: Fri, 27 Mar 2015 13:26:17 +0100 From: Borislav Petkov To: Dave Hansen Cc: linux-kernel@vger.kernel.org, x86@kernel.org, tglx@linutronix.de, dave.hansen@linux.intel.com Subject: Re: [PATCH 05/17] x86, mpx: trace when MPX is zapping pages Message-ID: <20150327122617.GD18927@pd.tnic> References: <20150326183327.64807530@viggo.jf.intel.com> <20150326183339.4648B7D9@viggo.jf.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20150326183339.4648B7D9@viggo.jf.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Mar 26, 2015 at 11:33:39AM -0700, Dave Hansen wrote: > > From: Dave Hansen > > When MPX can not free an entire bounds table, it will instead > try to zap unused parts of a bounds table to free the backing > memory. This decreases Rss (resident set) without decreasing RSS (Resident Set Size) > the virtual space allocated for bounds tables. > > Signed-off-by: Dave Hansen > --- > > b/arch/x86/include/asm/trace/mpx.h | 22 ++++++++++++++++++++++ > b/arch/x86/mm/mpx.c | 1 + > 2 files changed, 23 insertions(+) > > diff -puN arch/x86/include/asm/trace/mpx.h~mpx-trace_unmap_zap arch/x86/include/asm/trace/mpx.h > --- a/arch/x86/include/asm/trace/mpx.h~mpx-trace_unmap_zap 2015-03-26 11:27:06.279273832 -0700 > +++ b/arch/x86/include/asm/trace/mpx.h 2015-03-26 11:27:06.283274012 -0700 > @@ -53,6 +53,28 @@ TRACE_EVENT(bounds_exception_mpx, > __entry->bndstatus) > ); > > +TRACE_EVENT(mpx_unmap_zap, > + > + TP_PROTO(unsigned long start, > + unsigned long end), > + TP_ARGS(start, end), > + > + TP_STRUCT__entry( > + __field(unsigned long, start) > + __field(unsigned long, end) > + ), > + > + TP_fast_assign( > + __entry->start = start; > + __entry->end = end; > + ), > + > + TP_printk("0x%p -> 0x%p", Maybe as an interval: [0x%p:0x%p] > + (void *)__entry->start, > + (void *)__entry->end > + ) > +); > + > #else -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. --