Re: migration thread and active_load_balance

From: Dmitry Adamushko
Date: Sun Apr 20 2008 - 17:26:38 EST


On 20/04/2008, Dan Upton <upton.dan.linux@xxxxxxxxx> wrote:
> Back again with more questions about the scheduler, as I've spent two
> or three days trying to debug on my own and I'm just not getting
> anywhere.
>
> Basically, I'm trying to add a new active balancing mechanism. I made
> out a diagram of how migration_thread calls active_load_balance and
> so on, and I use a flag (set by writing to a file in sysfs) to
> determine whether to use the standard iterator for the CFS runqueue or
> a different iterator I wrote. The new iterator seems to work fine, as
> I've been using it (again, with a flag) to replace the regular
> iterator when it's called from schedule by idle_balance. I basically
> tried adding an extra conditional in migration_thread that sets up
> some state and then calls active_load_balance, but I was getting
> deadlocks. I'm not really sure why, since all I've really changed is
> add a few variables to struct rq and struct cfs_rq.
>
> I tried only doing my state setup and restore in that conditional,
> without actually calling active_load_balance, which has given me an
> even more frustrating result--the kernel does not deadlock, but it
> does seem to crash in such a manner as to require a hard reset of the
> machine. (For instance, at one point I got an "invalid page state in
> process 'init'" message from the kernel; if I try to reboot from Gnome
> though it hangs.) I don't understand this at all, since as far as I
> can tell I'm using thread-local variables and really all I'm doing
> right now is assignments to them. Unless, of course the struct rq
> (from rq = cpu_rq(cpu);) could be being manipulated elsewhere, leading
> to some sort of race condition...
>

can you post your modifications? I'd be much more easy to see what you
are doing...

thanks in advance.


>
> Thanks,
> -dan
>

--
Best regards,
Dmitry Adamushko
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/