> > I do not have a strong opinion on both. Probably a better approach
> > would be to replace both cpu_prio_less/core_prio_less with prio_less
> > which takes the third arguement 'bool on_same_rq'?
> >
>
> Fwiw, I find the two names easier to read than a boolean flag. Could still
> be wrapped to
On Mon, Apr 29, 2019 at 11:36:22AM +0800, Aaron Lu wrote:
> On Tue, Apr 23, 2019 at 04:18:16PM +, Vineeth Remanan Pillai wrote:
> > +/*
> > + * l(a,b)
> > + * le(a,b) := !l(b,a)
> > + * g(a,b) := l(b,a)
> > + * ge(a,b) := !l(a,b)
> > + */
> > +
> > +/* real prio, less is less */
> > +static
On 5/9/19 10:50 AM, Subhra Mazumdar wrote:
>
>>> select_task_rq_* seems to be unchanged. So the search logic to find a cpu
>>> to enqueue when a task becomes runnable is same as before and doesn't do
>>> any kind of cookie matching.
>> Okay, that's true in task wakeup path, and also load_balance
select_task_rq_* seems to be unchanged. So the search logic to find a cpu
to enqueue when a task becomes runnable is same as before and doesn't do
any kind of cookie matching.
Okay, that's true in task wakeup path, and also load_balance seems to pull task
without checking cookie too. But my
On Thu, May 9, 2019 at 10:14 AM Subhra Mazumdar
wrote:
>
>
> On 5/8/19 6:38 PM, Aubrey Li wrote:
> > On Thu, May 9, 2019 at 8:29 AM Subhra Mazumdar
> > wrote:
> >>
> >> On 5/8/19 5:01 PM, Aubrey Li wrote:
> >>> On Thu, May 9, 2019 at 2:41 AM Subhra Mazumdar
> >>> wrote:
> On 5/8/19 11:19
On 5/8/19 6:38 PM, Aubrey Li wrote:
On Thu, May 9, 2019 at 8:29 AM Subhra Mazumdar
wrote:
On 5/8/19 5:01 PM, Aubrey Li wrote:
On Thu, May 9, 2019 at 2:41 AM Subhra Mazumdar
wrote:
On 5/8/19 11:19 AM, Subhra Mazumdar wrote:
On 5/8/19 8:49 AM, Aubrey Li wrote:
Pawan ran an experiment
On Thu, May 9, 2019 at 8:29 AM Subhra Mazumdar
wrote:
>
>
> On 5/8/19 5:01 PM, Aubrey Li wrote:
> > On Thu, May 9, 2019 at 2:41 AM Subhra Mazumdar
> > wrote:
> >>
> >> On 5/8/19 11:19 AM, Subhra Mazumdar wrote:
> >>> On 5/8/19 8:49 AM, Aubrey Li wrote:
> > Pawan ran an experiment setting up
On 5/8/19 5:01 PM, Aubrey Li wrote:
On Thu, May 9, 2019 at 2:41 AM Subhra Mazumdar
wrote:
On 5/8/19 11:19 AM, Subhra Mazumdar wrote:
On 5/8/19 8:49 AM, Aubrey Li wrote:
Pawan ran an experiment setting up 2 VMs, with one VM doing a
parallel kernel build and one VM doing sysbench,
limiting
On Thu, May 9, 2019 at 2:41 AM Subhra Mazumdar
wrote:
>
>
> On 5/8/19 11:19 AM, Subhra Mazumdar wrote:
> >
> > On 5/8/19 8:49 AM, Aubrey Li wrote:
> >>> Pawan ran an experiment setting up 2 VMs, with one VM doing a
> >>> parallel kernel build and one VM doing sysbench,
> >>> limiting both VMs to
On 5/8/19 11:19 AM, Subhra Mazumdar wrote:
On 5/8/19 8:49 AM, Aubrey Li wrote:
Pawan ran an experiment setting up 2 VMs, with one VM doing a
parallel kernel build and one VM doing sysbench,
limiting both VMs to run on 16 cpu threads (8 physical cores), with
8 vcpu for each VM.
Making the
On 5/8/19 8:49 AM, Aubrey Li wrote:
Pawan ran an experiment setting up 2 VMs, with one VM doing a parallel kernel
build and one VM doing sysbench,
limiting both VMs to run on 16 cpu threads (8 physical cores), with 8 vcpu for
each VM.
Making the fix did improve kernel build time by 7%.
I'm
On Fri, May 3, 2019 at 8:06 AM Tim Chen wrote:
>
> On 5/1/19 4:27 PM, Tim Chen wrote:
> > On 4/28/19 11:15 PM, Aaron Lu wrote:
> >> On Tue, Apr 23, 2019 at 04:18:16PM +, Vineeth Remanan Pillai wrote:
> >>> +/*
> >>> + * Find left-most (aka, highest priority) task matching @cookie.
> >>> + */
On 5/1/19 4:27 PM, Tim Chen wrote:
> On 4/28/19 11:15 PM, Aaron Lu wrote:
>> On Tue, Apr 23, 2019 at 04:18:16PM +, Vineeth Remanan Pillai wrote:
>>> +/*
>>> + * Find left-most (aka, highest priority) task matching @cookie.
>>> + */
>>> +struct task_struct *sched_core_find(struct rq *rq,
On 4/28/19 11:15 PM, Aaron Lu wrote:
> On Tue, Apr 23, 2019 at 04:18:16PM +, Vineeth Remanan Pillai wrote:
>> +/*
>> + * Find left-most (aka, highest priority) task matching @cookie.
>> + */
>> +struct task_struct *sched_core_find(struct rq *rq, unsigned long cookie)
>> +{
>> +struct
On Tue, Apr 23, 2019 at 04:18:16PM +, Vineeth Remanan Pillai wrote:
> +/*
> + * Find left-most (aka, highest priority) task matching @cookie.
> + */
> +struct task_struct *sched_core_find(struct rq *rq, unsigned long cookie)
> +{
> + struct rb_node *node = rq->core_tree.rb_node;
> +
On Tue, Apr 23, 2019 at 04:18:16PM +, Vineeth Remanan Pillai wrote:
> +/*
> + * l(a,b)
> + * le(a,b) := !l(b,a)
> + * g(a,b) := l(b,a)
> + * ge(a,b) := !l(a,b)
> + */
> +
> +/* real prio, less is less */
> +static inline bool __prio_less(struct task_struct *a, struct task_struct *b,
> bool
On Wed, Apr 24, 2019 at 08:43:36PM + Vineeth Remanan Pillai wrote:
> > A minor nitpick. I find keeping the vruntime base readjustment in
> > core_prio_less probably is more straight forward rather than pass a
> > core_cmp bool around.
>
> The reason I moved the vruntime base adjustment to
On 4/24/19 1:43 PM, Vineeth Remanan Pillai wrote:
>> A minor nitpick. I find keeping the vruntime base readjustment in
>> core_prio_less probably is more straight forward rather than pass a
>> core_cmp bool around.
>
> The reason I moved the vruntime base adjustment to __prio_less is
> because,
> The sched_core_* functions are used only in the core.c
> they are declared in. We can convert them to static functions.
Thanks for pointing this out, will accomodate this in v3.
Thanks
> A minor nitpick. I find keeping the vruntime base readjustment in
> core_prio_less probably is more straight forward rather than pass a
> core_cmp bool around.
The reason I moved the vruntime base adjustment to __prio_less is
because, the vruntime seemed alien to __prio_less when looked as
a
> +
> +void sched_core_enqueue(struct rq *rq, struct task_struct *p)
> +{
...
> +}
> +
> +void sched_core_dequeue(struct rq *rq, struct task_struct *p)
> +{
...
> +}
> +
> +/*
> + * Find left-most (aka, highest priority) task matching @cookie.
> + */
> +struct task_struct
On 4/23/19 9:18 AM, Vineeth Remanan Pillai wrote:
> +/* real prio, less is less */
> +static inline bool __prio_less(struct task_struct *a, struct task_struct *b,
> bool core_cmp)
> +{
> + u64 vruntime;
> +
> + int pa = __task_prio(a), pb = __task_prio(b);
> +
> + if (-pa < -pb)
> +
From: Peter Zijlstra (Intel)
Introduce task_struct::core_cookie as an opaque identifier for core
scheduling. When enabled; core scheduling will only allow matching
task to be on the core; where idle matches everything.
When task_struct::core_cookie is set (and core scheduling is enabled)
these
23 matches
Mail list logo