Port-atari archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Falcon panics, DEBUG & ST_POOL_SIZE (Was: Testing sysinst.fs)
On Wed, Nov 12, 2008 at 3:25 AM, David Brownlee <abs%netbsd.org@localhost>
wrote:
> Adding 'fsck_flags=-fp' to /etc/rc.conf will force a full fsck on
> boot. (Add -P if you like a progress bar :)
Cool :) I found at that absolute minimum for ST_POOL_SIZE should be 24... So it
was quite close already :). With value of 23 it starts to print ST-mem
exhausted
messages to the screen.
>> Kernel without REAL_DMA worked with 030 and 060. So far the only crash has
>> been
>> with kernel which has REAL_DMA defined and ST_POOL_SIZE set to 22.
>
> Interesting... so with a high enough ST_POOL_SIZE we may not
> need to undefine REAL_DMA at all, which would be nice.
Yes, it would be nice to use REAL_DMA for all cases. Could it be something else
that breaks REAL_DMA SCSI with CT63 ? AFAIK at least early Falcon models can
have SCSI problems and with advanced upgrades like CT63 I guess that some
Falcon problems might be amplified, so there can be some HW issues also.
> If you run out of other tests it might be interesting to see
> the relative performance with and without REAL_DMA (something
> like pkgsrc/benchmarks/iozone would probably be a reasonable
> test case). Only if you run out of other things to play with :)
Yes, those tests would be informative :)
> I'm curious that the 0x4fb0000 in uvm_map is given as a size, but
> uvm_km_check_empty() panics when it gets to virtual *address*
> 0x4fb0000.
>
> OK, those the numbers in the uvm_map calls make ~no sense to me.
> The same vaddr_t start in all cases but with different sizes?
> I think something very bogus is going on.
> Hmmm, in atari/pmap.c we have
>
> pmap_bootstrap(kernel_size, hw_addr, hw_pages)
>
> While atari/atari_init.c calls
>
> pmap_bootstrap(vstart, stio_addr, ptextra);
> where (as far as I can tell)
> vstart: first free virtual address
> stio_addr: is set to 0xff8000, then
> reset to something else in map_io_areas()
> ptextra: number of pages needed by the initial
> kernel pagetable (probably)
>
> There is a maze of twisty code going on here :/
>
> I think we need to go through atari/atari_init.c and work out
> what areas of memory its using and then pass those across to
> pmap_bootstrap() so the uvm_map() calls can get it right...
In set_machtype() stio_addr is initially set with following comment:
"XXX: For TT & Falcon only", which sounds little bit suspicious, because as you
said it's then reset later...
I played with two situations: first I short circuited stio_addr reset at
map_io_areas(), but then something else breaks; first uvm_map() call still
fails. If I set addr value to 0xff8000 at pmap_init() before first uvm_map()
call, then first call passes, but second one fails...
-Tuomo
Home |
Main Index |
Thread Index |
Old Index