lkml.org 
[lkml]   [2018]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2] x86: xen: remove the use of VLAIS
    On Sat, Jan 06, 2018 at 01:39:48PM -0800, Nick Desaulniers wrote:
    > Variable Length Arrays In Structs (VLAIS) is not supported by Clang, and
    > frowned upon by others.
    >
    > https://lkml.org/lkml/2013/9/23/500
    >
    > Here, the VLAIS was used because the size of the bitmap returned from
    > xen_mc_entry() depended on possibly (based on kernel configuration)
    > runtime sized data. Rather than declaring args as a VLAIS then calling
    > sizeof on *args, we calculate the appropriate sizeof args manually.
    > Further, we can get rid of the #ifdef's and rely on num_possible_cpus()
    > (thanks to a helpful checkpatch warning from an earlier version of this
    > patch).
    >
    > Suggested-by: Juergen Gross <jgross@suse.com>
    > Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
    > ---
    > Changes in v2:
    > * Change mask to us DECLARE_BITMAP instead of pointer, as suggested.
    > * Update commit message to remove mention of pointer.
    > * Update sizeof calculation to work with array rather than pointer.
    >
    > arch/x86/xen/mmu_pv.c | 8 +++-----
    > 1 file changed, 3 insertions(+), 5 deletions(-)
    >
    > diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
    > index 4d62c07..d850762 100644
    > --- a/arch/x86/xen/mmu_pv.c
    > +++ b/arch/x86/xen/mmu_pv.c
    > @@ -1325,20 +1325,18 @@ static void xen_flush_tlb_others(const struct cpumask *cpus,
    > {
    > struct {
    > struct mmuext_op op;
    > -#ifdef CONFIG_SMP
    > - DECLARE_BITMAP(mask, num_processors);
    > -#else
    > DECLARE_BITMAP(mask, NR_CPUS);
    > -#endif
    > } *args;

    Why is it OK for Xen to place this bitmap on-stack in the first place?
    That NR_CPUS thing can be fairly huge.

    \
     
     \ /
      Last update: 2018-01-14 23:17    [W:4.315 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site