public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH 07/10] x86: uv cleanup
@ 2009-01-28  0:19 Cliff Wickman
  2009-01-28  0:33 ` Tejun Heo
  0 siblings, 1 reply; 3+ messages in thread
From: Cliff Wickman @ 2009-01-28  0:19 UTC (permalink / raw)
  To: tj; +Cc: linux-kernel



Hi Tejun,

I appreciate your consolidation and cleanup of the UV code, relative
to 32 vs 64.

I have a question about the addition of the
        WARN_ON(!in_atomic());
in uv_flush_tlb_others().
The patch is
http://marc.info/?l=linux-kernel&m=123252788121855&w=2

I expect this function to always entered preemptable.  
Could you explain a bit about your thought behind this WARN_ON?

Thanks.
-Cliff




const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
                                          struct mm_struct *mm,
                                          unsigned long va, unsigned int cpu)
{
        static DEFINE_PER_CPU(cpumask_t, flush_tlb_mask);
        struct cpumask *flush_mask = &__get_cpu_var(flush_tlb_mask);
        int i;
        int bit;
        int blade;
        int uv_cpu;
        int this_blade;
        int locals = 0;
        struct bau_desc *bau_desc;

        WARN_ON(!in_atomic());

        cpumask_andnot(flush_mask, cpumask, cpumask_of(cpu));

        uv_cpu = uv_blade_processor_id();
        this_blade = uv_numa_blade_id();


^ permalink raw reply	[flat|nested] 3+ messages in thread
* [PATCHSET linux-2.6-x86:core/percpu] x86: misc clean up and unify x86_32/64 code paths
@ 2009-01-21  8:46 Tejun Heo
  2009-01-21  8:46 ` [PATCH 07/10] x86: uv cleanup Tejun Heo
  0 siblings, 1 reply; 3+ messages in thread
From: Tejun Heo @ 2009-01-21  8:46 UTC (permalink / raw)
  To: mingo, linux-kernel, brgerst


Hello,

This patchset contains the following 10 patches mostly unifying 32 and
64bit code paths.  0001 and 0007-0010 are from me and 0002-0006 are
from Brian Gerst.

  0001-x86-update-canary-handling-during-switch.patch
  0002-x86-clean-up-gdt_page-definition.patch
  0003-x86-fix-percpu_write-with-64-bit-constants.patch
  0004-x86-set-fs-to-__KERNEL_PERCPU-unconditionally-for.patch
  0005-x86-merge-mmu_context.h.patch
  0006-x86-merge-irq_regs.h.patch
  0007-x86-uv-cleanup.patch
  0008-x86-prepare-for-tlb-merge.patch
  0009-x86-make-x86_32-use-tlb_64.c.patch
  0010-x86-rename-tlb_64.c-to-tlb.c.patch

0001-0002 clean up after previous percpu changes.  0003 improves
percpu op slightly.  0004 simplifies x86_32 init path.  0005-0010
unifies mmu_context.h, irq_regs.h and tlb.c, which not only simplifies
the source code but also improves performance by applying
optimizations implemented for either bitness to the other one while
unifying.

The following git tree contains the above changes on top of
core/percpu[1].  Please pull from it if there's no objection.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git tj-percpu

diffstat follows.

 arch/x86/include/asm/genapic_32.h              |    7 -
 arch/x86/include/asm/genapic_64.h              |    6 -
 arch/x86/include/asm/irq_regs.h                |   36 +++-
 arch/x86/include/asm/irq_regs_32.h             |   31 ---
 arch/x86/include/asm/irq_regs_64.h             |    1 -
 arch/x86/include/asm/irq_vectors.h             |   36 ++--
 arch/x86/include/asm/mach-default/entry_arch.h |   18 ++-
 arch/x86/include/asm/mmu_context.h             |   63 ++++++-
 arch/x86/include/asm/mmu_context_32.h          |   55 ------
 arch/x86/include/asm/mmu_context_64.h          |   52 -----
 arch/x86/include/asm/percpu.h                  |    2 +-
 arch/x86/include/asm/system.h                  |   15 +-
 arch/x86/include/asm/uv/uv.h                   |   33 ++++
 arch/x86/include/asm/uv/uv_bau.h               |    2 -
 arch/x86/kernel/Makefile                       |    2 +-
 arch/x86/kernel/cpu/common.c                   |   23 ++-
 arch/x86/kernel/entry_32.S                     |    6 +-
 arch/x86/kernel/genx2apic_uv_x.c               |    1 +
 arch/x86/kernel/head_32.S                      |    6 +-
 arch/x86/kernel/irq_64.c                       |    3 +
 arch/x86/kernel/irqinit_32.c                   |   11 +-
 arch/x86/kernel/smpboot.c                      |    1 +
 arch/x86/kernel/{tlb_64.c => tlb.c}            |   48 +++---
 arch/x86/kernel/tlb_32.c                       |  239 ------------------------
 arch/x86/kernel/tlb_uv.c                       |   68 ++++---
 25 files changed, 268 insertions(+), 497 deletions(-)
 delete mode 100644 arch/x86/include/asm/irq_regs_32.h
 delete mode 100644 arch/x86/include/asm/irq_regs_64.h
 delete mode 100644 arch/x86/include/asm/mmu_context_32.h
 delete mode 100644 arch/x86/include/asm/mmu_context_64.h
 create mode 100644 arch/x86/include/asm/uv/uv.h
 rename arch/x86/kernel/{tlb_64.c => tlb.c} (90%)
 delete mode 100644 arch/x86/kernel/tlb_32.c

--
tejun

[1] 8f5d36ed5bb6e33024619eaee15b7ce2e3d115b3

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-01-28  0:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-28  0:19 [PATCH 07/10] x86: uv cleanup Cliff Wickman
2009-01-28  0:33 ` Tejun Heo
  -- strict thread matches above, loose matches on Subject: below --
2009-01-21  8:46 [PATCHSET linux-2.6-x86:core/percpu] x86: misc clean up and unify x86_32/64 code paths Tejun Heo
2009-01-21  8:46 ` [PATCH 07/10] x86: uv cleanup Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox