1. 24 8月, 2016 1 次提交
  2. 04 7月, 2013 1 次提交
  3. 25 3月, 2011 1 次提交
    • T
      percpu: Always align percpu output section to PAGE_SIZE · 0415b00d
      Tejun Heo 提交于
      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: NTejun Heo <tj@kernel.org>
      Acked-by: NMike Frysinger <vapier@gentoo.org>
      Cc: uclinux-dist-devel@blackfin.uclinux.org
      Cc: David Howells <dhowells@redhat.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: user-mode-linux-devel@lists.sourceforge.net
      0415b00d
  4. 25 1月, 2011 1 次提交
    • T
      percpu: align percpu readmostly subsection to cacheline · 19df0c2f
      Tejun Heo 提交于
      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: NTejun Heo <tj@kernel.org>
      Cc: Shaohua Li <shaohua.li@intel.com>
      19df0c2f
  5. 25 9月, 2009 1 次提交
  6. 09 7月, 2009 1 次提交
    • T
      linker script: unify usage of discard definition · 023bf6f1
      Tejun Heo 提交于
      Discarded sections in different archs share some commonality but have
      considerable differences.  This led to linker script for each arch
      implementing its own /DISCARD/ definition, which makes maintaining
      tedious and adding new entries error-prone.
      
      This patch makes all linker scripts to move discard definitions to the
      end of the linker script and use the common DISCARDS macro.  As ld
      uses the first matching section definition, archs can include default
      discarded sections by including them earlier in the linker script.
      
      ia64 is notable because it first throws away some ia64 specific
      subsections and then include the rest of the sections into the final
      image, so those sections must be discarded before the inclusion.
      
      defconfig compile tested for x86, x86-64, powerpc, powerpc64, ia64,
      alpha, sparc, sparc64 and s390.  Michal Simek tested microblaze.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NPaul Mundt <lethal@linux-sh.org>
      Acked-by: NMike Frysinger <vapier@gentoo.org>
      Tested-by: NMichal Simek <monstr@monstr.eu>
      Cc: linux-arch@vger.kernel.org
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: microblaze-uclinux@itee.uq.edu.au
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Tony Luck <tony.luck@intel.com>
      023bf6f1
  7. 23 10月, 2008 1 次提交
  8. 31 8月, 2007 1 次提交
  9. 24 6月, 2007 1 次提交
    • N
      uml: use generic BUG · 08932a19
      Nick Piggin 提交于
      Get UML to use the generic bug support rather than arch specific one.
      
      If I insert an artificial bug right before loading init, I get this:
      
       Kernel panic - not syncing: Kernel mode signal 4
      
       EIP: 0023:[<0819d501>] CPU: 0 Not tainted ESP: 002b:f7fd4fbc EFLAGS: 00000246
          Not tainted
          EAX: 00000000 EBX: 00007870 ECX: 00000013 EDX: 00007870
          ESI: 0000786d EDI: 00000011 EBP: f7fd4fd8 DS: 002b ES: 002b
          08273bec:  [<0806e814>] show_regs+0x104/0x106
          08273c08:  [<08058927>] panic_exit+0x2c/0x4b
          08273c18:  [<08080ee7>] notifier_call_chain+0x32/0x5b
          08273c38:  [<08080fbd>] __atomic_notifier_call_chain+0x30/0x32
          08273c54:  [<08080fee>] atomic_notifier_call_chain+0x2f/0x31
          08273c70:  [<08073b88>] panic+0x75/0x131
          08273c94:  [<080586c7>] relay_signal+0x87/0x95
          08273cb0:  [<0806b9ee>] sig_handler_common_skas+0x9e/0x120
          08273cd8:  [<08067738>] sig_handler+0x28/0x4f
          08273cec:  [<0806792e>] handle_signal+0x53/0x89
          08273d0c:  [<08069f60>] hard_handler+0x18/0x28
          08273d1c:  [<ffffe500>] transitions+0xf7d598b8/0xfffffff0
      
      With this patch in place, this is how it looks:
      
       BUG: failure at init/main.c:779/init_post()!
       Kernel panic - not syncing: BUG!
      
       EIP: 0023:[<081a65d1>] CPU: 0 Not tainted ESP: 002b:f7f0dfbc EFLAGS: 00000246
          Not tainted
          EAX: 00000000 EBX: 000069db ECX: 00000013 EDX: 000069db
          ESI: 000069d8 EDI: 00000011 EBP: f7f0dfd8 DS: 002b ES: 002b
          098efedc:  [<0806e9a4>] show_regs+0x104/0x106
          098efef8:  [<080589c7>] panic_exit+0x2c/0x4b
          098eff08:  [<080818d7>] notifier_call_chain+0x32/0x5b
          098eff28:  [<080819ad>] __atomic_notifier_call_chain+0x30/0x32
          098eff44:  [<080819de>] atomic_notifier_call_chain+0x2f/0x31
          098eff60:  [<08073f28>] panic+0x75/0x131
          098eff84:  [<080541d5>] init_post+0xcd/0xe8
          098eff9c:  [<08048ad4>] kernel_init+0x8e/0x9a
          098effb4:  [<08066dee>] run_kernel_thread+0x41/0x53
          098effe0:  [<08058e75>] new_thread_handler+0x62/0x8b
          098efffc:  [<a55a5a5a>] 0xa55a5a5a
      
      [ jdike - added BUG_TABLE to linker script ]
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      08932a19
  10. 31 3月, 2007 1 次提交
  11. 28 3月, 2007 1 次提交
  12. 01 11月, 2006 1 次提交
  13. 01 5月, 2005 1 次提交
    • J
      [PATCH] uml: fix oops related to exception table · 92eac952
      Jeff Dike 提交于
            Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      
      Prevent the kernel from oopsing during the extable sorting, as it can do
      now, because the extable is in the readonly section of the binary.
      
      Jeff says: The exception table turned RO in 2.6.11-rc3-mm1 for some reason.
      Moving it causes it to land in the writable data section of the binary.
      
      Paolo says: This patch fixes a oops on startup, which can be easily
      triggered by compiling with CONFIG_MODE_TT disabled, and STATIC_LINK either
      disabled or enabled.  The resulting kernel will always Oops on startup,
      after printing this simple output:
      
      I've verified, by binary search on the BitKeeper repository (synced up as
      of 2.6.12-rc2), starting from the range 2.6.11-2.6.12-rc1, that this bug
      shows up on BitKeeper revisions in the range [@1.1994.11.168,+inf), i.e.
      starting from this:
      
      [PATCH] lib/sort: Replace insertion sort in exception tables
      
      Since UML does not use the exception table, it's likely that insertion sort
      didn't happen to write anything on the table.
      Signed-off-by: NPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      92eac952
  14. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4