[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [PATCH 13/40] mini-os: remove the e820 from common code



Hi Shijie,

On 07/11/17 08:47, Huang Shijie wrote:
On Mon, Nov 06, 2017 at 12:22:43PM +0000, Julien Grall wrote:
Change-Id: I6cfa5bcb12128f55b910f72f592e5b43ebd31dd4
Jira: ENTOS-247
Signed-off-by: Huang Shijie <shijie.huang@xxxxxxx>
---
   arch/arm/mm.c | 18 ++++++++++--------
   arch/x86/mm.c | 17 +++++++++++++++--
   include/mm.h  |  3 +++
   mm.c          |  8 ++------
   4 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/arch/arm/mm.c b/arch/arm/mm.c
index 3d88d3b..f600672 100644
--- a/arch/arm/mm.c
+++ b/arch/arm/mm.c
@@ -3,18 +3,20 @@
   #include <arch_mm.h>
   #include <mini-os/errno.h>
   #include <mini-os/hypervisor.h>
+#include <mini-os/posix/limits.h>

Why do you need to include that?
The ULONG_MAX needs this header.

ULONG_MAX was used in this file before. So why suddenly this is needed?

If it is because a compilation error, then it should really go in a separate patch...



   #include <libfdt.h>
   #include <lib.h>
   paddr_t physical_address_offset;
-struct e820entry e820_map[1] = {
-    {
-        .addr = 0,
-        .size = ULONG_MAX - 1,
-        .type = E820_RAM
-    }
-};
-unsigned e820_entries = 1;

I see you remove e820_entries but I am a bit surprised

+
+unsigned mem_blocks = 1;

I am not sure where to comment it. But I am still a bit surprised that
mem_blocks is 1 for Arm in general.

There may be multiple banks in different place of the memory layout. So you
would end up with hole considered as real memory by Mini-OS.

Note th at the moment the first bank only have 3GB of memory. But that may
in the future as this is not part of the ABI.
Keep it as 1, and fix it if we need more memory banks for arm.

Ok.



+
+int arch_check_mem_block(int index, unsigned long *r_min, unsigned long *r_max)
+{
+    *r_min = 0;
+    *r_max = ULONG_MAX - 1;
+    return 0;
+}
   unsigned long allocate_ondemand(unsigned long n, unsigned long alignment)
   {
diff --git a/arch/x86/mm.c b/arch/x86/mm.c
index 05ad029..ba1bfc5 100644
--- a/arch/x86/mm.c
+++ b/arch/x86/mm.c
@@ -71,7 +71,7 @@ struct e820entry e820_map[1] = {
           .type = E820_RAM
       }
   };
-unsigned e820_entries = 1;
+unsigned mem_blocks = 1;
   void arch_mm_preinit(void *p)
   {
@@ -113,7 +113,8 @@ desc_ptr idt_ptr =
   };
   struct e820entry e820_map[E820_MAX];
-unsigned e820_entries;
+unsigned mem_blocks;
+#define e820_entries mem_blocks;

e820_entries is only used in 3 places. Please replace them all by mem_blocks
and drop that define.
I think it will make the x86 guys unhappy :)
So I suggest keep the e820 for x86 files.

... Did you ask them? I really can't see how you will make them unhappy to rename 3 occurrences...

Juergen, Wei, Samuel, any opinion?

Cheers,

--
Julien Grall

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.