On Thu, 10 Jan 2019, 15:36 Stefano Stabellini, <sstabell...@kernel.org>
wrote:

> On Thu, 10 Jan 2019, Julien Grall wrote:
> > On Thu, 10 Jan 2019, 12:29 Stefano Stabellini, <sstabell...@kernel.org>
> wrote:
> >       On Thu, 10 Jan 2019, Jan Beulich wrote:
> >       > >>> On 10.01.19 at 03:40, <julien.gr...@gmail.com> wrote:
> >       > > On Wed, 9 Jan 2019, 18:43 Stefano Stabellini, <
> sstabell...@kernel.org>
> >       > > wrote:
> >       > >
> >       > >> Introduce a macro, SYMBOL, which is similar to RELOC_HIDE,
> but it is
> >       > >> meant to be used everywhere symbols such as _stext and _etext
> are used
> >       > >> in the code. It can take an array type as a parameter, and it
> returns
> >       > >> the same type.
> >       > >>
> >       > >> SYMBOL is needed when accessing symbols such as _stext and
> _etext
> >       > >> because the C standard forbids for both comparisons and
> substraction
> >       > >> (see C Standard, 6.5.6 [ISO/IEC 9899:2011] and [1]) between
> pointers
> >       > >> pointing to different objects. _stext, _etext, etc. are all
> pointers to
> >       > >> different objects from ANCI C point of view.
> >       > >>
> >       > >
> >       > > This does not make sense because you still return a pointer
> and therefore
> >       > > the undefined behavior is still present.
> >       > >
> >       > > I really don't believe this patch is going to make the MISRA
> tool happy.
> >       >
> >       > Well, till now I've been assuming that no version of this series
> was
> >       > posted without being certain the changes achieve the goal (of
> >       > making that tool happy).
> >
> >       No, Jan: unfortunately we cannot re-run the scanning tool against
> any
> >       version of Xen we wish to :-(
> >
> >       We cannot know in advance if a set of changes will make the tool
> happy
> >       or not.
> >
> >       If I knew that SYMBOL returning the native point type as in v6 is
> >       sufficient to make the tool happy, I wouldn't be here arguing. We
> cannot
> >       know for sure until we commit the changes, then we ask PRQA to
> re-scan
> >       against a more recent version of Xen. It is an heavy process and
> for
> >       this reason I preferred the safer of the two approaches.
> >
> >
> >
> >       Anyway, I would rather get something in, even if insufficient, than
> >       nothing. So I'll address all your comments based on returning the
> >       pointer type, and submit a new version. The bothersome changes are
> the
> >       ones to the call sites, and I would like to get those in no matter
> the
> >       implementation of SYMBOL.
> >
> >
> > It is not only insufficient but wrong when you read the commit message.
> You also were not convinced about this approach.
> >
> > I understand that we need to commit so we can get the result from the
> PRQA tool. However, we should have talked with people
> > knowing MISRA to understand whether it could work.
> >
> > You also didn't address my point on why Linux needs to go through
> unsigned long.
> >
> > So I don't think it is right to merge it without more ground.
> >
> > On that basis:
> >
> > Nacked-by: Julien Grall <julien.gr...@arm.com>
>
> Hi Julien,
>
> I well understanding your thinking, I am not happy with this approach.
>
> However, changing all the call sites to use SYMBOL, even if SYMBOL does
> not do what you and I think it should, is still a valuable change to
> have:
>
> 1) it clearly highlight all the related violations
> 2) it is a burdensome set of changes to maintain off-tree which will be
>    difficult to rebase and will bitrot quickly
> 3) it will be simple to change the implementation of SYMBOL afterwards
>    as needed
> 4) regardless of MISRA, we still have a problem with gcc and symbols
>    like _start and _end, see the comment on top of RELOC_HIDE in linux
>    (include/linux/compiler-gcc.h)


> In fact, even not caring about C compliance, this series is still an
> improvement, a fix to a potential compiler problem. On that basis alone,
> I think it is a bad decision not to merge this series.
>

>From the different reading (see link in one of my previous), I don't
believe it will help the compiler. I would be interested to know the
rationale you think otherwise.

I am also worried that any change in the definition will require to
investigate all the callsite. This is a call for missing one.

So it still feels to me we are rushing the series.


>
> To answer your other questions: yes, we need more information about this
> compliance issue and MISRA, this is a good reason for committing the
> series so that we can have the tool a re-scan. It is also a great way
> to show the problem to a MISRA expert not familiar with Xen: "look at
> the way SYMBOL is used through the code..."
>
> I don't know why Linux is using unsigned long, I looked at the commit
> messages and comments but there isn't an explanation. However, it just
> makes sense to me. That is how I would have implemented the solution as
> well. Jan's approach looks very much like a partial workaround to me.
>

On one of my previous e-mail I provided a URL giving a bit more explanation
on the problem.


>
> In conclusion, I still agree with you and disagree with Jan, but it
> would be good to make progress regardless:
>
> - I think a series introducing the usage of SYMBOL through the code
>   should go in 4.12 regardless of the implementation of SYMBOL
> - even the bad implementation of SYMBOL would still help with the
>   potential gcc problems mentioned by Linux, if not with certifications


See above. I clearly don't believe it is solving anything. It will actually
make any change of SYMBOL more difficult if you decide to switch to
unsigned long.


>
> For everybody's reference, I have pushed both versions of the series,
> the one returning the native type, as asked by Jan:
> http://xenbits.xenproject.org/git-http/people/sstabellini/xen-unstable.git
> certifications-7
>
> And the one returning unsigned long, as Julien and I would like:
> http://xenbits.xenproject.org/git-http/people/sstabellini/xen-unstable.git
> certifications-7-unsigned_long
>
>
> Hoping we won't get stuck on this, regards,
>
> Stefano


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

Reply via email to