Where is run_node defined in the sched_fair.c of Linux 2.6.33?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am reading Robert Love's Book Linux Kernel Development(https://rads.stackoverflow.com/amzn/click/com/B003V4ATI0).

It uses the 2.6.33 kernel for demonstration.

I have been going through certain parts of the source and can't find out where is the initial definition of many things. A lot of things are just used, like "magic" without me finding the definition.

One example:

static struct sched_entity *__pick_next_entity(struct cfs_rq *cfs_rq)
{
struct rb_node *left = cfs_rq->rb_leftmost;

if (!left)
return NULL;

return rb_entry(left, struct sched_entity, run_node);
}

static struct sched_entity *__pick_last_entity(struct cfs_rq *cfs_rq)
{
struct rb_node *last = rb_last(&cfs_rq->tasks_timeline);

if (!last)
return NULL;

return rb_entry(last, struct sched_entity, run_node);
}


This in kernel/sched_fair.c lines 384 and 394 in 2.6.33 kernel.

Where is the run_node coming from ?

I have grep ed(https://livegrep.com/search/linuxq=run_node&fold_case=auto&regex=false&context=true) the entire source base over here, and I have not found any definition of run_node that would allow it to be used like this.

There is a declaration(https://github.com/torvalds/linux/blob/219d54332a09e8d8741c1e1982f5eae56099de85/include/linux/sched.h#L448) in the sched_entity structure, but nothing outside of it that would allow it to be used like this.

I cannot understand how things are organized, its really confusing.

What is going on ?
--
Regards,
Sreyan Chakravarty
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux