[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] Modified RTDS scheduler to use an event-driven model instead of polling.
>> I think you might assume that the first M VCPUs in the runq are the >> current running VCPUs on the M pCPUs. Am I correct? (From what you >> described in the following example, I think I'm correct. ;-) ) >> > Mmm... Interesting. Yes, I was. I was basing this assumption on this > chunk on Dagaen's patch: > > // If we become one of top [# CPUs] in the runq, tickle it > // TODO: make this work when multiple tickles are required > if ( new_position > 0 && new_position <= prv->NUM_CPUS ) > runq_tickle(ops, svc); > > And forgot (and did not go check) about the __q_remove() in > rt_schedule(). My bad again. > > But then, since we don't have the running vCPUs in the runq, how the > code above is supposed to be correct? This was my bad. I need to change so running vcpus are in runq, and this would then be correct. >> I tell that you make the above assumption from here. >> >> However, in the current implementation, runq does not hold the current >> running VCPUs on the pCPUs. We remove the vcpu from runq in >> rt_schedule() function. What you described above make perfect sense >> "if" we decide to make runq hold the current running VCPUs. >> > Yep. And it indeed seems to me that we may well think about doing so. It > will make it possible to base on the position for making/optimizing > scheduling decisions, and at the same time I don't think I see much > downsides in that, do you? > >> Actually, after thinking about the example you described, I think we >> can hold the current running VCPUs *and* the current idle pCPUs in the >> scheduler-wide structure; >> > What do you mean with 'current idle pCPUs'? I said something similar as > well, and what I meant was a cpumask with bit i set if i-eth pCPU is > idle, do you also mean this? > > About the running vCPUs, why just not leave them in the actual runq? This seemed like the straightforward way to me, too. >> In other words, we can have another runningq >> (not runq) and a idle_pcpu list in the rt_private; Now all VCPUs are >> stored in three queues: runningq, runq, and depletedq, in increasing >> priority order. >> > Perhaps, but I'm not sure I see the need for another list. Again, why > just not leave them in runq? I appreciate this is a rather big change > (although, perhaps it looks bigger said than done), but I think it could > be worth pursuing. > > For double checking, asserting, and making sure that we are able to > identify the running svc-s, we have the __RTDS_scheduled flag. I also don't feel we need another list. Regards, ~Dagaen Golomb _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |