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

Re: Trouble with freeMinT 1.15.0



> On most ST, you need to use the bootproblem kernel version.   
> According to Frank, this is the (unfortunate) result of some
> hand-optimization attempts in the regular kernel.

If so, I'd be rather surprised.

OK, the point is that -> I <- optimized the MiNT scheduler. I am rather
surprised that it makes problems on 040+, because:

1) this works perfectly on both 68030 computers I have here, i.e.
   TT and Falcon.

2) the code is nothing more than hand-optimized gcc output, generally the
   same, but I got rid of some oddities. According to 68030 manual (by
   Motorola) and my experience, the code is completely equivalent
   considering calculations (but faster).

Since I have no 68040/68060 manuals and no 68040/68060 computers, I can't
trace the problem down. I guess that the problem is not exactly in the
optimized code, but rather the optimization causes other part of already
existing code to fail due to the way the cache works on 040+.

I would suspect, that switching the cache off for the time of MiNT
initializations (i.e. for installing handlers, initializing memory,
filesystems etc) would solve the problem. Especially if, as I understood,
problems occur only at bootup, i.e. if MiNT finally starts, it works OK. 

Definitely I didn't introduce any self-modifying code to the kernel. I
don't like such methods personally.

By the way, I'd be for not restoring the previous code if possible.
It was very ugly and unefficient, especially the part known as
enter_kernel() and leave_kernel(). The code is still there (commented
out), so anyone can compare it with my versions (inside kernel.spp).

Gtx,

--
Konrad M.Kokoszkiewicz
|mail: draco@mi.com.pl                  | Atari Falcon030/TT030/65XE |
|http://www.orient.uw.edu.pl/~conradus/

** Ea natura multitudinis est,
** aut servit humiliter, aut superbe dominatur (Liv. XXIV,25)
*************************************************************
** U pospolstwa normalne jest, ze albo sluzy ono unizenie,
** albo bezczelnie sie panoszy.