[comp.os.minix] About Minix 68k

Frank Breure <breure%ITIHP1.TNO.NL@pucc.princeton.edu> (04/30/91)

Hello,

last weeks, a few people mentioned that you could easily increase
the number of cache buffers on the 68K version.
IMHO this is true WITH RESTRICTIONS, because the ACK - compiler
uses 16bit the maximum size of an array is 64k.
If you want more cache buffers than 62 (one cache buffer is bigger
than 1k because it's hold in a struct with some other information
about the buffer status).

Anytime I try to boot a kernel with NR_CACHE_BUFS > 62 it hangs in
the startup, on an ST (running Minix 1.5.10.3) this means that the
screen will remain white.

The solution to this can be to use a 32 bit integer compiler
(I intend to try this but I'm not very sure this can be done without
any modifications to the sources)

QUESTION:
Did anybode write some routines for the lib68k to make 'printf()'
able to print float's ?
As far as I know at least two (assembly) routines have to be rewritten,
I tried to do it last weekend, but my knowledge of floating point was
to minimal to handle this.

Thanx

--
Frank Breure                                    (breure@itihp1.tno.nl)
Instituut voor Toegepaste Informatica-TNO       Delft, The Netherlands
----------------------------------------------------------------------
My opinions may be subject to change without notice.

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (04/30/91)

I am pretty sure that your message is pure garbage.
There is no 64K limit on arrays with the ACK compiler, and the restriction
on 16-bit ints does not impose this. All pointer calculations are done
in 16 bit.

Besides, I normally use about 150 Block buffers in my 68K MINIX, no problem.

C.v.W.

ralf@ptavv.ka.sub.org (Ralf Wenk) (05/01/91)

In article <52171@nigel.ee.udel.edu> Frank Breure
<breure%ITIHP1.TNO.NL@pucc.princeton.edu> writes:
> last weeks, a few people mentioned that you could easily increase
> the number of cache buffers on the 68K version.
> IMHO this is true WITH RESTRICTIONS, because the ACK - compiler
> uses 16bit the maximum size of an array is 64k.
> If you want more cache buffers than 62 (one cache buffer is bigger
> than 1k because it's hold in a struct with some other information
> about the buffer status).
> 
> Anytime I try to boot a kernel with NR_CACHE_BUFS > 62 it hangs in
> the startup, on an ST (running Minix 1.5.10.3) this means that the
> screen will remain white.
> 
> The solution to this can be to use a 32 bit integer compiler
> (I intend to try this but I'm not very sure this can be done without
> any modifications to the sources)

That is not the real solution for that problem. I use a 68K version
with NR_BUFS == 110 and this version is compiled with the normal ACK.
The system crashed with different problems until Bruce Evans noted
that ldaddr in sys/tools/boot.s must be increased to be able to boot
which such a big cache. Since then the system runs fine. 


-- 
-- 
Ralf Wenk -- ralf@ptavv.ka.sub.org

breure%ITIHP1.TNO.NL@pucc.princeton.edu (Frank Breure) (05/01/91)

> Hello,
>
> last weeks, a few people mentioned that you could easily increase
> the number of cache buffers on the 68K version.
> IMHO this is true WITH RESTRICTIONS, because the ACK - compiler
> uses 16bit the maximum size of an array is 64k.
> If you want more cache buffers than 62 (one cache buffer is bigger
> than 1k because it's hold in a struct with some other information
> about the buffer status).

Sorry, sorry..

I'm WRONG about this, yesterday I wrote a small test program and it
is possible to have arrays above 68k size, should have than this
before posting BUT:

> Anytime I try to boot a kernel with NR_CACHE_BUFS > 62 it hangs in
> the startup, on an ST (running Minix 1.5.10.3) this means that the
> screen will remain white.

This is still true!

