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

Re: [Xen-devel] [PATCH] arm: fix build after c/s 25477:e12e0b038219



>>> On 28.06.12 at 15:03, Keir Fraser <keir@xxxxxxx> wrote:
> On 25/06/2012 11:54, "Jan Beulich" <JBeulich@xxxxxxxx> wrote:
> 
>> Only x86 currently has a struct vcpu field arch.gdbsx_vcpu_event. But
>> as the whole function domain_pause_for_debugger() is pointless to be
>> compiled when there's no arch support, simply introduce another HAS_*
>> macro, enabled only on x86.
>> 
>> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> How did arch/arm build at all then, previously, with this function present
> for a long time in common code?

Prior to said c/s adding a reference to ->arch.gdbsx_vcpu_event,
the function wasn't arch-specific at all.

> Would a better fix be just to move the
> function to arch/x86/domain.c, since it is only called by arch/x86?

I'd say no - the function really ought to be generic. Any arch
wanting gdbsx support would have to add a respective field to
its arch_vcpu. Or alternatively the field itself should get moved
into struct vcpu, perhaps dependent upon some CONFIG_*.
(This is also why I didn't want to put in e.g. a CONFIG_X86
conditional, which would have been a smaller change.)

Jan

>> --- a/xen/Rules.mk
>> +++ b/xen/Rules.mk
>> @@ -51,6 +51,7 @@ CFLAGS-$(perfc)         += -DPERF_COUNTE
>>  CFLAGS-$(perfc_arrays)  += -DPERF_ARRAYS
>>  CFLAGS-$(lock_profile)  += -DLOCK_PROFILE
>>  CFLAGS-$(HAS_ACPI)      += -DHAS_ACPI
>> +CFLAGS-$(HAS_GDBSX)     += -DHAS_GDBSX
>>  CFLAGS-$(HAS_PASSTHROUGH) += -DHAS_PASSTHROUGH
>>  CFLAGS-$(frame_pointer) += -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER
>>  
>> --- a/xen/arch/x86/Rules.mk
>> +++ b/xen/arch/x86/Rules.mk
>> @@ -9,6 +9,7 @@ HAS_PASSTHROUGH := y
>>  HAS_NS16550 := y
>>  HAS_EHCI := y
>>  HAS_KEXEC := y
>> +HAS_GDBSX := y
>>  xenoprof := y
>>  
>>  #
>> --- a/xen/common/domain.c
>> +++ b/xen/common/domain.c
>> @@ -612,6 +612,7 @@ void vcpu_end_shutdown_deferral(struct v
>>          vcpu_check_shutdown(v);
>>  }
>>  
>> +#ifdef HAS_GDBSX
>>  void domain_pause_for_debugger(void)
>>  {
>>      struct domain *d = current->domain;
>> @@ -628,6 +629,7 @@ void domain_pause_for_debugger(void)
>>      if (current->arch.gdbsx_vcpu_event == 0)
>>          send_global_virq(VIRQ_DEBUGGER);
>>  }
>> +#endif
>>  
>>  /* Complete domain destroy after RCU readers are not holding old 
> references.
>> */
>>  static void complete_domain_destroy(struct rcu_head *head)
>> 
>> 
>> 
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxx 
>> http://lists.xen.org/xen-devel 




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


 


Rackspace

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