23 Oct, 2015

8 commits

  • The type of the item in frame_list is xen_pfn_t which is not an unsigned
    long on ARM but an uint64_t.

    With the current computation, the size of frame_list will be 2 *
    PAGE_SIZE rather than PAGE_SIZE.

    I bet it's just mistake when the type has been switched from "unsigned
    long" to "xen_pfn_t" in commit 965c0aaafe3e75d4e65cd4ec862915869bde3abd
    "xen: balloon: use correct type for frame_list".

    Signed-off-by: Julien Grall
    Signed-off-by: David Vrabel

    Julien Grall
     
  • For ARM64 guests, Linux is able to support either 64K or 4K page
    granularity. Although, the hypercall interface is always based on 4K
    page granularity.

    With 64K page granularity, a single page will be spread over multiple
    Xen frame.

    To avoid splitting the page into 4K frame, take advantage of the
    extent_order field to directly allocate/free chunk of the Linux page
    size.

    Note that PVMMU is only used for PV guest (which is x86) and the page
    granularity is always 4KB. Some BUILD_BUG_ON has been added to ensure
    that because the code has not been modified.

    Signed-off-by: Julien Grall
    Reviewed-by: Stefano Stabellini
    Signed-off-by: David Vrabel

    Julien Grall
     
  • Pages returned by alloc_xenballooned_pages() will be used for grant
    mapping which will call set_phys_to_machine() (in PV guests).

    Ballooned pages are set as INVALID_P2M_ENTRY in the p2m and thus may
    be using the (shared) missing tables and a subsequent
    set_phys_to_machine() will need to allocate new tables.

    Since the grant mapping may be done from a context that cannot sleep,
    the p2m entries must already be allocated.

    Signed-off-by: David Vrabel
    Reviewed-by: Daniel Kiper

    David Vrabel
     
  • alloc_xenballooned_pages() is used to get ballooned pages to back
    foreign mappings etc. Instead of having to balloon out real pages,
    use (if supported) hotplugged memory.

    This makes more memory available to the guest and reduces
    fragmentation in the p2m.

    This is only enabled if the xen.balloon.hotplug_unpopulated sysctl is
    set to 1. This sysctl defaults to 0 in case the udev rules to
    automatically online hotplugged memory do not exist.

    Signed-off-by: David Vrabel
    Reviewed-by: Daniel Kiper
    ---
    v3:
    - Add xen.balloon.hotplug_unpopulated sysctl to enable use of hotplug
    for unpopulated pages.

    David Vrabel
     
  • All users of alloc_xenballoon_pages() wanted low memory pages, so
    remove the option for high memory.

    Signed-off-by: David Vrabel
    Reviewed-by: Daniel Kiper

    David Vrabel
     
  • Now that we track the total number of pages (included hotplugged
    regions), it is easy to determine if more memory needs to be
    hotplugged.

    Add a new BP_WAIT state to signal that the balloon process needs to
    wait until kicked by the memory add notifier (when the new section is
    onlined by userspace).

    Signed-off-by: David Vrabel
    Reviewed-by: Daniel Kiper
    ---
    v3:
    - Return BP_WAIT if enough sections are already hotplugged.

    v2:
    - New BP_WAIT status after adding new memory sections.

    David Vrabel
     
  • The stats used for memory hotplug make no sense and are fiddled with
    in odd ways. Remove them and introduce total_pages to track the total
    number of pages (both populated and unpopulated) including those within
    hotplugged regions (note that this includes not yet onlined pages).

    This will be used in a subsequent commit (xen/balloon: only hotplug
    additional memory if required) when deciding whether additional memory
    needs to be hotplugged.

    Signed-off-by: David Vrabel
    Reviewed-by: Daniel Kiper

    David Vrabel
     
  • Instead of placing hotplugged memory at the end of RAM (which may
    conflict with PCI devices or reserved regions) use allocate_resource()
    to get a new, suitably aligned resource that does not conflict.

    Signed-off-by: David Vrabel
    Reviewed-by: Daniel Kiper
    ---
    v3:
    - Remove stale comment.

    David Vrabel
     

09 Sep, 2015

