07 Oct, 2016

1 commit

  • Pull xen updates from David Vrabel:
    "xen features and fixes for 4.9:

    - switch to new CPU hotplug mechanism

    - support driver_override in pciback

    - require vector callback for HVM guests (the alternate mechanism via
    the platform device has been broken for ages)"

    * tag 'for-linus-4.9-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/x86: Update topology map for PV VCPUs
    xen/x86: Initialize per_cpu(xen_vcpu, 0) a little earlier
    xen/pciback: support driver_override
    xen/pciback: avoid multiple entries in slot list
    xen/pciback: simplify pcistub device handling
    xen: Remove event channel notification through Xen PCI platform device
    xen/events: Convert to hotplug state machine
    xen/x86: Convert to hotplug state machine
    x86/xen: add missing \n at end of printk warning message
    xen/grant-table: Use kmalloc_array() in arch_gnttab_valloc()
    xen: Make VPMU init message look less scary
    xen: rename xen_pmu_init() in sys-hypervisor.c
    hotplug: Prevent alloc/free of irq descriptors during cpu up/down (again)
    xen/x86: Move irq allocation from Xen smp_op.cpu_up()

    Linus Torvalds
     

30 Sep, 2016

1 commit

  • Ever since commit 254d1a3f02eb ("xen/pv-on-hvm kexec: shutdown watches
    from old kernel") using the INTx interrupt from Xen PCI platform
    device for event channel notification would just lockup the guest
    during bootup. postcore_initcall now calls xs_reset_watches which
    will eventually try to read a value from XenStore and will get stuck
    on read_reply at XenBus forever since the platform driver is not
    probed yet and its INTx interrupt handler is not registered yet. That
    means that the guest can not be notified at this moment of any pending
    event channels and none of the per-event handlers will ever be invoked
    (including the XenStore one) and the reply will never be picked up by
    the kernel.

    The exact stack where things get stuck during xenbus_init:

    -xenbus_init
    -xs_init
    -xs_reset_watches
    -xenbus_scanf
    -xenbus_read
    -xs_single
    -xs_single
    -xs_talkv

    Vector callbacks have always been the favourite event notification
    mechanism since their introduction in commit 38e20b07efd5 ("x86/xen:
    event channels delivery on HVM.") and the vector callback feature has
    always been advertised for quite some time by Xen that's why INTx was
    broken for several years now without impacting anyone.

    Luckily this also means that event channel notification through INTx
    is basically dead-code which can be safely removed without impacting
    anybody since it has been effectively disabled for more than 4 years
    with nobody complaining about it (at least as far as I'm aware of).

    This commit removes event channel notification through Xen PCI
    platform device.

    Cc: Boris Ostrovsky
    Cc: David Vrabel
    Cc: Juergen Gross
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: x86@kernel.org
    Cc: Konrad Rzeszutek Wilk
    Cc: Bjorn Helgaas
    Cc: Stefano Stabellini
    Cc: Julien Grall
    Cc: Vitaly Kuznetsov
    Cc: Paul Gortmaker
    Cc: Ross Lagerwall
    Cc: xen-devel@lists.xenproject.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-pci@vger.kernel.org
    Cc: Anthony Liguori
    Signed-off-by: KarimAllah Ahmed
    Reviewed-by: Boris Ostrovsky
    Signed-off-by: David Vrabel

    KarimAllah Ahmed
     

05 Sep, 2016

1 commit

  • Import the actual version of include/xen/interface/sched.h from Xen.

    Signed-off-by: Juergen Gross
    Signed-off-by: Peter Zijlstra (Intel)
    Acked-by: David Vrabel
    Cc: Douglas_Warzecha@dell.com
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: akataria@vmware.com
    Cc: boris.ostrovsky@oracle.com
    Cc: chrisw@sous-sol.org
    Cc: hpa@zytor.com
    Cc: jdelvare@suse.com
    Cc: jeremy@goop.org
    Cc: linux@roeck-us.net
    Cc: pali.rohar@gmail.com
    Cc: rusty@rustcorp.com.au
    Cc: virtualization@lists.linux-foundation.org
    Cc: xen-devel@lists.xenproject.org
    Link: http://lkml.kernel.org/r/1472453327-19050-2-git-send-email-jgross@suse.com
    Signed-off-by: Ingo Molnar

    Juergen Gross
     

25 Aug, 2016

1 commit

  • We pass xen_vcpu_id mapping information to hypercalls which require
    uint32_t type so it would be cleaner to have it as uint32_t. The
    initializer to -1 can be dropped as we always do the mapping before using
    it and we never check the 'not set' value anyway.

    Signed-off-by: Vitaly Kuznetsov
    Signed-off-by: David Vrabel

    Vitaly Kuznetsov
     

04 Aug, 2016

1 commit

  • The dma-mapping core and the implementations do not change the DMA
    attributes passed by pointer. Thus the pointer can point to const data.
    However the attributes do not have to be a bitfield. Instead unsigned
    long will do fine:

    1. This is just simpler. Both in terms of reading the code and setting
    attributes. Instead of initializing local attributes on the stack
    and passing pointer to it to dma_set_attr(), just set the bits.

    2. It brings safeness and checking for const correctness because the
    attributes are passed by value.

    Semantic patches for this change (at least most of them):

    virtual patch
    virtual context

    @r@
    identifier f, attrs;

    @@
    f(...,
    - struct dma_attrs *attrs
    + unsigned long attrs
    , ...)
    {
    ...
    }

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    and

    // Options: --all-includes
    virtual patch
    virtual context

    @r@
    identifier f, attrs;
    type t;

    @@
    t f(..., struct dma_attrs *attrs);

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Vineet Gupta
    Acked-by: Robin Murphy
    Acked-by: Hans-Christian Noren Egtvedt
    Acked-by: Mark Salter [c6x]
    Acked-by: Jesper Nilsson [cris]
    Acked-by: Daniel Vetter [drm]
    Reviewed-by: Bart Van Assche
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Fabien Dessenne [bdisp]
    Reviewed-by: Marek Szyprowski [vb2-core]
    Acked-by: David Vrabel [xen]
    Acked-by: Konrad Rzeszutek Wilk [xen swiotlb]
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Richard Kuo [hexagon]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Gerald Schaefer [s390]
    Acked-by: Bjorn Andersson
    Acked-by: Hans-Christian Noren Egtvedt [avr32]
    Acked-by: Vineet Gupta [arc]
    Acked-by: Robin Murphy [arm64 and dma-iommu]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     

26 Jul, 2016

1 commit


25 Jul, 2016

1 commit

  • It may happen that Xen's and Linux's ideas of vCPU id diverge. In
    particular, when we crash on a secondary vCPU we may want to do kdump
    and unlike plain kexec where we do migrate_to_reboot_cpu() we try
    booting on the vCPU which crashed. This doesn't work very well for
    PVHVM guests as we have a number of hypercalls where we pass vCPU id
    as a parameter. These hypercalls either fail or do something
    unexpected.

    To solve the issue introduce percpu xen_vcpu_id mapping. ARM and PV
    guests get direct mapping for now. Boot CPU for PVHVM guest gets its
    id from CPUID. With secondary CPUs it is a bit more
    trickier. Currently, we initialize IPI vectors before these CPUs boot
    so we can't use CPUID. Use ACPI ids from MADT instead.

    Signed-off-by: Vitaly Kuznetsov
    Signed-off-by: David Vrabel

    Vitaly Kuznetsov
     

06 Jul, 2016

7 commits


06 Apr, 2016

1 commit

  • Commit 1084b1988d22dc165c9dbbc2b0e057f9248ac4db (xen: Add Xen specific
    page definition) caused a regression in 4.4.

    The xen functions to convert between pages and pfns fail due to an
    overflow on systems where a physical address may not fit in an
    unsigned long (e.g. x86 32 bit PAE systems). Rework the conversion to
    avoid overflow. This should also result in simpler object code.

    This bug manifested itself as disk corruption with Linux 4.4 when
    using blkfront in a Xen HVM x86 32 bit guest with more than 4 GiB of
    memory.

    Signed-off-by: Ross Lagerwall
    Cc: # 4.4+
    Signed-off-by: David Vrabel

    Ross Lagerwall
     

14 Mar, 2016

1 commit

  • The canonical netif header (in the Xen source repo) and the Linux variant
    have diverged significantly. Recently much documentation has been added to
    the canonical header which is highly useful for developers making
    modifications to either xen-netfront or xen-netback. This patch therefore
    re-imports the canonical header in its entirity.

    To maintain compatibility and some style consistency with the old Linux
    variant, the header was stripped of its emacs boilerplate, and
    post-processed and copied into place with the following commands:

    ed -s netif.h << EOF
    H
    ,s/NETTXF_/XEN_NETTXF_/g
    ,s/NETRXF_/XEN_NETRXF_/g
    ,s/NETIF_/XEN_NETIF_/g
    ,s/XEN_XEN_/XEN_/g
    ,s/netif/xen_netif/g
    ,s/xen_xen_/xen_/g
    ,s/^typedef.*$//g
    ,s/^ /${TAB}/g
    w
    $
    w
    EOF

    indent --line-length 80 --linux-style netif.h \
    -o include/xen/interface/io/netif.h

    Signed-off-by: Paul Durrant
    Cc: Konrad Rzeszutek Wilk
    Cc: Boris Ostrovsky
    Cc: David Vrabel
    Cc: Wei Liu
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Paul Durrant
     

22 Jan, 2016

1 commit

  • Pull block driver updates from Jens Axboe:
    "This is the block driver pull request for 4.5, with the exception of
    NVMe, which is in a separate branch and will be posted after this one.

    This pull request contains:

    - A set of bcache stability fixes, which have been acked by Kent.
    These have been used and tested for more than a year by the
    community, so it's about time that they got in.

    - A set of drbd updates from the drbd team (Andreas, Lars, Philipp)
    and Markus Elfring, Oleg Drokin.

    - A set of fixes for xen blkback/front from the usual suspects, (Bob,
    Konrad) as well as community based fixes from Kiri, Julien, and
    Peng.

    - A 2038 time fix for sx8 from Shraddha, with a fix from me.

    - A small mtip32xx cleanup from Zhu Yanjun.

    - A null_blk division fix from Arnd"

    * 'for-4.5/drivers' of git://git.kernel.dk/linux-block: (71 commits)
    null_blk: use sector_div instead of do_div
    mtip32xx: restrict variables visible in current code module
    xen/blkfront: Fix crash if backend doesn't follow the right states.
    xen/blkback: Fix two memory leaks.
    xen/blkback: make st_ statistics per ring
    xen/blkfront: Handle non-indirect grant with 64KB pages
    xen-blkfront: Introduce blkif_ring_get_request
    xen-blkback: clear PF_NOFREEZE for xen_blkif_schedule()
    xen/blkback: Free resources if connect_ring failed.
    xen/blocks: Return -EXX instead of -1
    xen/blkback: make pool of persistent grants and free pages per-queue
    xen/blkback: get the number of hardware queues/rings from blkfront
    xen/blkback: pseudo support for multi hardware queues/rings
    xen/blkback: separate ring information out of struct xen_blkif
    xen/blkfront: correct setting for xen_blkif_max_ring_order
    xen/blkfront: make persistent grants pool per-queue
    xen/blkfront: Remove duplicate setting of ->xbdev.
    xen/blkfront: Cleanup of comments, fix unaligned variables, and syntax errors.
    xen/blkfront: negotiate number of queues/rings to be used with backend
    xen/blkfront: split per device io_lock
    ...

    Linus Torvalds
     

19 Jan, 2016

1 commit

  • Pull virtio barrier rework+fixes from Michael Tsirkin:
    "This adds a new kind of barrier, and reworks virtio and xen to use it.

    Plus some fixes here and there"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (44 commits)
    checkpatch: add virt barriers
    checkpatch: check for __smp outside barrier.h
    checkpatch.pl: add missing memory barriers
    virtio: make find_vqs() checkpatch.pl-friendly
    virtio_balloon: fix race between migration and ballooning
    virtio_balloon: fix race by fill and leak
    s390: more efficient smp barriers
    s390: use generic memory barriers
    xen/events: use virt_xxx barriers
    xen/io: use virt_xxx barriers
    xenbus: use virt_xxx barriers
    virtio_ring: use virt_store_mb
    sh: move xchg_cmpxchg to a header by itself
    sh: support 1 and 2 byte xchg
    virtio_ring: update weak barriers to use virt_xxx
    Revert "virtio_ring: Update weak barriers to use dma_wmb/rmb"
    asm-generic: implement virt_xxx memory barriers
    x86: define __smp_xxx
    xtensa: define __smp_xxx
    tile: define __smp_xxx
    ...

    Linus Torvalds
     

13 Jan, 2016

1 commit

  • include/xen/interface/io/ring.h uses
    full memory barriers to communicate with the other side.

    For guests compiled with CONFIG_SMP, smp_wmb and smp_mb
    would be sufficient, so mb() and wmb() here are only needed if
    a non-SMP guest runs on an SMP host.

    Switch to virt_xxx barriers which serve this exact purpose.

    Signed-off-by: Michael S. Tsirkin
    Acked-by: David Vrabel
    Acked-by: Peter Zijlstra (Intel)

    Michael S. Tsirkin
     

04 Jan, 2016

1 commit


21 Dec, 2015

3 commits


18 Dec, 2015

1 commit

  • Using RING_GET_REQUEST() on a shared ring is easy to use incorrectly
    (i.e., by not considering that the other end may alter the data in the
    shared ring while it is being inspected). Safe usage of a request
    generally requires taking a local copy.

    Provide a RING_COPY_REQUEST() macro to use instead of
    RING_GET_REQUEST() and an open-coded memcpy(). This takes care of
    ensuring that the copy is done correctly regardless of any possible
    compiler optimizations.

    Use a volatile source to prevent the compiler from reordering or
    omitting the copy.

    This is part of XSA155.

    CC: stable@vger.kernel.org
    Signed-off-by: David Vrabel
    Signed-off-by: Konrad Rzeszutek Wilk

    David Vrabel
     

23 Oct, 2015

9 commits

  • With the 64KB page granularity support on ARM64, a Linux page may be
    split accross multiple grant.

    Currently we have the helper gnttab_foreach_grant_in_grant to break a
    Linux page based on an offset and a len, but it doesn't fit when we only
    have a number of grants in hand.

    Introduce a new helper which take an array of Linux page and a number of
    grant and will figure out the address of each grant.

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

    Julien Grall
     
  • Linux may use a different page size than the size of grant. So make
    clear that the order is actually in number of grant.

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

    Julien Grall
     
  • Many PV drivers contain the idiom:

    pfn = page_to_gfn(...) /* Or similar */
    gnttab_grant_foreign_access_ref

    Replace it by a new helper. Note that when Linux is using a different
    page granularity than Xen, the helper only gives access to the first 4KB
    grant.

    This is useful where drivers are allocating a full Linux page for each
    grant.

    Also include xen/interface/grant_table.h rather than xen/grant_table.h in
    asm/page.h for x86 to fix a compilation issue [1]. Only the former is
    useful in order to get the structure definition.

    [1] Interdependency between asm/page.h and xen/grant_table.h which result
    to page_mfn not being defined when necessary.

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

    Julien Grall
     
  • Currently, a grant is always based on the Xen page granularity (i.e
    4KB). When Linux is using a different page granularity, a single page
    will be split between multiple grants.

    The new helpers will be in charge of splitting the Linux page into grants
    and call a function given by the caller on each grant.

    Also provide an helper to count the number of grants within a given
    contiguous region.

    Note that the x86/include/asm/xen/page.h is now including
    xen/interface/grant_table.h rather than xen/grant_table.h. It's
    necessary because xen/grant_table.h depends on asm/xen/page.h and will
    break the compilation. Furthermore, only definition in
    interface/grant_table.h is required.

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

    Julien Grall
     
  • The Xen hypercall interface is always using 4K page granularity on ARM
    and x86 architecture.

    With the incoming support of 64K page granularity for ARM64 guest, it
    won't be possible to re-use the Linux page definition in Xen drivers.

    Introduce Xen page definition helpers based on the Linux page
    definition. They have exactly the same name but prefixed with
    XEN_/xen_ prefix.

    Also modify xen_page_to_gfn to use new Xen page definition.

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

    Julien Grall
     
  • 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
     
  • 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
     
  • Commit 0bb599fd30108883b00c7d4a226eeb49111e6932 (xen: remove scratch
    frames for ballooned pages and m2p override) removed the use of the
    scratch page for ballooned out pages.

    Remove some left over function definitions.

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

    David Vrabel
     

28 Sep, 2015

1 commit

  • Currently there is a number of issues preventing PVHVM Xen guests from
    doing successful kexec/kdump:

    - Bound event channels.
    - Registered vcpu_info.
    - PIRQ/emuirq mappings.
    - shared_info frame after XENMAPSPACE_shared_info operation.
    - Active grant mappings.

    Basically, newly booted kernel stumbles upon already set up Xen
    interfaces and there is no way to reestablish them. In Xen-4.7 a new
    feature called 'soft reset' is coming. A guest performing kexec/kdump
    operation is supposed to call SCHEDOP_shutdown hypercall with
    SHUTDOWN_soft_reset reason before jumping to new kernel. Hypervisor
    (with some help from toolstack) will do full domain cleanup (but
    keeping its memory and vCPU contexts intact) returning the guest to
    the state it had when it was first booted and thus allowing it to
    start over.

    Doing SHUTDOWN_soft_reset on Xen hypervisors which don't support it is
    probably OK as by default all unknown shutdown reasons cause domain
    destroy with a message in toolstack log: 'Unknown shutdown reason code
    5. Destroying domain.' which gives a clue to what the problem is and
    eliminates false expectations.

    Signed-off-by: Vitaly Kuznetsov
    Cc:
    Signed-off-by: David Vrabel

    Vitaly Kuznetsov
     

11 Sep, 2015

1 commit

  • Pull xen terminology fixes from David Vrabel:
    "Use the correct GFN/BFN terms more consistently"

    * tag 'for-linus-4.3-rc0b-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/xenbus: Rename the variable xen_store_mfn to xen_store_gfn
    xen/privcmd: Further s/MFN/GFN/ clean-up
    hvc/xen: Further s/MFN/GFN clean-up
    video/xen-fbfront: Further s/MFN/GFN clean-up
    xen/tmem: Use xen_page_to_gfn rather than pfn_to_gfn
    xen: Use correctly the Xen memory terminologies
    arm/xen: implement correctly pfn_to_mfn
    xen: Make clear that swiotlb and biomerge are dealing with DMA address

    Linus Torvalds
     

09 Sep, 2015

3 commits

  • Pull xen updates from David Vrabel:
    "Xen features and fixes for 4.3:

    - Convert xen-blkfront to the multiqueue API
    - [arm] Support binding event channels to different VCPUs.
    - [x86] Support > 512 GiB in a PV guests (off by default as such a
    guest cannot be migrated with the current toolstack).
    - [x86] PMU support for PV dom0 (limited support for using perf with
    Xen and other guests)"

    * tag 'for-linus-4.3-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (33 commits)
    xen: switch extra memory accounting to use pfns
    xen: limit memory to architectural maximum
    xen: avoid another early crash of memory limited dom0
    xen: avoid early crash of memory limited dom0
    arm/xen: Remove helpers which are PV specific
    xen/x86: Don't try to set PCE bit in CR4
    xen/PMU: PMU emulation code
    xen/PMU: Intercept PMU-related MSR and APIC accesses
    xen/PMU: Describe vendor-specific PMU registers
    xen/PMU: Initialization code for Xen PMU
    xen/PMU: Sysfs interface for setting Xen PMU mode
    xen: xensyms support
    xen: remove no longer needed p2m.h
    xen: allow more than 512 GB of RAM for 64 bit pv-domains
    xen: move p2m list if conflicting with e820 map
    xen: add explicit memblock_reserve() calls for special pages
    mm: provide early_memremap_ro to establish read-only mapping
    xen: check for initrd conflicting with e820 map
    xen: check pre-allocated page tables for conflict with memory map
    xen: check for kernel memory conflicting with memory layout
    ...

    Linus Torvalds
     
  • The privcmd code is mixing the usage of GFN and MFN within the same
    functions which make the code difficult to understand when you only work
    with auto-translated guests.

    The privcmd driver is only dealing with GFN so replace all the mention
    of MFN into GFN.

    The ioctl structure used to map foreign change has been left unchanged
    given that the userspace is using it. Nonetheless, add a comment to
    explain the expected value within the "mfn" field.

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

    Julien Grall
     
  • 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
     

03 Sep, 2015

1 commit

  • Xen's PV network protocol includes messages to add/remove ethernet
    multicast addresses to/from a filter list in the backend. This allows
    the frontend to request the backend only forward multicast packets
    which are of interest thus preventing unnecessary noise on the shared
    ring.

    The canonical netif header in git://xenbits.xen.org/xen.git specifies
    the message format (two more XEN_NETIF_EXTRA_TYPEs) so the minimal
    necessary changes have been pulled into include/xen/interface/io/netif.h.

    To prevent the frontend from extending the multicast filter list
    arbitrarily a limit (XEN_NETBK_MCAST_MAX) has been set to 64 entries.
    This limit is not specified by the protocol and so may change in future.
    If the limit is reached then the next XEN_NETIF_EXTRA_TYPE_MCAST_ADD
    sent by the frontend will be failed with NETIF_RSP_ERROR.

    Signed-off-by: Paul Durrant
    Cc: Ian Campbell
    Cc: Wei Liu
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Paul Durrant