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

Re: [Xen-devel] [PATCH 1/7] x86/alt: Drop unused alternative infrastructure



>>> On 13.02.18 at 15:41, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 13/02/18 14:22, Jan Beulich wrote:
>>>>> On 12.02.18 at 12:23, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> --- a/xen/include/asm-x86/alternative.h
>>> +++ b/xen/include/asm-x86/alternative.h
>>> @@ -65,11 +65,6 @@ extern void alternative_instructions(void);
>>>     ALTERNATIVE(oldinstr, newinstr1, feature1)                        \
>>>     ALTERNATIVE_N(newinstr2, feature2, 2)
>>>  
>>> -#define ALTERNATIVE_3(oldinstr, newinstr1, feature1, newinstr2, feature2, \
>>> -                 newinstr3, feature3)                                \
>>> -   ALTERNATIVE_2(oldinstr, newinstr1, feature1, newinstr2, feature2) \
>>> -   ALTERNATIVE_N(newinstr3, feature3, 3)
>>> -
>>>  /*
>>>   * Alternative instructions for different CPU types or capabilities.
>>>   *
>> While this one is fine, ...
>>
>>> @@ -118,26 +113,6 @@ extern void alternative_instructions(void);
>>>                                newinstr2, feature2)                 \
>>>                  : output : input)
>>>  
>>> -/*
>>> - * This is similar to alternative_io. But it has three features and
>>> - * respective instructions.
>>> - *
>>> - * If CPU has feature3, newinstr3 is used.
>>> - * Otherwise, if CPU has feature2, newinstr2 is used.
>>> - * Otherwise, if CPU has feature1, newinstr1 is used.
>>> - * Otherwise, oldinstr is used.
>>> - */
>>> -#define alternative_io_3(oldinstr, newinstr1, feature1, newinstr2, \
>>> -                    feature2, newinstr3, feature3, output,         \
>>> -                    input...)                                      \
>>> -   asm volatile(ALTERNATIVE_3(oldinstr, newinstr1, feature1,       \
>>> -                              newinstr2, feature2, newinstr3,      \
>>> -                              feature3)                            \
>>> -                : output : input)
>>> -
>>> -/* Use this macro(s) if you need more than one output parameter. */
>>> -#define ASM_OUTPUT2(a...) a
>> ... I'm having patches to post which use both of these, so I'd
>> very much prefer them to not go away. It is simply a lack of time
>> which resulted in me not having posted that series already.
> 
> In which case I'll need to review that patch before commenting on this
> one (i.e. whether it actually needs to be an alternative_3, or whether
> there is a shorter way to do it).
> 
> The problem is that the gas_max() expression expands its parameters 5
> times, and ISTR a report on LKML saying that older version of GAS
> couldn't cope with the eventual expansion of the 3-replacement version.

As per my earlier reply, with ASM_OUTPUT2() retained
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
provided all of this (minus patch 7) goes in together (at which
point I'll have quite some re-basing fun).

Jan


_______________________________________________
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®.