[movitz-devel] Re: The reactions of gc to hard-drive reads
Elliott
ejohnson at kvpt.org
Fri Jun 18 06:19:38 UTC 2004
Hi Frode,
Yeah its been fun looking at that file and testing out reads and
writes :) Peter and I were talking and he's shown me a few tricks
to help with consolidating code. If your interested I made a
practice file I can send to you.
It adds a few more registers and instances of controllers 1, 2, and 3.
I'll need to hook up my pci-ide controller to test #2.
I do have a few issues that might interest you with testing reads to
controllers 0 and 1. I've taken your advice below.
> When you get errors like this, try to get a backtrace (using the
> function muerte:backtrace or the top-level :bt, and report the output.
On writes to the second drive controller's primary drive [I assume to
other drives also I just don't want to risk data] I get an error. I'll
show you below, but to kind-of outline the process: I first read a sector
from a drive [in this case primary slave] and then try to write that data
on to the secondary master. This process erupts into an exception "107":
X86-PC.HARDDISK> (hd-read-sectors 1 0 1)
using 28 bits addressing
#( A full sector ... )
X86-PC.HARDDISK> (hd-write-sectors 2 0 *)
using 28 bits addressing
Error: Exception occurred: 107, EIP: #x891db, EAX: #x6d, ECX #x1a, ESI #x783be
Output of ":bt"
<= (MUERTE::INVOKE-DEBUGGER-ON-DESIGNATOR ...)
<2 (ERROR ...)
<2 {Exception 107 in HD-WRITE-SECTORS at PC offset 891.
<= (HD-WRITE-SECTORS #x2 #x0 (#xeb #x48 #x90 ...))
<2 ((:ANONYMOUS-LAMBDA MUERTE::EVAL-FUNCALL #x0) ...)
I found losp/muerte/interupt.lisp which handles exceptions, but it seems
like this type of exception might be a general case error. I know you
have a few of the error message values mapped out, but this there a way
to figure out this ones meaning?
> Specifically, that error is due to my assuming that one won't want to
> allocate 16000 clumps (one clump is equal to two words, or eight
> bytes, so 63 sectors is just above this limit, see los0-gc.lisp) in
> one go. This limitation is probably too small for serious work, but
> for simple experimentation it might be ok.. or not? So fix los0-gc.
Yep I poped in there and adjusted the value. Changing 16000 to 65537
on line 192 of los0-gc.lisp allows for 256 sectors to be read or writen.
I can now handle 131kb of data to and from disk, plus run out of memory
a lot faster. :) I'll if I can raise the amount of memory seen by los0
Do you mind if I submit some trivial fixes to files that give warnings
during compilation? I've seen a few mentions of function referances and
things that can be cleaned up.
-Elliott
More information about the movitz-devel
mailing list