Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[9fans] ts7200

47 views
Skip to first unread message

Ronald G. Minnich

unread,
Apr 1, 2005, 10:54:46 PM4/1/05
to

It boots and runs fine. I can drawterm into it.

IF ... l2 pte does not enable caching.

I am caching the kernel text and data space (I just enable caching in the
1 Mbyte L1 PTE for 2 MB of kernel text + data; and the conf.base1 starts
at the next MB boundary) and that is fine.

Here's the fun part.

I have boot.c fork and exec /boot/rc.

So I have an rc prompt. If caching is enabled, all rc system calls run
fine until the first Rfork from rc. In other words, all the RTC clock and
OS clock interrupts are fine, running at 50hz or so, all the page fault
activity from rc parent and child are fine, fine fine ... until the first
syscall by the parent. The parent then explodes.

Possibilities:
1. mmuswitch is not working. But I've ripped off the linux code for cache
writeback/invalidate, and it sure looks right at present. I can send
code to this list if there is interest.

2. The more interesting one. Something in the rfork/newproc path is
setting something up wrong. Reason this could be it is that the two
procs run fine until the first syscall ... that strikes me as odd. And,
more interesting, there are a number of context switches back and forth
between rc parent and rc child (I count 9) and they continue to run. I
get the impression, looking at this, that they could run all day until
a syscall and then they would die. If mmuswitch were really broken I
would expect that to fail more quickly. But once the rc parent calls
Pwrite (why that and not Await, I wonder) it's all over. And, even
more odd, it's always repeatable. Same PC at the failure.

This is typical:
(syscall debug)
rc:4 pc 15f20, Pwrite: 2014 9008 40 14604
rc: note: sys: trap: fault write va=0x0 pc=0x0001a

Check out the bogus va,pc. Almost like the stack the kernel is seeing is
junk. And the fd is certainly weird: 2014?

Wonder if the process stacks are getting trashed up somehow -- but how
would enabling caching affect this?

ron

p.s. I'm going to italy for the next 10 days (not as long as I'd like)
but I'll try to catch up on this list and hope some smart person fixes my
problem :-) Have a nice week, everyone, whereever you are.

Ronald G. Minnich

unread,
Apr 1, 2005, 10:56:42 PM4/1/05
to

On Fri, 1 Apr 2005, Ronald G. Minnich wrote:

> fine until the first Rfork from rc. In other words, all the RTC clock and

sorry, this is supposed to be:


> fine until the first Rfork from rc. In other words, all the RTC clock and

^-after

i.e. the Rfork is fine, but the first syscall after the rfork is very,
very not fine.

ron

Michael Zappe

unread,
Apr 2, 2005, 1:50:18 AM4/2/05
to
Could you send the code when you get the chance? I've been thinking of
getting one of these guys and porting to it: http://www.gumstix.com/ .
Nifty little ARM devices! I've also been working on our port of OpenBSD
to ARM, and going through all of the wonderful fun of getting the caches
to stay coherent. (I'm working on one of their IXP chips, which has the
added fun of 3 attached microcode engines "Network Processing Engines",
associated coherency problems and a spaghetti-code library to use them.
Yeesh.)

I can also take a look and see which of the two scenarios it is.

Have fun in Italy!

Mike

0 new messages