|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86: correct create_bounce_frame
>>> On 03.05.17 at 20:58, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 03/05/17 16:42, Jan Beulich wrote:
>>>>> On 02.05.17 at 16:12, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> On 02/05/17 14:22, Jan Beulich wrote:
>>>> @@ -345,15 +344,20 @@ UNLIKELY_START(z, create_bounce_frame_ba
>>>> __UNLIKELY_END(create_bounce_frame_bad_bounce_ip)
>>>> movq %rax,UREGS_rip+8(%rsp)
>>>> ret
>>>> - _ASM_EXTABLE(.Lft2, domain_crash_page_fault_32)
>>>> - _ASM_EXTABLE(.Lft3, domain_crash_page_fault_24)
>>>> - _ASM_EXTABLE(.Lft4, domain_crash_page_fault_8)
>>>> - _ASM_EXTABLE(.Lft5, domain_crash_page_fault_16)
>>>> - _ASM_EXTABLE(.Lft6, domain_crash_page_fault)
>>>> - _ASM_EXTABLE(.Lft7, domain_crash_page_fault)
>>>> + _ASM_EXTABLE(.Lft2, domain_crash_page_fault_48)
>>>> + _ASM_EXTABLE(.Lft3, domain_crash_page_fault_40)
>>>> + _ASM_EXTABLE(.Lft4, domain_crash_page_fault_24)
>>>> + _ASM_EXTABLE(.Lft5, domain_crash_page_fault_32)
>>>> + _ASM_EXTABLE(.Lft6, domain_crash_page_fault_16)
>>>> + _ASM_EXTABLE(.Lft7, domain_crash_page_fault_16)
>>>> _ASM_EXTABLE(.Lft12, domain_crash_page_fault_8)
>>> Given that you have altered the notation for a delta from (%rsi) (which
>>> is a good improvement), these labels should be similarly altered for
>>> consistency.
>> Actually, looking at this again I'm no longer sure factoring out the
>> 8 here would be a good idea. I'm also not sure I understand you
>> saying "Given that you have altered the notation for a delta from
>> (%rsi)" - the notation didn't change at all, the numeric tag has
>> always been expressing the adjustment needed for %rsi to
>> represent the actual failing memory address.
>
> First of all, this point is not obvious at all to people reading the
> code who don't already know the meaning. If it were new code today, I'd
> insist on a comment explaining what the numeric tag means.
I'm not at all opposed to adding a comment, if you think that helps.
> As for the change in notation, you very much have changed it. You have
> factored 8 out of it, which visually emphases the number of stack slots
> away from (%rsi) is used.
That's notation of the mainline code, not the fixup one. The fixup
code continues to be a sequence of additions of 8 to %rsi.
> The change in notation is, in principle, a good thing because it makes
> the code easier to read and correlate with the comment.
>
> However, such a change is only an improvement if it is implemented
> consistently (hence the request to use 1*8 and 0*8 for the other (%rsi)
> references),
As said before, if this is the only way to get an ack on the patch, I
can do this part despite not agreeing with the argument. As we've
had such situations a number of times in the past, I think we finally
need to have a more general discussion here. I'll kick off a separate
thread.
> and if it doesn't complicate other areas of the code. By
> expressing the (%rsi) references in terms of slots, but the fixup lables
> in terms of bytes, you have taken a complicated and non-obvious
> relationship and made it even more complicated to review, which is a net
> detriment (and hence the request to express the labels in the same units
> as the code they refer to).
So did you really consider how the alternative would look like:
domain_crash_page_fault_6:
addq $8,%rsi
domain_crash_page_fault_5:
addq $8,%rsi
domain_crash_page_fault_4:
addq $8,%rsi
domain_crash_page_fault_3:
addq $8,%rsi
domain_crash_page_fault_2:
addq $8,%rsi
domain_crash_page_fault_1:
addq $8,%rsi
domain_crash_page_fault:
...
I don't think this is any more or any less clear than what we have.
As said, using label names of the form
domain_crash_page_fault_<N>*8 is not going to work with other
than pretty recent binutils, and I'm unconvinced the alternative
of e.g. domain_crash_page_fault_<N>x8 is really helpful. Plus in
either case the question then would whether (a) you'd expect the
final label to use 0 to replace <N> (instead of not having any tag
at all, as it is currently) and (b) whether you'd insist on all the 8s
to become 1*8.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |