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

Re: [XEN PATCH] xen: cache clearing and invalidation helpers refactoring



On 2024-02-26 11:51, Jan Beulich wrote:
On 23.02.2024 08:58, Nicola Vetrini wrote:
On 2024-02-19 16:14, Nicola Vetrini wrote:
The cache clearing and invalidation helpers in x86 and Arm didn't
comply with MISRA C Rule 17.7: "The value returned by a function
having non-void return type shall be used". On Arm they
were always returning 0, while some in x86 returned -EOPNOTSUPP
and in common/grant_table the return value is saved.

As a consequence, a common helper arch_grant_cache_flush that returns
an integer is introduced, so that each architecture can choose whether
to
return an error value on certain conditions, and the helpers have
either
been changed to return void (on Arm) or deleted entirely (on x86).

Signed-off-by: Julien Grall <julien@xxxxxxx>
Signed-off-by: Nicola Vetrini <nicola.vetrini@xxxxxxxxxxx>
---
The original refactor idea came from Julien Grall in [1]; I edited that
proposal
to fix build errors.

I did introduce a cast to void for the call to flush_area_local on x86,
because
even before this patch the return value of that function wasn't checked
in all
but one use in x86/smp.c, and in this context the helper (perhaps
incidentally)
ignored the return value of flush_area_local.

[1]
https://lore.kernel.org/xen-devel/09589e8f-77b6-47f7-b5bd-cf485e4b60f1@xxxxxxx/
---
xen/arch/arm/include/asm/page.h | 33 ++++++++++++++++++-----------
 xen/arch/x86/include/asm/flushtlb.h | 23 ++++++++++----------
 xen/common/grant_table.c            |  9 +-------
 3 files changed, 34 insertions(+), 31 deletions(-)


I'll put this patch in the backlog at the moment: too many intricacies
while trying to untangle xen/flushtlb from xen/mm.h, and there are
easier cases that can be done faster. If someone is interested I can
post the partial work I've done so far, even though it doesn't
build on x86.

This
https://lists.xen.org/archives/html/xen-devel/2024-02/msg01513.html
may be of interest to you in the context here.


I'll take a look, thanks.

--
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)



 


Rackspace

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