From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 913BBC07EBC for ; Tue, 19 Jan 2021 18:28:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 675F222E01 for ; Tue, 19 Jan 2021 18:28:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731777AbhASRHP (ORCPT ); Tue, 19 Jan 2021 12:07:15 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:30098 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390680AbhASRGU (ORCPT ); Tue, 19 Jan 2021 12:06:20 -0500 Received: from pps.filterd (m0098393.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 10JH2auX067042; Tue, 19 Jan 2021 12:05:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=date : from : to : cc : subject : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=pp1; bh=x1k5G6fnXmXExWmHSf3oFuukBGWONsJugGkbXGnc3yY=; b=DDriZ9rAKAGJsIMDYZSm/6UijQO01kEp0Rxk31UJwn1hLhpY35XmHxZiiin96hhpUGtS /h8wjz9v07ZQfv8ow//qeMflH8NKVbt2CpG04fvJd3FjEVyJPMDimAmxXCPk/AEXskqS AqckO7tVHSoBkDi3I3XioAHtaG9VyXqF/utBXiXSmGnVPVME2Ox4yMuj0IlLHKCmU6zh se1c19vnVjxG/LPqB9jbYPKCs8hna6Y93mAi+EJb94WsMXRl87l+v1u6ntfZ0wgGKgKI egOkk/ESy/yHFRk7BrCdz6oZUN9DxnWsSiLU7sm1EzUc69L5NEqjxJllEPAam1viq3n4 jA== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com with ESMTP id 3663f303ax-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jan 2021 12:05:08 -0500 Received: from m0098393.ppops.net (m0098393.ppops.net [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 10JH58rs076502; Tue, 19 Jan 2021 12:05:08 -0500 Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com with ESMTP id 3663f303ad-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jan 2021 12:05:08 -0500 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 10JH4sBB019591; Tue, 19 Jan 2021 17:05:05 GMT Received: from b06cxnps4075.portsmouth.uk.ibm.com (d06relay12.portsmouth.uk.ibm.com [9.149.109.197]) by ppma04ams.nl.ibm.com with ESMTP id 363qs8b9gq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jan 2021 17:05:05 +0000 Received: from d06av22.portsmouth.uk.ibm.com (d06av22.portsmouth.uk.ibm.com [9.149.105.58]) by b06cxnps4075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 10JH53Ho22938022 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 19 Jan 2021 17:05:03 GMT Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7DD9E4C059; Tue, 19 Jan 2021 17:05:03 +0000 (GMT) Received: from d06av22.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 040A64C050; Tue, 19 Jan 2021 17:05:03 +0000 (GMT) Received: from ibm-vm (unknown [9.145.4.167]) by d06av22.portsmouth.uk.ibm.com (Postfix) with ESMTP; Tue, 19 Jan 2021 17:05:02 +0000 (GMT) Date: Tue, 19 Jan 2021 18:05:01 +0100 From: Claudio Imbrenda To: Janosch Frank Cc: kvm@vger.kernel.org, david@redhat.com, thuth@redhat.com, pbonzini@redhat.com, cohuck@redhat.com, lvivier@redhat.com, nadav.amit@gmail.com, krish.sadhukhan@oracle.com Subject: Re: [kvm-unit-tests PATCH v2 04/11] lib/asm: Fix definitions of memory areas Message-ID: <20210119180501.679c2614@ibm-vm> In-Reply-To: References: <20210115123730.381612-1-imbrenda@linux.ibm.com> <20210115123730.381612-5-imbrenda@linux.ibm.com> Organization: IBM X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.343,18.0.737 definitions=2021-01-19_05:2021-01-18,2021-01-19 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 phishscore=0 mlxscore=0 adultscore=0 bulkscore=0 malwarescore=0 impostorscore=0 spamscore=0 mlxlogscore=999 suspectscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2101190096 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org On Tue, 19 Jan 2021 16:33:29 +0100 Janosch Frank wrote: > On 1/15/21 1:37 PM, Claudio Imbrenda wrote: > > Fix the definitions of the memory areas. > > > > Bring the headers in line with the rest of the asm headers, by > > having the appropriate #ifdef _ASM$ARCH_ guarding the headers. > > > > Fixes: d74708246bd9 ("lib/asm: Add definitions of memory areas") > > > > Signed-off-by: Claudio Imbrenda > > Reviewed-by: Krish Sadhukhan > > --- > > lib/asm-generic/memory_areas.h | 9 ++++----- > > lib/arm/asm/memory_areas.h | 11 +++-------- > > lib/arm64/asm/memory_areas.h | 11 +++-------- > > lib/powerpc/asm/memory_areas.h | 11 +++-------- > > lib/ppc64/asm/memory_areas.h | 11 +++-------- > > lib/s390x/asm/memory_areas.h | 13 ++++++------- > > lib/x86/asm/memory_areas.h | 27 ++++++++++++++++----------- > > lib/alloc_page.h | 3 +++ > > lib/alloc_page.c | 4 +--- > > 9 files changed, 42 insertions(+), 58 deletions(-) > > > > diff --git a/lib/asm-generic/memory_areas.h > > b/lib/asm-generic/memory_areas.h index 927baa7..3074afe 100644 > > --- a/lib/asm-generic/memory_areas.h > > +++ b/lib/asm-generic/memory_areas.h > > @@ -1,11 +1,10 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef __ASM_GENERIC_MEMORY_AREAS_H__ > > +#define __ASM_GENERIC_MEMORY_AREAS_H__ > > > > #define AREA_NORMAL_PFN 0 > > #define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > +#define AREA_NORMAL (1 << AREA_NORMAL_NUMBER) > > > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#define MAX_AREAS 1 > > > > #endif > > diff --git a/lib/arm/asm/memory_areas.h b/lib/arm/asm/memory_areas.h > > index 927baa7..c723310 100644 > > --- a/lib/arm/asm/memory_areas.h > > +++ b/lib/arm/asm/memory_areas.h > > @@ -1,11 +1,6 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef _ASMARM_MEMORY_AREAS_H_ > > +#define _ASMARM_MEMORY_AREAS_H_ > > > > -#define AREA_NORMAL_PFN 0 > > -#define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > - > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#include > > > > #endif > > diff --git a/lib/arm64/asm/memory_areas.h > > b/lib/arm64/asm/memory_areas.h index 927baa7..18e8ca8 100644 > > --- a/lib/arm64/asm/memory_areas.h > > +++ b/lib/arm64/asm/memory_areas.h > > @@ -1,11 +1,6 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef _ASMARM64_MEMORY_AREAS_H_ > > +#define _ASMARM64_MEMORY_AREAS_H_ > > > > -#define AREA_NORMAL_PFN 0 > > -#define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > - > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#include > > > > #endif > > diff --git a/lib/powerpc/asm/memory_areas.h > > b/lib/powerpc/asm/memory_areas.h index 927baa7..76d1738 100644 > > --- a/lib/powerpc/asm/memory_areas.h > > +++ b/lib/powerpc/asm/memory_areas.h > > @@ -1,11 +1,6 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef _ASMPOWERPC_MEMORY_AREAS_H_ > > +#define _ASMPOWERPC_MEMORY_AREAS_H_ > > > > -#define AREA_NORMAL_PFN 0 > > -#define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > - > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#include > > > > #endif > > diff --git a/lib/ppc64/asm/memory_areas.h > > b/lib/ppc64/asm/memory_areas.h index 927baa7..b9fd46b 100644 > > --- a/lib/ppc64/asm/memory_areas.h > > +++ b/lib/ppc64/asm/memory_areas.h > > @@ -1,11 +1,6 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef _ASMPPC64_MEMORY_AREAS_H_ > > +#define _ASMPPC64_MEMORY_AREAS_H_ > > > > -#define AREA_NORMAL_PFN 0 > > -#define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > - > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#include > > > > #endif > > diff --git a/lib/s390x/asm/memory_areas.h > > b/lib/s390x/asm/memory_areas.h index 4856a27..827bfb3 100644 > > --- a/lib/s390x/asm/memory_areas.h > > +++ b/lib/s390x/asm/memory_areas.h > > @@ -1,16 +1,15 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef _ASMS390X_MEMORY_AREAS_H_ > > +#define _ASMS390X_MEMORY_AREAS_H_ > > > > -#define AREA_NORMAL_PFN BIT(31-12) > > +#define AREA_NORMAL_PFN (1 << 19) > > #define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > +#define AREA_NORMAL (1 << AREA_NORMAL_NUMBER) > > > > #define AREA_LOW_PFN 0 > > #define AREA_LOW_NUMBER 1 > > -#define AREA_LOW 2 > > +#define AREA_LOW (1 << AREA_LOW_NUMBER) > > > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#define MAX_AREAS 2 > > > > #define AREA_DMA31 AREA_LOW > > > > diff --git a/lib/x86/asm/memory_areas.h b/lib/x86/asm/memory_areas.h > > index 952f5bd..e84016f 100644 > > --- a/lib/x86/asm/memory_areas.h > > +++ b/lib/x86/asm/memory_areas.h > > @@ -1,21 +1,26 @@ > > -#ifndef MEMORY_AREAS_H > > -#define MEMORY_AREAS_H > > +#ifndef _ASM_X86_MEMORY_AREAS_H_ > > +#define _ASM_X86_MEMORY_AREAS_H_ > > > > #define AREA_NORMAL_PFN BIT(36-12) > > #define AREA_NORMAL_NUMBER 0 > > -#define AREA_NORMAL 1 > > +#define AREA_NORMAL (1 << AREA_NORMAL_NUMBER) > > > > -#define AREA_PAE_HIGH_PFN BIT(32-12) > > -#define AREA_PAE_HIGH_NUMBER 1 > > -#define AREA_PAE_HIGH 2 > > +#define AREA_HIGH_PFN BIT(32-12) > > +#define AREA_HIGH_NUMBER 1 > > +#define AREA_HIGH (1 << AREA_HIGH_NUMBER) > > > > -#define AREA_LOW_PFN 0 > > +#define AREA_LOW_PFN BIT(24-12) > > #define AREA_LOW_NUMBER 2 > > -#define AREA_LOW 4 > > +#define AREA_LOW (1 << AREA_LOW_NUMBER) > > > > -#define AREA_PAE (AREA_PAE | AREA_LOW) > > +#define AREA_LOWEST_PFN 0 > > +#define AREA_LOWEST_NUMBER 3 > > +#define AREA_LOWEST (1 << AREA_LOWEST_NUMBER) > > > > -#define AREA_ANY -1 > > -#define AREA_ANY_NUMBER 0xff > > +#define MAX_AREAS 4 > > + > > +#define AREA_DMA24 AREA_LOWEST > > +#define AREA_DMA32 (AREA_LOWEST | AREA_LOW) > > +#define AREA_PAE36 (AREA_LOWEST | AREA_LOW | AREA_HIGH) > > This confuses the heck out of me. > The other things look ok to me though. if you want a page below 4G, then you don't want to restrict yourself to the area between 16M and 32G; the area below 16M is good too. same for 64G. > > > > #endif > > diff --git a/lib/alloc_page.h b/lib/alloc_page.h > > index 816ff5d..b6aace5 100644 > > --- a/lib/alloc_page.h > > +++ b/lib/alloc_page.h > > @@ -10,6 +10,9 @@ > > > > #include > > > > +#define AREA_ANY -1 > > +#define AREA_ANY_NUMBER 0xff > > + > > /* Returns true if the page allocator has been initialized */ > > bool page_alloc_initialized(void); > > > > diff --git a/lib/alloc_page.c b/lib/alloc_page.c > > index 685ab1e..ed0ff02 100644 > > --- a/lib/alloc_page.c > > +++ b/lib/alloc_page.c > > @@ -19,8 +19,6 @@ > > #define NLISTS ((BITS_PER_LONG) - (PAGE_SHIFT)) > > #define PFN(x) ((uintptr_t)(x) >> PAGE_SHIFT) > > > > -#define MAX_AREAS 6 > > - > > #define ORDER_MASK 0x3f > > #define ALLOC_MASK 0x40 > > #define SPECIAL_MASK 0x80 > > @@ -509,7 +507,7 @@ void page_alloc_init_area(u8 n, uintptr_t > > base_pfn, uintptr_t top_pfn) return; > > } > > #ifdef AREA_HIGH_PFN > > - __page_alloc_init_area(AREA_HIGH_NUMBER, AREA_HIGH_PFN), > > base_pfn, &top_pfn); > > + __page_alloc_init_area(AREA_HIGH_NUMBER, AREA_HIGH_PFN, > > base_pfn, &top_pfn); #endif > > __page_alloc_init_area(AREA_NORMAL_NUMBER, > > AREA_NORMAL_PFN, base_pfn, &top_pfn); #ifdef AREA_LOW_PFN > > >