From: Peter Zijlstra on
On Thu, 2010-06-17 at 19:02 +0200, sebastiano spicuglia wrote:
> Hi Ingo,
>
> I made many progress. But I have two doubts yet.
> First: what does hrtick_start do?

higher resolution ticks

> I think that: if I call hrtick_start(rq, 500) then, after 500ns, the
> task_tick function will be invocated.
> Is it right?

Yep, instead of waiting for the next system tick is programs a hrtimer
to deliver it -- its disabled by default though, since programming
timers is rather expensive :/

> Second: if my schedule_class decides to preempt the current task, it
> has to call resched_task(rq->curr).
> Is it right?

Either that or resched_cpu(), depending on which is most convenient.

It sets TIF_RESCHED and possibly IPIs the remote CPU. The TIF flag is
then observed (on re-entry to userspace in case of the IPI) and we call
into schedule().
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: sebastiano spicuglia on
Hi Ingo,

I made many progress. But I have two doubts yet.
First: what does hrtick_start do?
I think that: if I call hrtick_start(rq, 500) then, after 500ns, the
task_tick function will be invocated.
Is it right?
Second: if my schedule_class decides to preempt the current task, it
has to call resched_task(rq->curr).
Is it right?

Thanks in advance.
Kind Regards.
Sebastiano.

On Tue, May 25, 2010 at 9:11 AM, Ingo Molnar <mingo(a)elte.hu> wrote:
>
> Hi,
>
> * sebastiano.spicuglia(a)mail.polimi.it <sebastiano.spicuglia(a)mail.polimi.it> wrote:
>
>> Hi Ingo,
>>
>> excuse me for contacting you in this way.
>> I don't want hurt you.
>> I am implementing a new schedule class for my bachelor
>> project degree at Politecnico di Milano.
>> I experienced many problems but sometimes the kernel starts.
>> The main problem is the documentation.
>> Could you explain me when sched.c calls sched_class functions (
>> enqueue_task, dequeue_task, etc... )
>> and what sched_class functions should do?
>> My reverse engineering skills don't work very well and
>> in internet there are not many information about this and
>> however they are generic and incomplete.
>>
>> I am working with version 2.6.34.
>
> There's a couple of files in Documentation/sched/ which give a high-level
> description - but some of that info is outdated. Most of the documentation is
> the code itself, as usual ;-)
>
> If you have any questions, please also Cc: lkml and Peter Zijstra
> (co-maintainer of the scheduler):
>
> �Peter Zijlstra <a.p.zijlstra(a)chello.nl>
>
> Thanks,
>
> � � � �Ingo
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/