Re: scheduling co-processors

From: Casey Dahlin
Date: Mon Aug 03 2009 - 16:20:32 EST


On 08/03/2009 11:08 AM, Sherif Fadel wrote:
> Hi,
>
> I have a dual-core system on which I would like to treat one processor
> as a scheduling co-processor. I have already implemented some custom
> scheduling policies and tested them with SMP disabled, I would not like
> to see if it is possible to have the scheduling algorithm running on one
> core and the scheduled tasks running on another.
>
> I do not know if I can somehow use cpus_allowed to restrict the kernel
> to one core and the running tasks to another. Is this possible? If so,
> could you please inform me how one would go about this?
>
> In case you are wondering why I would need this, I am writing a bunch of
> high-overhead distributed scheduling algorithms and I want to mitigate
> their overhead in this way.
>
> Thanks.
>

The design I would have for this would be to have a kthread that does whatever busy work your scheduler has as a separate process. You could then replace the existing scheduler with a sort of "schedulerlet" that would simply schedule according to directions queued up for it by the kthread task. From there cpu affinity should get you the "dedicated scheduler processor" you want.

I can't even begin to envision the scheduling algorithm that would be able to operate this way, but I have to assume that if it makes sense for your scheduler to run on another CPU then it must be able to fit into this pattern.

--CJD
--
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/