1. 20 2月, 2009 1 次提交
  2. 19 2月, 2009 1 次提交
    • K
      mm: clean up for early_pfn_to_nid() · f2dbcfa7
      KAMEZAWA Hiroyuki 提交于
      What's happening is that the assertion in mm/page_alloc.c:move_freepages()
      is triggering:
      
      	BUG_ON(page_zone(start_page) != page_zone(end_page));
      
      Once I knew this is what was happening, I added some annotations:
      
      	if (unlikely(page_zone(start_page) != page_zone(end_page))) {
      		printk(KERN_ERR "move_freepages: Bogus zones: "
      		       "start_page[%p] end_page[%p] zone[%p]\n",
      		       start_page, end_page, zone);
      		printk(KERN_ERR "move_freepages: "
      		       "start_zone[%p] end_zone[%p]\n",
      		       page_zone(start_page), page_zone(end_page));
      		printk(KERN_ERR "move_freepages: "
      		       "start_pfn[0x%lx] end_pfn[0x%lx]\n",
      		       page_to_pfn(start_page), page_to_pfn(end_page));
      		printk(KERN_ERR "move_freepages: "
      		       "start_nid[%d] end_nid[%d]\n",
      		       page_to_nid(start_page), page_to_nid(end_page));
       ...
      
      And here's what I got:
      
      	move_freepages: Bogus zones: start_page[2207d0000] end_page[2207dffc0] zone[fffff8103effcb00]
      	move_freepages: start_zone[fffff8103effcb00] end_zone[fffff8003fffeb00]
      	move_freepages: start_pfn[0x81f600] end_pfn[0x81f7ff]
      	move_freepages: start_nid[1] end_nid[0]
      
      My memory layout on this box is:
      
      [    0.000000] Zone PFN ranges:
      [    0.000000]   Normal   0x00000000 -> 0x0081ff5d
      [    0.000000] Movable zone start PFN for each node
      [    0.000000] early_node_map[8] active PFN ranges
      [    0.000000]     0: 0x00000000 -> 0x00020000
      [    0.000000]     1: 0x00800000 -> 0x0081f7ff
      [    0.000000]     1: 0x0081f800 -> 0x0081fe50
      [    0.000000]     1: 0x0081fed1 -> 0x0081fed8
      [    0.000000]     1: 0x0081feda -> 0x0081fedb
      [    0.000000]     1: 0x0081fedd -> 0x0081fee5
      [    0.000000]     1: 0x0081fee7 -> 0x0081ff51
      [    0.000000]     1: 0x0081ff59 -> 0x0081ff5d
      
      So it's a block move in that 0x81f600-->0x81f7ff region which triggers
      the problem.
      
      This patch:
      
      Declaration of early_pfn_to_nid() is scattered over per-arch include
      files, and it seems it's complicated to know when the declaration is used.
       I think it makes fix-for-memmap-init not easy.
      
      This patch moves all declaration to include/linux/mm.h
      
      After this,
        if !CONFIG_NODES_POPULATES_NODE_MAP && !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
           -> Use static definition in include/linux/mm.h
        else if !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
           -> Use generic definition in mm/page_alloc.c
        else
           -> per-arch back end function will be called.
      Signed-off-by: NKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Tested-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Reported-by: NDavid Miller <davem@davemlloft.net>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f2dbcfa7
  3. 15 2月, 2009 1 次提交
  4. 11 2月, 2009 1 次提交
  5. 09 2月, 2009 1 次提交
  6. 06 2月, 2009 1 次提交
  7. 01 2月, 2009 5 次提交
  8. 16 1月, 2009 2 次提交
  9. 15 1月, 2009 1 次提交
  10. 14 1月, 2009 1 次提交
  11. 07 1月, 2009 2 次提交
  12. 06 1月, 2009 1 次提交
    • I
      [IA64] fix typo in cpumask_of_pcibus() · 36c401a4
      Ingo Molnar 提交于
      Impact: build fix
      
      Fujita Tomonori reported:
      
       drivers/pci/probe.c: In function 'pci_bus_show_cpuaffinity':
       drivers/pci/probe.c:56: error: implicit declaration of function 'cpumask_from_node'
       drivers/pci/probe.c:56: warning: pointer/integer type mismatch in conditional expression
       make[3]: *** [drivers/pci/probe.o] Error 1
       make[2]: *** [drivers/pci] Error 2
      
      FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      36c401a4
  13. 04 1月, 2009 2 次提交
    • M
      ia64: cpumask fix for is_affinity_mask_valid() · d3b66bf2
      Mike Travis 提交于
      Impact: cleanup
      
      The function prototype should use 'struct cpumask *' to declare
      cpumask arguments (instead of cpumask_var_t).
      
      Note: arch/ia64/kernel/irq.c still had the following "old cpumask_t" usages:
      
      105:	cpumask_t mask = CPU_MASK_NONE;
      107:	cpu_set(cpu_logical_id(hwid), mask);
      110:                 irq_desc[irq].affinity = mask;
      
      	... replaced with a simple "cpumask_of(cpu_logical_id(hwid))".
      
      161:			new_cpu = any_online_cpu(cpu_online_map);
      194:		time_keeper_id = first_cpu(cpu_online_map);
      
      	... replaced with cpu_online_mask refs.
      Signed-off-by: NMike Travis <travis@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d3b66bf2
    • I
      ia64: cpumask fix for is_affinity_mask_valid() · 6bdf197b
      Ingo Molnar 提交于
      Impact: build fix on ia64
      
      ia64's default_affinity_write() still had old cpumask_t usage:
      
       /home/mingo/tip/kernel/irq/proc.c: In function `default_affinity_write':
       /home/mingo/tip/kernel/irq/proc.c:114: error: incompatible type for argument 1 of `is_affinity_mask_valid'
       make[3]: *** [kernel/irq/proc.o] Error 1
       make[3]: *** Waiting for unfinished jobs....
      
      update it to cpumask_var_t.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      6bdf197b
  14. 03 1月, 2009 1 次提交
  15. 01 1月, 2009 1 次提交
  16. 31 12月, 2008 4 次提交
    • J
      KVM: ia64: Fix kvm_arch_vcpu_ioctl_[gs]et_regs() · 042b26ed
      Jes Sorensen 提交于
      Fix kvm_arch_vcpu_ioctl_[gs]et_regs() to do something meaningful on
      ia64. Old versions could never have worked since they required
      pointers to be set in the ioctl payload which were never being set by
      the ioctl handler for get_regs.
      
      In addition reserve extra space for future extensions.
      
      The change of layout of struct kvm_regs doesn't require adding a new
      CAP since get/set regs never worked on ia64 until now.
      
      This version doesn't support copying the KVM kernel stack in/out of
      the kernel. This should be implemented in a seperate ioctl call if
      ever needed.
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Acked-by : Xiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      042b26ed
    • X
      KVM: ia64: Define printk function for kvm-intel module · 7d637978
      Xiantao Zhang 提交于
      kvm-intel module is relocated to an isolated address space
      with kernel, so it can't call host kernel's printk for debug
      purpose. In the module, we implement the printk to output debug
      info of vmm.
      Signed-off-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      7d637978
    • X
      KVM: ia64: Re-organize data sturure of guests' data area · a917f7af
      Xiantao Zhang 提交于
      1. Increase the size of data area to 64M
      2. Support more vcpus and memory, 128 vcpus and 256G memory are supported
         for guests.
      3. Add the boundary check for memory and vcpu allocation.
      
      With this patch, kvm guest's data area looks as follow:
        *
        *            +----------------------+  ------- KVM_VM_DATA_SIZE
        *            |     vcpu[n]'s data   |   |     ___________________KVM_STK_OFFSET
        *            |                      |   |    /                   |
        *            |        ..........    |   |   /vcpu's struct&stack |
        *            |        ..........    |   |  /---------------------|---- 0
        *            |     vcpu[5]'s data   |   | /       vpd            |
        *            |     vcpu[4]'s data   |   |/-----------------------|
        *            |     vcpu[3]'s data   |   /         vtlb           |
        *            |     vcpu[2]'s data   |  /|------------------------|
        *            |     vcpu[1]'s data   |/  |         vhpt           |
        *            |     vcpu[0]'s data   |____________________________|
        *            +----------------------+   |
        *            |    memory dirty log  |   |
        *            +----------------------+   |
        *            |    vm's data struct  |   |
        *            +----------------------+   |
        *            |                      |   |
        *            |                      |   |
        *            |                      |   |
        *            |                      |   |
        *            |                      |   |
        *            |                      |   |
        *            |                      |   |
        *            |   vm's p2m table  |      |
        *            |                      |   |
        *            |                      |   |
        *            |                      |   |  |
        * vm's data->|                      |   |  |
        *            +----------------------+ ------- 0
        * To support large memory, needs to increase the size of p2m.
        * To support more vcpus, needs to ensure it has enough space to
        * hold vcpus' data.
        */
      Signed-off-by: NXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      a917f7af
    • L
      ACPI: remove private acpica headers from driver files · ea7e96e0
      Lin Ming 提交于
      External driver files should not include any private acpica headers.
      Signed-off-by: NLin Ming <ming.m.lin@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ea7e96e0
  17. 28 12月, 2008 1 次提交
  18. 26 12月, 2008 1 次提交
  19. 13 12月, 2008 1 次提交
    • R
      cpumask: centralize cpu_online_map and cpu_possible_map · 98a79d6a
      Rusty Russell 提交于
      Impact: cleanup
      
      Each SMP arch defines these themselves.  Move them to a central
      location.
      
      Twists:
      1) Some archs (m32, parisc, s390) set possible_map to all 1, so we add a
         CONFIG_INIT_ALL_POSSIBLE for this rather than break them.
      
      2) mips and sparc32 '#define cpu_possible_map phys_cpu_present_map'.
         Those archs simply have phys_cpu_present_map replaced everywhere.
      
      3) Alpha defined cpu_possible_map to cpu_present_map; this is tricky
         so I just manipulate them both in sync.
      
      4) IA64, cris and m32r have gratuitous 'extern cpumask_t cpu_possible_map'
         declarations.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Reviewed-by: NGrant Grundler <grundler@parisc-linux.org>
      Tested-by: NTony Luck <tony.luck@intel.com>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: Mike Travis <travis@sgi.com>
      Cc: ink@jurassic.park.msu.ru
      Cc: rmk@arm.linux.org.uk
      Cc: starvik@axis.com
      Cc: tony.luck@intel.com
      Cc: takata@linux-m32r.org
      Cc: ralf@linux-mips.org
      Cc: grundler@parisc-linux.org
      Cc: paulus@samba.org
      Cc: schwidefsky@de.ibm.com
      Cc: lethal@linux-sh.org
      Cc: wli@holomorphy.com
      Cc: davem@davemloft.net
      Cc: jdike@addtoit.com
      Cc: mingo@redhat.com
      98a79d6a
  20. 10 12月, 2008 1 次提交
    • A
      [IA64] remove BUILD_BUG_ON from paravirt_getreg() · fc102125
      Alexey Dobriyan 提交于
      CC      arch/ia64/kernel/asm-offsets.s
      In file included from include/linux/bitops.h:17,
                       from include/linux/kernel.h:15,
                       from include/linux/sched.h:52,
                       from arch/ia64/kernel/asm-offsets.c:9:
      arch/ia64/include/asm/bitops.h: In function 'set_bit':
      arch/ia64/include/asm/bitops.h:47: error: implicit declaration of function 'BUILD_BUG_ON'
      
      Obvious inclusion of kernel.h doesn't fix it, because of circular dependencies
      involving fls.h and log2(). Fixing the latter requires some serious header surgery,
      it seems, so just remove BUILD_BUG_ON for now.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      fc102125
  21. 01 12月, 2008 1 次提交
  22. 26 11月, 2008 1 次提交
    • I
      sched: convert struct root_domain to cpumask_var_t, fix · 1c391948
      Ingo Molnar 提交于
      Mathieu Desnoyers reported this build failure on powerpc:
      
       kernel/sched.c: In function 'sd_init_NODE':
       kernel/sched.c:7319: error: non-static initialization of a flexible array member
       kernel/sched.c:7319: error: (near initialization for '(anonymous)')
      
      this happens because .span changed to cpumask_var_t, hence
      the static CPU_MASK_NONE initializers in the SD_*_INIT
      templates are not type-correct anymore.
      
      Remove them, as they default to empty anyway.
      
      Also remove them from IA64, MIPS and SH.
      Reported-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1c391948
  23. 21 11月, 2008 1 次提交
  24. 05 11月, 2008 5 次提交
  25. 28 10月, 2008 2 次提交