[llvmlinux] [PATCH] DO-NOT-UPSTREAM xen, LLVMLinux: Remove VLAIS from xen mmu

Sedat Dilek sedat.dilek at gmail.com
Sun Dec 14 08:42:54 UTC 2014


Why don't you label such patches with "RFC" or "Review"?
( So this is common practice on LKML and in other OSS projects. )
( A changelog/text would also not hurt. )

Seeing your patches with "DO-NOT-UPSTREAM"...
Why not collect such patches in a different Git URL/branch (speacking
of your practice on <git.l.o>), e.g. llvmlinux-experimental or
whatever.

- Sedat -

P.S.: As Sylvestre has now created new clang-3.6 patches based on
doko's gcc-4.9 for Ubuntu/precise, I will give llvmlinux a try around
Xmas, let's see.

On Sun, Dec 14, 2014 at 4:16 AM, Vinícius Tinti <viniciustinti at gmail.com> wrote:
> Signed-off-by: Vinícius Tinti <viniciustinti at gmail.com>
> ---
>  arch/x86/xen/mmu.c | 35 ++++++++++++++++++-----------------
>  1 file changed, 18 insertions(+), 17 deletions(-)
>
> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
> index a8a1a3d..fcad962 100644
> --- a/arch/x86/xen/mmu.c
> +++ b/arch/x86/xen/mmu.c
> @@ -1304,36 +1304,37 @@ static void xen_flush_tlb_others(const struct cpumask *cpus,
>                                  struct mm_struct *mm, unsigned long start,
>                                  unsigned long end)
>  {
> -       struct {
> -               struct mmuext_op op;
> -#ifdef CONFIG_SMP
> -               DECLARE_BITMAP(mask, num_processors);
> -#else
> -               DECLARE_BITMAP(mask, NR_CPUS);
> -#endif
> -       } *args;
>         struct multicall_space mcs;
> +       struct mmuext_op *op;
> +       struct cpumask *mask;
>
>         trace_xen_mmu_flush_tlb_others(cpus, mm, start, end);
>
>         if (cpumask_empty(cpus))
>                 return;         /* nothing to do */
>
> -       mcs = xen_mc_entry(sizeof(*args));
> -       args = mcs.args;
> -       args->op.arg2.vcpumask = to_cpumask(args->mask);
> +#ifdef CONFIG_SMP
> +       mcs = xen_mc_entry(sizeof(struct mmuext_op) + BITS_TO_LONGS(num_processors)*sizeof(unsigned long));
> +#else
> +       mcs = xen_mc_entry(sizeof(struct mmuext_op) + BITS_TO_LONGS(NR_CPUS)*sizeof(unsigned long));
> +#endif
> +       /* Extract fields */
> +       op = mcs.args;
> +       mask = to_cpumask(mcs.args + sizeof(struct mmuext_op));
> +
> +       op->arg2.vcpumask = mask;
>
>         /* Remove us, and any offline CPUS. */
> -       cpumask_and(to_cpumask(args->mask), cpus, cpu_online_mask);
> -       cpumask_clear_cpu(smp_processor_id(), to_cpumask(args->mask));
> +       cpumask_and(mask, cpus, cpu_online_mask);
> +       cpumask_clear_cpu(smp_processor_id(), mask);
>
> -       args->op.cmd = MMUEXT_TLB_FLUSH_MULTI;
> +       op->cmd = MMUEXT_TLB_FLUSH_MULTI;
>         if (end != TLB_FLUSH_ALL && (end - start) <= PAGE_SIZE) {
> -               args->op.cmd = MMUEXT_INVLPG_MULTI;
> -               args->op.arg1.linear_addr = start;
> +               op->cmd = MMUEXT_INVLPG_MULTI;
> +               op->arg1.linear_addr = start;
>         }
>
> -       MULTI_mmuext_op(mcs.mc, &args->op, 1, NULL, DOMID_SELF);
> +       MULTI_mmuext_op(mcs.mc, op, 1, NULL, DOMID_SELF);
>
>         xen_mc_issue(PARAVIRT_LAZY_MMU);
>  }
> --
> 2.1.3
>
> _______________________________________________
> LLVMLinux mailing list
> LLVMLinux at lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/llvmlinux


More information about the LLVMLinux mailing list