Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933914AbbGVKqd (ORCPT ); Wed, 22 Jul 2015 06:46:33 -0400 Received: from mail.skyhub.de ([78.46.96.112]:39658 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933446AbbGVKqb (ORCPT ); Wed, 22 Jul 2015 06:46:31 -0400 Date: Wed, 22 Jul 2015 12:46:24 +0200 From: Borislav Petkov To: Pan Xinhui Cc: "linux-kernel@vger.kernel.org" , Thomas Gleixner , mingo@redhat.com, hpa@zytor.com, x86@kernel.org, bp@suse.de, toshi.kani@hp.com, jgross@suse.com, mcgrof@suse.com, "mnipxh@163.com" , "yanmin_zhang@linux.intel.com" Subject: Re: [PATCH V3] x86/mm/pat: Do a small optimization and fix in reserve_memtype Message-ID: <20150722104624.GA26553@nazgul.tnic> References: <55AF2C68.5010304@intel.com> <20150722074649.GD7979@nazgul.tnic> <55AF5CFC.1080303@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <55AF5CFC.1080303@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 Content-Length: 1651 Lines: 58 On Wed, Jul 22, 2015 at 05:06:04PM +0800, Pan Xinhui wrote: > how about: > memtype_lock protects the rb-tree root and the rb-nodes which is a field of memtype from delete/add/lookup in a race. Use this: "All pat_rbtree operations need to be performed while holding the memtype_lock." > Actually I have same questions. I find these output logs are added in > commit: 6997ab4982a29925e79f72c3a59823cf944c3529(x86: add PAT related > debug prints) In the past, *new_type == actual_type == new->type on > success. codes are below. author use actual_type there. So this function is one bit PITA. So req_type is used to compute actual type a bit higher: actual_type = pat_x_mtrr_type(start, end, req_type); and from then on actual_type is being used. BUT!, in order to have *all* debugging information, the last dprintk() call should dump actual_type and req_type because this way we show what pat_x_mtrr_type() did too. And we don't need to dump new->type because this is the !err case and in that case we assigned new_type to it, which we dump already. Ok? Btw, you could also simplify this: if (is_range_ram == 1) { err = reserve_ram_pages_type(start, end, req_type, new_type); return err; } to: if (is_range_ram == 1) return reserve_ram_pages_type(start, end, req_type, new_type); while at it. Thanks. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/