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

Re: [Xen-devel] [PATCH for-next v2 09/10] x86/domain: move PV specific code to pv/domain.c



>>> On 26.04.17 at 15:32, <wei.liu2@xxxxxxxxxx> wrote:
> On Wed, Apr 26, 2017 at 07:26:29AM -0600, Jan Beulich wrote:
>> >>> On 26.04.17 at 14:46, <andrew.cooper3@xxxxxxxxxx> wrote:
>> > On 26/04/17 13:39, Jan Beulich wrote:
>> >>>>> On 25.04.17 at 16:52, <andrew.cooper3@xxxxxxxxxx> wrote:
>> >>> On 25/04/17 14:52, Wei Liu wrote:
>> >>>> - fail:
>> >>>> -    pv_domain_destroy(d);
>> >>>> -
>> >>>> -    return rc;
>> >>>> -}
>> >>>> -
>> >>>> +void paravirt_ctxt_switch_from(struct vcpu *v);
>> >>>> +void paravirt_ctxt_switch_to(struct vcpu *v);
>> >>>>  int arch_domain_create(struct domain *d, unsigned int domcr_flags,
>> >>>>                         struct xen_arch_domainconfig *config)
>> >>>>  {
>> >>>> @@ -1919,7 +1717,8 @@ static void save_segments(struct vcpu *v)
>> >>>>  
>> >>>>  #define switch_kernel_stack(v) ((void)0)
>> >>>>  
>> >>>> -static void paravirt_ctxt_switch_from(struct vcpu *v)
>> >>>> +/* Needed by PV guests */
>> >>>> +void paravirt_ctxt_switch_from(struct vcpu *v)
>> >>>>  {
>> >>> Could these be moved up to avoid the forward declarations above?
>> >> Moved up? I don't see why they're not simply being moved to
>> >> pv/domain.c and kept static there (suitably placed so that the
>> >> forward declarations don't need to be retained). As their names
>> >> say, they're very PV-specific...
>> > 
>> > They are also used by idle_csw, whose setup remains in this file.
>> 
>> Oh, right. But then their declarations should move into a header,
>> instead of being done in two(!) source files. That'll then also
>> eliminate any ordering constraints.
> 
> That was how it was done in v1. But I opted to not do that in v2 because
> I had a long term plan to split out idle domain routines. It is rather
> easy to accumulate kludge in header files like that.
> 
> But in the end I don't care to argue for this. If that's how you want it
> to be done, then I'm fine with it too.

The fundamental thing here is: Both producer and consumer(s) of
any symbol need to see the _same_ declaration. You can't make
sure this is the case without putting the declaration in a header.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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