From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752400AbcGAIRx (ORCPT ); Fri, 1 Jul 2016 04:17:53 -0400 Received: from merlin.infradead.org ([205.233.59.134]:57322 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752776AbcGAIK2 (ORCPT ); Fri, 1 Jul 2016 04:10:28 -0400 Date: Fri, 1 Jul 2016 10:10:22 +0200 From: Peter Zijlstra To: Byungchul Park Cc: mingo@kernel.org, linux-kernel@vger.kernel.org, npiggin@suse.de, walken@google.com, ak@suse.de, tglx@inhelltoy.tec.linutronix.de Subject: Re: [RFC 08/12] lockdep: Apply crossrelease to PG_locked lock Message-ID: <20160701081022.GM30921@twins.programming.kicks-ass.net> References: <1466398527-1122-1-git-send-email-byungchul.park@lge.com> <1466398527-1122-9-git-send-email-byungchul.park@lge.com> <20160630130458.GF30154@twins.programming.kicks-ass.net> <20160630232121.GT2279@X58A-UD3R> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160630232121.GT2279@X58A-UD3R> User-Agent: Mutt/1.5.23.1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 01, 2016 at 08:21:21AM +0900, Byungchul Park wrote: > On Thu, Jun 30, 2016 at 03:04:58PM +0200, Peter Zijlstra wrote: > > On Mon, Jun 20, 2016 at 01:55:23PM +0900, Byungchul Park wrote: > > > @@ -215,6 +219,11 @@ struct page { > > > #ifdef LAST_CPUPID_NOT_IN_PAGE_FLAGS > > > int _last_cpupid; > > > #endif > > > + > > > +#ifdef CONFIG_LOCKDEP_PAGELOCK > > > + struct lockdep_map map; > > > + struct cross_lock xlock; > > > +#endif > > > } > > > > So that's 32+64=96 bytes (CONFIG_LOCK_STAT=n) added to struct page, > > really!? > > Yes... I concerned it at first, but I thought it would be ok since > CONFIG_LOCKDEP_PAGE is a debug feature. Right, but still, that's 0.75 GB of memory on my desktop (32GB total) just for a debug feature. It grows struct page from 1.5% to 3.9% of total memory, that is immense. We've avoided doing this for ptl; which was doable because typically only a small number of pages ends up being a pagetable. In any case, I feel PG_locked is special enough to fudge. After all, the content of all these lockdep_map thingies would basically be the same, which is a massive waste of space. I still need to bend my brain around this xlock stuff, that just didn't want to parse when I looked at it last night.