1 commit

  • Based on include/xen/mm.h [1], Linux is mistakenly using MFN when GFN
    is meant, I suspect this is because the first support for Xen was for
    PV. This resulted in some misimplementation of helpers on ARM and
    confused developers about the expected behavior.

    For instance, with pfn_to_mfn, we expect to get an MFN based on the name.
    Although, if we look at the implementation on x86, it's returning a GFN.

    For clarity and avoid new confusion, replace any reference to mfn with
    gfn in any helpers used by PV drivers. The x86 code will still keep some
    reference of pfn_to_mfn which may be used by all kind of guests
    No changes as been made in the hypercall field, even
    though they may be invalid, in order to keep the same as the defintion
    in xen repo.

    Note that page_to_mfn has been renamed to xen_page_to_gfn to avoid a
    name to close to the KVM function gfn_to_page.

    Take also the opportunity to simplify simple construction such
    as pfn_to_mfn(page_to_pfn(page)) into xen_page_to_gfn. More complex clean up
    will come in follow-up patches.

    [1] http://xenbits.xen.org/gitweb/?p=xen.git;a=commitdiff;h=e758ed14f390342513405dd766e874934573e6cb

    Signed-off-by: Julien Grall
    Reviewed-by: Stefano Stabellini
    Acked-by: Dmitry Torokhov
    Acked-by: Wei Liu
    Signed-off-by: David Vrabel

    Julien Grall
     

08 Sep, 2015

1 commit

  • Instead of using physical addresses for accounting of extra memory
    areas available for ballooning switch to pfns as this is much less
    error prone regarding partial pages.

    Reported-by: Roger Pau Monné
    Tested-by: Roger Pau Monné
    Signed-off-by: Juergen Gross
    Signed-off-by: David Vrabel

    Juergen Gross
     

20 Jul, 2015

1 commit

  • When dom0 is being ballooned balloon_process() will hold the balloon
    mutex until it is finished. This will block e.g. creation of new
    domains as the device backends for the new domain need some
    autoballooned pages for the ring buffers.

    Avoid this by releasing the balloon mutex from time to time during
    ballooning. Adjust the comment above balloon_process() regarding
    multiple instances of balloon_process().

    Instead of open coding it, just use cond_resched().

    Signed-off-by: Juergen Gross
    Signed-off-by: David Vrabel

    Juergen Gross
     

23 Mar, 2015

1 commit

  • Commit 25b884a83d487fd62c3de7ac1ab5549979188482 ("x86/xen: set
    regions above the end of RAM as 1:1") introduced a regression.

    To be able to add memory pages which were added via memory hotplug to
    a pv domain, the pages must be "invalid" instead of "identity" in the
    p2m list before they can be added.

    Suggested-by: David Vrabel
    Signed-off-by: Juergen Gross
    Cc: # 3.16+
    Reviewed-by: Daniel Kiper
    Signed-off-by: David Vrabel

    Juergen Gross
     

28 Jan, 2015

1 commit

  • The scratch frame mappings for ballooned pages and the m2p override
    are broken. Remove them in preparation for replacing them with
    simpler mechanisms that works.

    The scratch pages did not ensure that the page was not in use. In
    particular, the foreign page could still be in use by hardware. If
    the guest reused the frame the hardware could read or write that
    frame.

    The m2p override did not handle the same frame being granted by two
    different grant references. Trying an M2P override lookup in this
    case is impossible.

    With the m2p override removed, the grant map/unmap for the kernel
    mappings (for x86 PV) can be easily batched in
    set_foreign_p2m_mapping() and clear_foreign_p2m_mapping().

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     

23 Oct, 2014

1 commit

  • Commit 3dcf63677d4e ("xen/balloon: cancel ballooning if adding new
    memory failed") makes reserve_additional_memory() return BP_ECANCELED
    when an error is encountered. This error, however, is ignored by the
    caller (balloon_process()) since it is overwritten by subsequent call
    to update_schedule(). This results in continuous attempts to add more
    memory, all of which are likely to fail again.

    We should stop trying to schedule next iteration of ballooning when
    the current one has failed.

    Signed-off-by: Boris Ostrovsky
    Reviewed-by: Daniel Kiper
    Signed-off-by: David Vrabel

    Boris Ostrovsky
     

02 Sep, 2014

1 commit


04 Jul, 2014

1 commit

  • Since cd9151e26d31048b2b5e00fd02e110e07d2200c9 (xen/balloon: set a
    mapping for ballooned out pages), a ballooned out page had its entry
    in the p2m set to the MFN of one of the scratch pages. This means
    that the p2m will contain many entries pointing to the same MFN.

    During a domain save, these many-to-one entries are not identified as
    such and the scratch page is saved multiple times. On restore the
    ballooned pages are populated with new frames and the domain may use
    up its allocation before all pages can be restored.

    Since the original fix only needed to keep a mapping for the ballooned
    page it is safe to set ballooned out pages as INVALID_P2M_ENTRY in the
    p2m (as they were before). Thus preventing them from being saved and
    re-populated on restore.

    Signed-off-by: David Vrabel
    Reported-by: Marek Marczykowski
    Tested-by: Marek Marczykowski
    Acked-by: Stefano Stabellini
    Cc:

    David Vrabel
     

08 Apr, 2014

1 commit

  • Pull CPU hotplug notifiers registration fixes from Rafael Wysocki:
    "The purpose of this single series of commits from Srivatsa S Bhat
    (with a small piece from Gautham R Shenoy) touching multiple
    subsystems that use CPU hotplug notifiers is to provide a way to
    register them that will not lead to deadlocks with CPU online/offline
    operations as described in the changelog of commit 93ae4f978ca7f ("CPU
    hotplug: Provide lockless versions of callback registration
    functions").

    The first three commits in the series introduce the API and document
    it and the rest simply goes through the users of CPU hotplug notifiers
    and converts them to using the new method"

    * tag 'cpu-hotplug-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (52 commits)
    net/iucv/iucv.c: Fix CPU hotplug callback registration
    net/core/flow.c: Fix CPU hotplug callback registration
    mm, zswap: Fix CPU hotplug callback registration
    mm, vmstat: Fix CPU hotplug callback registration
    profile: Fix CPU hotplug callback registration
    trace, ring-buffer: Fix CPU hotplug callback registration
    xen, balloon: Fix CPU hotplug callback registration
    hwmon, via-cputemp: Fix CPU hotplug callback registration
    hwmon, coretemp: Fix CPU hotplug callback registration
    thermal, x86-pkg-temp: Fix CPU hotplug callback registration
    octeon, watchdog: Fix CPU hotplug callback registration
    oprofile, nmi-timer: Fix CPU hotplug callback registration
    intel-idle: Fix CPU hotplug callback registration
    clocksource, dummy-timer: Fix CPU hotplug callback registration
    drivers/base/topology.c: Fix CPU hotplug callback registration
    acpi-cpufreq: Fix CPU hotplug callback registration
    zsmalloc: Fix CPU hotplug callback registration
    scsi, fcoe: Fix CPU hotplug callback registration
    scsi, bnx2fc: Fix CPU hotplug callback registration
    scsi, bnx2i: Fix CPU hotplug callback registration
    ...

    Linus Torvalds
     

25 Mar, 2014

1 commit

  • Xen balloon driver will update ballooned out pages' P2M entries to point
    to scratch page for PV guests. In 24f69373e2 ("xen/balloon: don't alloc
    page while non-preemptible", kmap_flush_unused was moved after updating
    P2M table. In that case for 32 bit PV guest we might end up with

    P2M X -----> S (S is mfn of balloon scratch page)
    M2P Y -----> X (Y is mfn in persistent kmap entry)

    kmap_flush_unused() iterates through all the PTEs in the kmap address
    space, using pte_to_page() to obtain the page. If the p2m and the m2p
    are inconsistent the incorrect page is returned. This will clear
    page->address on the wrong page which may cause subsequent oopses if
    that page is currently kmap'ed.

    Move the flush back between get_page and __set_phys_to_machine to fix
    this.

    Signed-off-by: Wei Liu
    Signed-off-by: David Vrabel
    Cc: stable@vger.kernel.org # 3.12+

    Wei Liu
     

20 Mar, 2014

1 commit

  • Subsystems that want to register CPU hotplug callbacks, as well as perform
    initialization for the CPUs that are already online, often do it as shown
    below:

    get_online_cpus();

    for_each_online_cpu(cpu)
    init_cpu(cpu);

    register_cpu_notifier(&foobar_cpu_notifier);

    put_online_cpus();

    This is wrong, since it is prone to ABBA deadlocks involving the
    cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
    with CPU hotplug operations).

    The xen balloon driver doesn't take get/put_online_cpus() around this code,
    but that is also buggy, since it can miss CPU hotplug events in between the
    initialization and callback registration:

    for_each_online_cpu(cpu)
    init_cpu(cpu);
    ^
    | Race window; Can miss CPU hotplug events here.
    v
    register_cpu_notifier(&foobar_cpu_notifier);

    Interestingly, the balloon code in xen can simply be reorganized as shown
    below, to have a race-free method to register hotplug callbacks, without even
    taking get/put_online_cpus(). This is because the initialization performed for
    already online CPUs is exactly the same as that performed for CPUs that come
    online later. Moreover, the code has checks in place to avoid double
    initialization.

    register_cpu_notifier(&foobar_cpu_notifier);

    get_online_cpus();

    for_each_online_cpu(cpu)
    init_cpu(cpu);

    put_online_cpus();

    A hotplug operation that occurs between registering the notifier and calling
    get_online_cpus(), won't disrupt anything, because the code takes care to
    perform the memory allocations only once.

    So reorganize the balloon code in xen this way to fix the issues with CPU
    hotplug callback registration.

    Cc: Konrad Rzeszutek Wilk
    Cc: David Vrabel
    Cc: Ingo Molnar
    Reviewed-by: Boris Ostrovsky
    Signed-off-by: Srivatsa S. Bhat
    Signed-off-by: Rafael J. Wysocki

    Srivatsa S. Bhat
     

06 Jan, 2014

1 commit


14 Dec, 2013

1 commit

  • The auto-xlat logic vs the non-xlat means that we don't need to for
    auto-xlat guests (like PVH, HVM or ARM):
    - use P2M
    - use scratch page.

    However the code in increase_reservation does modify the p2m for
    auto_translate guests, but not in decrease_reservation.

    Fix that by avoiding any p2m modifications in both increase_reservation
    and decrease_reservation for auto_translated guests.

    And also avoid allocating or using scratch pages for auto_translated guests.

    Lastly, since !auto-xlat is really another way of saying 'xen_pv'
    remove the redundant 'xen_pv_domain' check.

    Signed-off-by: Stefano Stabellini
    [v2: Updated the description]
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     

09 Nov, 2013

2 commits

  • commit 6efa20e49b9cb1db1ab66870cc37323474a75a13
    ("xen: Support 64-bit PV guest receiving NMIs") and
    commit cd9151e26d31048b2b5e00fd02e110e07d2200c9
    ( "xen/balloon: set a mapping for ballooned out pages")
    added new instances of __cpuinit usage.

    We removed this a couple versions ago; we now want to remove
    the compat no-op stubs. Introducing new users is not what
    we want to see at this point in time, as it will break once
    the stubs are gone.

    Cc: Konrad Rzeszutek Wilk
    Cc: Stefano Stabellini
    Signed-off-by: Paul Gortmaker
    Signed-off-by: Konrad Rzeszutek Wilk

    Paul Gortmaker
     
  • Currently balloon's initial value is set to max_pfn which includes
    non-RAM ranges such as MMIO hole. As result, initial memory target
    (specified by guest's configuration file) will appear smaller than
    what balloon driver perceives to be the current number of available
    pages. Thus it will balloon down "extra" pages, decreasing amount of
    available memory for no good reason.

    Signed-off-by: Boris Ostrovsky
    Signed-off-by: Konrad Rzeszutek Wilk

    Boris Ostrovsky
     

25 Sep, 2013

1 commit


12 Sep, 2013

2 commits


31 Aug, 2013

1 commit

  • In commit cd9151e2: xen/balloon: set a mapping for ballooned out pages
    we have the ballooned out page's mapping set to a scratch page.

    That commit also sets the P2M entry of ballooned out page to the scratch
    page's MFN. This is necessary for PV guest but not for HVM guest. On the
    other hand, setting the P2M entry would trigger BUG_ON in
    __set_phys_to_machine.

    The correct thing to do here is to avoid calling __set_phys_to_machine
    for auto translated guest.

    Signed-off-by: Wei Liu
    Cc: Stefano Stabellini
    Signed-off-by: Konrad Rzeszutek Wilk
    Acked-by: Stefano Stabellini

    Wei Liu
     

09 Aug, 2013

1 commit

  • Currently ballooned out pages are mapped to 0 and have INVALID_P2M_ENTRY
    in the p2m. These ballooned out pages are used to map foreign grants
    by gntdev and blkback (see alloc_xenballooned_pages).

    Allocate a page per cpu and map all the ballooned out pages to the
    corresponding mfn. Set the p2m accordingly. This way reading from a
    ballooned out page won't cause a kernel crash (see
    http://lists.xen.org/archives/html/xen-devel/2012-12/msg01154.html).

    Signed-off-by: Stefano Stabellini
    Reviewed-by: David Vrabel
    CC: alex@alex.org.uk
    CC: dcrisan@flexiant.com
    Signed-off-by: Konrad Rzeszutek Wilk

    Stefano Stabellini
     

04 Jul, 2013

2 commits

  • Merge first patch-bomb from Andrew Morton:
    - various misc bits
    - I'm been patchmonkeying ocfs2 for a while, as Joel and Mark have been
    distracted. There has been quite a bit of activity.
    - About half the MM queue
    - Some backlight bits
    - Various lib/ updates
    - checkpatch updates
    - zillions more little rtc patches
    - ptrace
    - signals
    - exec
    - procfs
    - rapidio
    - nbd
    - aoe
    - pps
    - memstick
    - tools/testing/selftests updates

    * emailed patches from Andrew Morton : (445 commits)
    tools/testing/selftests: don't assume the x bit is set on scripts
    selftests: add .gitignore for kcmp
    selftests: fix clean target in kcmp Makefile
    selftests: add .gitignore for vm
    selftests: add hugetlbfstest
    self-test: fix make clean
    selftests: exit 1 on failure
    kernel/resource.c: remove the unneeded assignment in function __find_resource
    aio: fix wrong comment in aio_complete()
    drivers/w1/slaves/w1_ds2408.c: add magic sequence to disable P0 test mode
    drivers/memstick/host/r592.c: convert to module_pci_driver
    drivers/memstick/host/jmb38x_ms: convert to module_pci_driver
    pps-gpio: add device-tree binding and support
    drivers/pps/clients/pps-gpio.c: convert to module_platform_driver
    drivers/pps/clients/pps-gpio.c: convert to devm_* helpers
    drivers/parport/share.c: use kzalloc
    Documentation/accounting/getdelays.c: avoid strncpy in accounting tool
    aoe: update internal version number to v83
    aoe: update copyright date
    aoe: perform I/O completions in parallel
    ...

    Linus Torvalds
     
  • Enhance adjust_managed_page_count() to adjust totalhigh_pages for
    highmem pages. And change code which directly adjusts totalram_pages to
    use adjust_managed_page_count() because it adjusts totalram_pages,
    totalhigh_pages and zone->managed_pages altogether in a safe way.

    Remove inc_totalhigh_pages() and dec_totalhigh_pages() from xen/balloon
    driver bacause adjust_managed_page_count() has already adjusted
    totalhigh_pages.

    This patch also fixes two bugs:

    1) enhances virtio_balloon driver to adjust totalhigh_pages when
    reserve/unreserve pages.
    2) enhance memory_hotplug.c to adjust totalhigh_pages when hot-removing
    memory.

    We still need to deal with modifications of totalram_pages in file
    arch/powerpc/platforms/pseries/cmm.c, but need help from PPC experts.

    [akpm@linux-foundation.org: remove ifdef, per Wanpeng Li, virtio_balloon.c cleanup, per Sergei]
    [akpm@linux-foundation.org: export adjust_managed_page_count() to modules, for drivers/virtio/virtio_balloon.c]
    Signed-off-by: Jiang Liu
    Cc: Chris Metcalf
    Cc: Rusty Russell
    Cc: "Michael S. Tsirkin"
    Cc: Konrad Rzeszutek Wilk
    Cc: Jeremy Fitzhardinge
    Cc: Wen Congyang
    Cc: Tang Chen
    Cc: Yasuaki Ishimatsu
    Cc: Mel Gorman
    Cc: Minchan Kim
    Cc: "H. Peter Anvin"
    Cc:
    Cc: Arnd Bergmann
    Cc: Catalin Marinas
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Ingo Molnar
    Cc: Jianguo Wu
    Cc: Joonsoo Kim
    Cc: Kamezawa Hiroyuki
    Cc: Marek Szyprowski
    Cc: Michel Lespinasse
    Cc: Rik van Riel
    Cc: Tejun Heo
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: Yinghai Lu
    Cc: Russell King
    Cc: Sergei Shtylyov
    Cc: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiang Liu
     

28 Jun, 2013

1 commit

  • Convert printks to pr_ (excludes printk(KERN_DEBUG...)
    to be more consistent throughout the xen subsystem.

    Add pr_fmt with KBUILD_MODNAME or "xen:" KBUILD_MODNAME
    Coalesce formats and add missing word spaces
    Add missing newlines
    Align arguments and reflow to 80 columns
    Remove DRV_NAME from formats as pr_fmt adds the same content

    This does change some of the prefixes of these messages
    but it also does make them more consistent.

    Signed-off-by: Joe Perches
    Signed-off-by: Konrad Rzeszutek Wilk

    Joe Perches
     

21 May, 2013

1 commit


29 Nov, 2012

1 commit

  • The ARM platform has no concept of PVMMU and therefor no
    HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
    when not required.

    In some similar situations (e.g. P2M) we have defined dummy functions
    to avoid this, however I think we can/should draw the line at dummying
    out actual hypercalls.

    Signed-off-by: Ian Campbell
    Signed-off-by: Konrad Rzeszutek Wilk

    Ian Campbell
     

20 Oct, 2012

2 commits


17 Nov, 2011

1 commit

  • If highmem pages are requested from the balloon on a system without
    highmem, the implementation of alloc_xenballooned_pages will allocate
    all available memory trying to find highmem pages to return. Allow
    low memory to be returned when highmem pages are requested to avoid
    this loop.

    Signed-off-by: Daniel De Graaf
    Signed-off-by: Konrad Rzeszutek Wilk

    Daniel De Graaf
     

07 Nov, 2011

1 commit

  • * 'stable/cleanups-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: use static initializers in xen-balloon.c
    Xen: fix braces and tabs coding style issue in xenbus_probe.c
    Xen: fix braces coding style issue in xenbus_probe.h
    Xen: fix whitespaces,tabs coding style issue in drivers/xen/pci.c
    Xen: fix braces coding style issue in gntdev.c and grant-table.c
    Xen: fix whitespaces,tabs coding style issue in drivers/xen/events.c
    Xen: fix whitespaces,tabs coding style issue in drivers/xen/balloon.c

    Fix up trivial whitespace-conflicts in
    drivers/xen/{balloon.c,pci.c,xenbus/xenbus_probe.c}

    Linus Torvalds
     

01 Nov, 2011

1 commit


25 Oct, 2011

1 commit

  • ….org/pub/scm/linux/kernel/git/konrad/xen

    * 'stable/bug.fixes-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen/p2m/debugfs: Make type_name more obvious.
    xen/p2m/debugfs: Fix potential pointer exception.
    xen/enlighten: Fix compile warnings and set cx to known value.
    xen/xenbus: Remove the unnecessary check.
    xen/irq: If we fail during msi_capability_init return proper error code.
    xen/events: Don't check the info for NULL as it is already done.
    xen/events: BUG() when we can't allocate our event->irq array.

    * 'stable/mmu.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xen: Fix selfballooning and ensure it doesn't go too far
    xen/gntdev: Fix sleep-inside-spinlock
    xen: modify kernel mappings corresponding to granted pages
    xen: add an "highmem" parameter to alloc_xenballooned_pages
    xen/p2m: Use SetPagePrivate and its friends for M2P overrides.
    xen/p2m: Make debug/xen/mmu/p2m visible again.
    Revert "xen/debug: WARN_ON when identity PFN has no _PAGE_IOMAP flag set."

    Linus Torvalds
     

29 Sep, 2011

1 commit

  • Allow the xen balloon driver to populate its list of extra pages from
    more than one region of memory. This will allow platforms to provide
    (for example) a region of low memory and a region of high memory.

    The maximum possible number of extra regions is 128 (== E820MAX) which
    is quite large so xen_extra_mem is placed in __initdata. This is safe
    as both xen_memory_setup() and balloon_init() are in __init.

    The balloon regions themselves are not altered (i.e., there is still
    only the one region).

    Signed-off-by: David Vrabel
    Signed-off-by: Konrad Rzeszutek Wilk

    David Vrabel