All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krish Sadhukhan <krish.sadhukhan@oracle.com>
To: Claudio Imbrenda <imbrenda@linux.ibm.com>
Cc: kvm@vger.kernel.org, frankja@linux.ibm.com, david@redhat.com,
	thuth@redhat.com, pbonzini@redhat.com, cohuck@redhat.com,
	lvivier@redhat.com, nadav.amit@gmail.com
Subject: Re: [kvm-unit-tests PATCH v1 04/12] lib/asm: Fix definitions of memory areas
Date: Mon, 4 Jan 2021 17:17:11 -0800	[thread overview]
Message-ID: <c8727d23-1ba8-7230-83b0-91480e298e07@oracle.com> (raw)
In-Reply-To: <20210104141944.25552cd1@ibm-vm>


On 1/4/21 5:19 AM, Claudio Imbrenda wrote:
> On Thu, 24 Dec 2020 10:17:00 -0800
> Krish Sadhukhan <krish.sadhukhan@oracle.com> wrote:
>
>> On 12/16/20 12:11 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.
>>
>> Should we mention MAX_AREAS that the patch adds in each arch-specific
>> header ?
> not sure, it's a minor detail. I mentioned above that I "Fix the
> definitions of the memory areas".
>
> MAX_AREAS is not totally new, now it's per-arch instead of being in the
> generic code.
>
>>> Fixes: d74708246bd9 ("lib/asm: Add definitions of memory areas")
>>>
>>> Signed-off-by: Claudio Imbrenda<imbrenda@linux.ibm.com>
>>> ---
>>>    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 <asm-generic/memory_areas.h>
>>>    
>>>    #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 <asm-generic/memory_areas.h>
>>>    
>>>    #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 <asm-generic/memory_areas.h>
>>>    
>>>    #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 <asm-generic/memory_areas.h>
>>>    
>>>    #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)
>>>    
>>>    #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 <asm/memory_areas.h>
>>>    
>>> +#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);
>>
>> Surprising that the compiler didn't complain !
>>
>>>    #endif
>>>    	__page_alloc_init_area(AREA_NORMAL_NUMBER,
>>> AREA_NORMAL_PFN, base_pfn, &top_pfn); #ifdef AREA_LOW_PFN
Reviewed-by: Krish Sadhukhan <krish.sadhukhan@oracle.com>

  reply	other threads:[~2021-01-05  1:18 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-16 20:11 [kvm-unit-tests PATCH v1 00/12] Fix and improve the page allocator Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 01/12] lib/x86: fix page.h to include the generic header Claudio Imbrenda
2020-12-17 12:33   ` Thomas Huth
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 02/12] lib/list.h: add list_add_tail Claudio Imbrenda
2020-12-17 12:39   ` Thomas Huth
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 03/12] lib/vmalloc: add some asserts and improvements Claudio Imbrenda
2020-12-24 18:16   ` Krish Sadhukhan
2021-01-04 13:27     ` Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 04/12] lib/asm: Fix definitions of memory areas Claudio Imbrenda
2020-12-24 18:17   ` Krish Sadhukhan
2021-01-04 13:19     ` Claudio Imbrenda
2021-01-05  1:17       ` Krish Sadhukhan [this message]
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 05/12] lib/alloc_page: fix and improve the page allocator Claudio Imbrenda
2020-12-24 18:17   ` Krish Sadhukhan
2021-01-04 13:11     ` Claudio Imbrenda
2021-01-05  1:15       ` Krish Sadhukhan
2020-12-28 19:34   ` Sean Christopherson
2021-01-04 17:23     ` Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 06/12] lib/alloc.h: remove align_min from struct alloc_ops Claudio Imbrenda
2020-12-24 18:17   ` Krish Sadhukhan
2021-01-04 13:05     ` Claudio Imbrenda
2021-01-05  0:39       ` Krish Sadhukhan
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 07/12] lib/alloc_page: Optimization to skip known empty freelists Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 08/12] lib/alloc_page: rework metadata format Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 09/12] lib/alloc: replace areas with more generic flags Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 10/12] lib/alloc_page: Wire up ZERO_FLAG Claudio Imbrenda
2020-12-16 20:11 ` [kvm-unit-tests PATCH v1 11/12] lib/alloc_page: Properly handle requests for fresh blocks Claudio Imbrenda
2020-12-16 20:12 ` [kvm-unit-tests PATCH v1 12/12] lib/alloc_page: default flags and zero pages by default Claudio Imbrenda
2020-12-24 18:17   ` Krish Sadhukhan
2021-01-04 13:32     ` Claudio Imbrenda
2020-12-17 19:41 ` [kvm-unit-tests PATCH v1 00/12] Fix and improve the page allocator Nadav Amit
2020-12-18 14:19   ` Claudio Imbrenda
2020-12-28  6:31     ` Nadav Amit
2021-01-05 15:26       ` Claudio Imbrenda
2020-12-24 18:19 ` Krish Sadhukhan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c8727d23-1ba8-7230-83b0-91480e298e07@oracle.com \
    --to=krish.sadhukhan@oracle.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=lvivier@redhat.com \
    --cc=nadav.amit@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.