Re: [hatari-devel] ENABLE_SMALL_MEM problem |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
- To: hatari-devel@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [hatari-devel] ENABLE_SMALL_MEM problem
- From: Thomas Huth <th.huth@xxxxxxxxx>
- Date: Sun, 24 Dec 2017 05:55:20 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1514091328; bh=Qzp4rRn52BTX+yv67kGmsSUaGS09DTW1vVmofzZhDyw=; h=Date:From:To:Subject:From; b=ktz61Z4pT++S3yR74MNU994rgUrCNSen0vSp50k0BFtglYVWpTX6/sTaqIBZEhGgT VtMIpGjzW+cB3wCf0R77gDdLsKMVDpg5oU6L6rf/uuzzzGhJgGX5aqIoT+L3c98OtL 4zQsWkiq+b6ZlcAfQyiYPJjHt9vYZs0i8llHEzhkwGw9m2WRY6LZMDYfWzYyaC07R5 6ZB4kHkWs1pwar79tAKa18AYUmMXLxPFVOMqg/qEghGfgvR2xJAiDVSN+afk9E3POw 9ahmzM7sd1hPo9FALFMvRYZZ2K5zqHYXjkyq9v6X9D8VtjRbEbbKe2wVaHVhghAte8 9u7R7nWk8g4nw==
Am Sat, 23 Dec 2017 22:50:20 +0100
schrieb Nicolas Pomarède <npomarede@xxxxxxxxxxxx>:
> Le 23/12/2017 à 17:19, Eero Tamminen a écrit :
> > Hi,
> >
> > On 12/23/2017 10:16 AM, Thomas Huth wrote:
> >> I recently tried to compile Hatari with ENABLE_SMALL_MEM again,
> >> but it is currently broken: Main_Init() calls STMemory_Init()
> >> which again calls STMemory_Reset() and that accesses IoMem[],
> >> causing a segmentation fault. IoMem[] is not available in
> >> ENABLE_SMALL_MODE until memory_init() has been called during
> >> TOS_LoadImage(), which happens later in Main_Init() (when it calls
> >> Reset_Cold()).
> >>
> >> So we either have got to change the order here a little bit, or
> >> maybe remove the call to STMemory_Reset() from STMemory_Init() ?
> >> The latter should likely be OK since STMemory_Reset() is called
> >> again from Reset_ST()? Nicolas, do you have an idea what's the
> >> right fix here?
> >>
> >> Anyway, since ENABLE_SMALL_MEM tends to bitrot every year, we
> >> should maybe also consider to get rid of this special mode (after
> >> the next release?). It has originally been included to be able to
> >> run Hatari on machines that have very limited RAM or are unable to
> >> provide a BSS array of 16 MiB due to any means (e.g. old Windows
> >> CE smartphones). I'm not aware of any such system left nowadays,
> >> even the smallest embedded systems have hundres of MiBs of RAM
> >> nowadays.
> >>
> >> So we could simply rip of the related code. Another idea: Rip out
> >> the non-SMALL_MEM code and make the SMALL_MEM code the default mode
> >> instead, so that we always malloc the STRam instead of using a huge
> >> 16 MiB array for everything, ST RAM, ROM and IO memory. Using
> >> malloc() sounds like a cleaner approach, and recent CPUs should
> >> really be good enough so that you should not see a performance
> >> difference between the two modes anymore today, I guess... Any
> >> opinions?
> >
> > I don't really have an opinion either way. I doubt current Hatari
> > would really run on devices with too little memory, as ones with
> > that little memory would probably also be too slow to run current
> > Hatari at good speed.
> >
>
> Hi
>
> I see compilation issue was in fact due to a missing include and
> fixed by Thomas.
I only fixed the compilation step. It still segfaults when you try to
run the binary.
> Same as Eero, I don't have any opinion. On one hand, not using
> SMALL_MEM makes the code much simpler and I don't think any recent
> device don't have at least 16 MB.
> On the other hand, the code for SMALL_MEM is not that complicated
> either.
One advantage that you get with SMALL_MEM is that we might get a
cleaner memory handling. If something is accessing the area between ST
RAM and ROM/IO memory though it should not, we then notice it. Without
SMALL_MEM, these accesses go undiscovered.
> My "vote" would be to not change anything ;) Default to not using
> SMALL_MEM, but keep the SMALL_MEM code in case someone needs it.
Ok, let's keep it for now as it is.
Thomas