[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 07/60] xen/sched: build a linked list of struct sched_unit
On 19.07.19 02:01, Dario Faggioli wrote: On Tue, 2019-05-28 at 12:32 +0200, Juergen Gross wrote:In order to make it easy to iterate over sched_unit elements of a domain build a single linked list and add an iterator for it.How about a ',' between domain and build? Okay. For completeness add another iterator for_each_sched_unit_vcpu() which will iterate over all vcpus if a sched_unit (right now only one). This"over all vcpus of a sched_unit" ? Oh, of course! will be needed later for larger scheduling granularity (e.g. cores). Signed-off-by: Juergen Gross <jgross@xxxxxxxx>One question:@@ -279,8 +279,16 @@ struct vcpu struct sched_unit { struct vcpu *vcpu; void *priv; /* scheduler private data */ + struct sched_unit *next_in_list; };+#define for_each_sched_unit(d,e) \ + for ( (e) = (d)->sched_unit_list; (e) != NULL; (e) = (e)-next_in_list )+ +#define for_each_sched_unit_vcpu(i, v) \ + for ( (v) = (i)->vcpu; (v) != NULL && (v)->sched_unit == (i); \ + (v) = (v)->next_in_list ) +So, here... sorry if it's me not seeing it, but why the (v)->sched_unit == (i) check is necessary? Do we expect to put in the list of vcpus of a particular unit, vcpus that are in another unit? Yes. I'm making use of the fact that all vcpus in a unit are consecutive as I'm re-using the already existing list of vcpus in a domain: dom->vcpu0->vcpu1->vcpu2->vcpu3 ^ ^ ! ! unit0-+ ! ! unit2---------------+ Juergen _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |