Hi Mike,
On Tue, Jun 18, 2019 at 8:10 AM Mike Rapoport <rppt@xxxxxxxxxxxxx> wrote:
On Mon, Jun 17, 2019 at 10:00:32PM +0200, Geert Uytterhoeven wrote:
On Thu, May 16, 2019 at 8:03 AM Mike Rapoport <rppt@xxxxxxxxxxxxx> wrote:
These pacthes replace DISCONTIGMEM with SPARSEMEM on m68k for systems with
!SINGLE_MEMORY_CHUNK set.
With SPARSEMEM there is a single node for the entire physical memory and to
cope with holes in the physical address space it is divided to sections of
up to 16M.
Each section has it's own memory map which size depends on actual populated
memory.
The section size of 16M was chosen pretty much arbitrarily as I couldn't
find specs for systems with e.g. Zorro memory extensions.
For an atari_defconfig kernel, bloat-o-meter says:
add/remove: 33/26 grow/shrink: 17/234 up/down: 6801/-32284 (-25483)
Function old new delta
Nice!
Unfortunately it crashes on my Amiga, cfr. the logs below.
Then I realized the "section size of 16M". My Amiga has a single block
of 12 MiB of FastRAM at 0x07400000, which is not aligned to 16 MiB.
(Yes, base address of motherboard RAM is 0x08000000 - ramsize ;-)
I've tried:
-#define MAX_PHYSMEM_BITS 32
-#define SECTION_SIZE_BITS 24
+#define MAX_PHYSMEM_BITS 30
Why is this 30 bit? Does m68k limit physical address to 30 bits?
Did you try to change only the SECTION_SIZE_BITS?
Yes I tried:
include/linux/mm.h: error: #error
SECTIONS_WIDTH+NODES_WIDTH+ZONES_WIDTH > BITS_PER_LONG - NR_PAGEFLAGS
+#define SECTION_SIZE_BITS 22
but that doesn't seem to make a difference.
Do you have a clue? Thanks!
Not really, at least yet.
Can you please send the entire log with
"mminit_loglevel=4 memblock=debug debug"
in the command line?
Thanks, will do shortly.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds