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

Re: [Xen-devel] [PATCH RFC 17/49] xen/sched: move some per-vcpu items to struct sched_item


  • To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Juergen Gross <jgross@xxxxxxxx>
  • Date: Mon, 1 Apr 2019 07:59:10 +0200
  • Autocrypt: addr=jgross@xxxxxxxx; prefer-encrypt=mutual; keydata= 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
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wei.liu2@xxxxxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxxxxx>, Ian Jackson <ian.jackson@xxxxxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>, Dario Faggioli <dfaggioli@xxxxxxxx>, Julien Grall <julien.grall@xxxxxxx>, Meng Xu <mengxu@xxxxxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Delivery-date: Mon, 01 Apr 2019 05:59:23 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Openpgp: preference=signencrypt

On 30/03/2019 10:59, Juergen Gross wrote:
> On 29/03/2019 22:33, Andrew Cooper wrote:
>> On 29/03/2019 15:09, Juergen Gross wrote:
>>> diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
>>> index 8d579e2cf9..5d8f3255cb 100644
>>> --- a/xen/arch/x86/domain.c
>>> +++ b/xen/arch/x86/domain.c
>>> @@ -15,6 +15,7 @@
>>>  #include <xen/lib.h>
>>>  #include <xen/errno.h>
>>>  #include <xen/sched.h>
>>> +#include <xen/sched-if.h>
>>>  #include <xen/domain.h>
>>>  #include <xen/smp.h>
>>>  #include <xen/delay.h>
>>
>> I'm afraid that this feels like a step in the wrong direction.
>>
>> sched-if.h is (per the comments) supposed to be the schedulers
>> private.h, with the intention that struct scheduler didn't leak into the
>> rest of the codebase.  Also the logic for taking scheduler locks, etc,
>> and lastly for cpumask_scratch, which really is unsafe to use outside of
>> the scheduler (and has come up in several recent patch series).
>>
>> Sadly,
>>
>> andrewcoop@andrewcoop:/local/xen.git/xen$ git grep sched-if
>> arch/x86/acpi/cpu_idle.c:41:#include <xen/sched-if.h>
>> arch/x86/cpu/mcheck/mce.c:13:#include <xen/sched-if.h>
>> arch/x86/cpu/mcheck/mctelem.c:21:#include <xen/sched-if.h>
>> arch/x86/dom0_build.c:12:#include <xen/sched-if.h>
>> arch/x86/setup.c:6:#include <xen/sched-if.h>
>> arch/x86/smpboot.c:28:#include <xen/sched-if.h>
>> common/cpupool.c:19:#include <xen/sched-if.h>
>> common/domain.c:13:#include <xen/sched-if.h>
>> common/domctl.c:14:#include <xen/sched-if.h>
>> common/sched_arinc653.c:29:#include <xen/sched-if.h>
>> common/sched_credit.c:18:#include <xen/sched-if.h>
>> common/sched_credit2.c:21:#include <xen/sched-if.h>
>> common/sched_null.c:32:#include <xen/sched-if.h>
>> common/sched_rt.c:23:#include <xen/sched-if.h>
>> common/schedule.c:26:#include <xen/sched-if.h>
>> include/asm-x86/cpuidle.h:7:#include <xen/sched-if.h>
>>
>> and this change is making the situation worse.
>>
>> If at all possible, I'd prefer to see about disentangling the bits which
>> actually need external use, and putting them in sched.h, and making
>> sched-if.h properly private to the schedulers.  I actually even started
>> a cleanup series which moved all of the scheduler infrastructure into
>> common/sched/, but found a disappointing quantity of sched-if.h being
>> referenced externally.
> 
> I can add something like that to my series if you want. So:
> 
> - moving schedule.c, sched_*.c and cpupool.c to common/sched/
> - move stuff from sched-if.h to sched.h if needed outside of
>   common/sched/
> - move sched-if.h to common/sched/

Questions to especially the scheduler maintainers and "the REST": should
we move the scheduler stuff to xen/common/sched/ or would /xen/sched/ be
more appropriate?

Maybe it would be worthwhile to move e.g. the context switching from
xen/arch/*/domain.c to xen/sched/context_<arch>.c? I think this code is
rather scheduler related and moving it to the sched directory might help
hiding some scheduler internals from other sources, especially with my
core scheduling series. IMO this would make the xen/sched/ directory the
preferred one.


Juergen


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.