04 Sep, 2013

2 commits

  • This was really only useful for TILE64 when we mapped the
    kernel data with small pages. Now we use a huge page and we
    really don't want to map different parts of the kernel
    data in different ways.

    We retain the __write_once name in case we want to bring
    it back to life at some point in the future.

    Note that this change uncovered a latent bug where the
    "smp_topology" variable happened to always be aligned mod 8
    so we could store two "int" values at once, but when we
    eliminated __write_once it ended up only aligned mod 4.
    Fix with an explicit annotation.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     
  • The existing code relied on the hardware definition ()
    to specify how much VA and PA space was available. It's convenient
    to allow customizing this for some configurations, so provide symbols
    MAX_PA_WIDTH and MAX_VA_WIDTH in that can be modified
    if desired.

    Additionally, move away from the MEM_XX_INTRPT nomenclature to
    define the start of various regions within the VA space. In fact
    the cleaner symbol is, for example, MEM_SV_START, to indicate the
    start of the area used for supervisor code; the actual address of the
    interrupt vectors is not as important, and can be changed if desired.
    As part of this change, convert from "intrpt1" nomenclature (which
    built in the old privilege-level 1 model) to a simple "intrpt".

    Also strip out some tilepro-specific code supporting modifying the
    PL the kernel could run at, since we don't actually support using
    different PLs in tilepro, only tilegx.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

30 Aug, 2013

3 commits


14 Aug, 2013

1 commit

  • This change adds infrastructure (CONFIG_TILE_HVGLUE_TRACE) that
    provides C code wrappers for the calls the kernel makes to the Tilera
    hypervisor. This allows standard kernel infrastructure like FTRACE to
    be able to instrument hypervisor calls.

    To allow direct calls to the true API, we export their names with a
    leading underscore as well. This is important for the few contexts
    where we need to make hypervisor calls without touching the stack.

    As part of this change, we also switch from creating the symbols
    with linker magic to creating them with assembler magic. This lets
    us provide a symbol type and generally make them appear more as symbols
    and less as just random values in the Elf namespace.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

04 Jul, 2013

1 commit

  • Normalize global variables exported by vmlinux.lds to conform usage
    guidelines from include/asm-generic/sections.h.

    1) Use _text to mark the start of the kernel image including the head
    text, and _stext to mark the start of the .text section.
    2) Export mandatory global variables __init_begin and __init_end.

    Signed-off-by: Jiang Liu
    Acked-by: Chris Metcalf
    Cc: Rusty Russell
    Cc: Bjorn Helgaas
    Cc: "David S. Miller"
    Cc: Wen Congyang
    Cc: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     

25 Mar, 2011

1 commit

  • Percpu allocator honors alignment request upto PAGE_SIZE and both the
    percpu addresses in the percpu address space and the translated kernel
    addresses should be aligned accordingly. The calculation of the
    former depends on the alignment of percpu output section in the kernel
    image.

    The linker script macros PERCPU_VADDR() and PERCPU() are used to
    define this output section and the latter takes @align parameter.
    Several architectures are using @align smaller than PAGE_SIZE breaking
    percpu memory alignment.

    This patch removes @align parameter from PERCPU(), renames it to
    PERCPU_SECTION() and makes it always align to PAGE_SIZE. While at it,
    add PCPU_SETUP_BUG_ON() checks such that alignment problems are
    reliably detected and remove percpu alignment comment recently added
    in workqueue.c as the condition would trigger BUG way before reaching
    there.

    For um, this patch raises the alignment of percpu area. As the area
    is in .init, there shouldn't be any noticeable difference.

    This problem was discovered by David Howells while debugging boot
    failure on mn10300.

    Signed-off-by: Tejun Heo
    Acked-by: Mike Frysinger
    Cc: uclinux-dist-devel@blackfin.uclinux.org
    Cc: David Howells
    Cc: Jeff Dike
    Cc: user-mode-linux-devel@lists.sourceforge.net

    Tejun Heo
     

