Memory question + Re: Scheduler problem

Dave_Lee at Dave_Lee at
Tue Aug 24 11:41:15 EST 1999

After examining the panic output, it turns out that it isn't the scheduler but a
result of the fact that we have the data cache off (to improve performance of
the emulator, which runs horribly slow when the dcache is on).  The fault
actually occurs in clear_page, which uses the dcbz instruction, which faults
when the data cache is off.  The dcache is on now and will stay on. :-)

Dave_Lee at on 08/21/99 02:24:11 PM

Sent by:  Dave_Lee at

To:   linuxppc-dev at
cc:    (Dave Lee/HQ/3Com)
Subject:  Scheduler problem


We're trying to port Linux 2.2.10 to a diskless PPC 603e-based platform and
we've gotten the kernel to boot; however, during the device setup code, an
alignment exception occurs in the scheduler.  At the time, the initrd code
(rd.c:rd_load_image () ) is running and copying out a disk image to a RAM disk
(block_dev.c:block_write).  During the write, it eventually calls the scheduler
and we've tracked it to the code below.

        while (p != &init_task) {
                if (can_schedule(p)) {
                        int weight = goodness(prev, p, this_cpu);
                        if (weight > c)
                                c = weight, next = p;
                p = p->next_run; // next_run is NULL

Putting in some test code before going to the next list element, p is PID 0
(swapper?  which I assume is init_task ?).  All it's next/prev pointers are

Any ideas on what the problem is and/or suggestions on how to tackle this?


[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check ]]
[[ and for useful information before posting.   ]]

More information about the Linuxppc-dev mailing list