I first had the origal NR_CACHE_BUFS (I guess it was 32), if I increase
that above 62 I still can't boot, but if I make it 62 (with the hash_buf_size
64) I have no problems. I don't use a Ramdisk, and my boot device is on
/dev/hd3, and I boot from floppy (/dev/fd0), if I have more than 62 cache-bufs
the floppy drive will do a few seeks, and after that it remains turning
without anything happening (no messages on the screen).
Did anybody else have this problem ?
and what are possible solutions ?

Thanks

--
Frank Breure                                    (breure@itihp1.tno.nl)
Instituut voor Toegepaste Informatica-TNO       Delft, The Netherlands
----------------------------------------------------------------------
My opinions may be subject to change without notice.

--
Frank Breure                                    (breure@itihp1.tno.nl)
Instituut voor Toegepaste Informatica-TNO       Delft, The Netherlands
----------------------------------------------------------------------
My opinions may be subject to change without notice.

david@doe.utoronto.ca (David Megginson) (05/02/91)

In <52228@nigel.ee.udel.edu>, Christoph van Wuellen writes:
> I am pretty sure that your message is pure garbage.
> There is no 64K limit on arrays with the ACK compiler, and the restriction
> on 16-bit ints does not impose this. All pointer calculations are done
> in 16 bit.
> 
> Besides, I normally use about 150 Block buffers in my 68K MINIX, no problem.
> 
> C.v.W.


I don't know about his reasons, but I have tried building a kernel with
the Minix 386 buffer sizes on my ST, with ack, c68 and gcc. With the
buffers that large, all three failed to boot. As soon as I put the buffers
back to normal, everything was fine (I did a make clean in both cases
first, just to be safe).


-- 
////////////////////////////////////////////////////////////////////////
/  David Megginson                      david@doe.utoronto.ca          /
/  Centre for Medieval Studies          meggin@vm.epas.utoronto.ca     /
////////////////////////////////////////////////////////////////////////

klamer@mi.eltn.utwente.nl (Klamer Schutte) (05/02/91)

In <52171@nigel.ee.udel.edu> breure%ITIHP1.TNO.NL@pucc.princeton.edu (Frank Breure) writes:

->Hello,

->last weeks, a few people mentioned that you could easily increase
->the number of cache buffers on the 68K version.
->IMHO this is true WITH RESTRICTIONS, because the ACK - compiler
->uses 16bit the maximum size of an array is 64k.
->If you want more cache buffers than 62 (one cache buffer is bigger
->than 1k because it's hold in a struct with some other information
->about the buffer status).

->Anytime I try to boot a kernel with NR_CACHE_BUFS > 62 it hangs in
->the startup, on an ST (running Minix 1.5.10.3) this means that the
->screen will remain white.

What you have to do is:
1) increase the hash size together with NR_CACHE_BUFS
2) be sure that the pointer arithmetic is done with longs. If you do that
   the compiler will also do all in longs.

Klamer
-- 
Klamer Schutte
Faculty of electrical engineering -- University of Twente, The Netherlands
klamer@mi.eltn.utwente.nl	{backbone}!mcsun!mi.eltn.utwente.nl!klamer

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (05/02/91)

You have perhaps read it already: the 'big buffer cache' problem
originates in your boot preocedure..

Perhaps I should apologize, since I am running that system on a home
-made 68K box, and of course, the boot procedure is different (but that
is the only difference)

C.v.W>

be@arium.stgt.sub.org (Bernd Ebach) (05/04/91)

In article <1991May1.182450.326@doe.utoronto.ca> david@doe.utoronto.ca
(David Megginson) writes:

> I don't know about his reasons, but I have tried building a kernel with
> the Minix 386 buffer sizes on my ST, with ack, c68 and gcc. With the
> buffers that large, all three failed to boot.

Have you changed the LoadAdress in boot.s?

At the moment I use a cache of 512 Blocks, 1024 Hashtable.

Everything works fine...

TschauTschau
		Bernd
--
   ---------------------------------------------------------------
    be@arium.stgt.sub.org | be@aragon.gtc.de | ud01@kauni2.bitnet
   ---------------------------------------------------------------