18 Mar, 2011

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: (27 commits)
    arch/tile: support newer binutils assembler shift semantics
    arch/tile: fix deadlock bugs in rwlock implementation
    drivers/edac: provide support for tile architecture
    tile on-chip network driver: sync up with latest fixes
    arch/tile: support 4KB page size as well as 64KB
    arch/tile: add some more VMSPLIT options and use consistent naming
    arch/tile: fix some comments and whitespace
    arch/tile: export some additional module symbols
    arch/tile: enhance existing finv_buffer_remote() routine
    arch/tile: fix two bugs in the backtracer code
    arch/tile: use extended assembly to inline __mb_incoherent()
    arch/tile: use a cleaner technique to enable interrupt for cpu_idle()
    arch/tile: sync up with and changes
    arch/tile: fix reversed test of strict_strtol() return value
    arch/tile: avoid a simulator warning during bootup
    arch/tile: export to userspace
    arch/tile: warn and retry if an IPI is not accepted by the target cpu
    arch/tile: stop disabling INTCTRL_1 interrupts during hypervisor downcalls
    arch/tile: fix __ndelay etc to work better
    arch/tile: bug fix: exec'ed task thought it was still single-stepping
    ...

    Fix up trivial conflict in arch/tile/kernel/vmlinux.lds.S (percpu
    alignment vs section naming convention fix)

    Linus Torvalds
     

02 Mar, 2011

1 commit

  • The convention changed to, e.g., ".data..page_aligned". This commit
    fixes the places in the tile architecture that were still using the
    old convention. One tile-specific section (.init.page) was dropped
    in favor of just using an "aligned" attribute.

    Sam Ravnborg pointed out __PAGE_ALIGNED_BSS, etc.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

25 Jan, 2011

1 commit

  • Currently percpu readmostly subsection may share cachelines with other
    percpu subsections which may result in unnecessary cacheline bounce
    and performance degradation.

    This patch adds @cacheline parameter to PERCPU() and PERCPU_VADDR()
    linker macros, makes each arch linker scripts specify its cacheline
    size and use it to align percpu subsections.

    This is based on Shaohua's x86 only patch.

    Signed-off-by: Tejun Heo
    Cc: Shaohua Li

    Tejun Heo
     

07 Jul, 2010

1 commit

  • This commit is primarily changes caused by reviewing "sparse"
    and "checkpatch" output on our sources, so is somewhat noisy, since
    things like "printk() -> pr_err()" (or whatever) throughout the
    codebase tend to get tedious to read. Rather than trying to tease
    apart precisely which things changed due to which type of code
    review, this commit includes various cleanups in the code:

    - sparse: Add declarations in headers for globals.
    - sparse: Fix __user annotations.
    - sparse: Using gfp_t consistently instead of int.
    - sparse: removing functions not actually used.
    - checkpatch: Clean up printk() warnings by using pr_info(), etc.;
    also avoid partial-line printks except in bootup code.
    - checkpatch: Use exposed structs rather than typedefs.
    - checkpatch: Change some C99 comments to C89 comments.

    In addition, a couple of minor other changes are rolled in
    to this commit:

    - Add support for a "raise" instruction to cause SIGFPE, etc., to be raised.
    - Remove some compat code that is unnecessary when we fully eliminate
    some of the deprecated syscalls from the generic syscall ABI.
    - Update the tile_defconfig to reflect current config contents.

    Signed-off-by: Chris Metcalf
    Acked-by: Arnd Bergmann

    Chris Metcalf
     

05 Jun, 2010

1 commit

  • This change is the core kernel support for TILEPro and TILE64 chips.
    No driver support (except the console driver) is included yet.

    This includes the relevant Linux headers in asm/; the low-level
    low-level "Tile architecture" headers in arch/, which are
    shared with the hypervisor, etc., and are build-system agnostic;
    and the relevant hypervisor headers in hv/.

    Signed-off-by: Chris Metcalf
    Acked-by: Arnd Bergmann
    Acked-by: FUJITA Tomonori
    Reviewed-by: Paul Mundt

    Chris Metcalf