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
     

20 Aug, 2015

6 commits

  • Provide interfaces for recognizing accesses to PMU-related MSRs and
    LVTPC APIC and process these accesses in Xen PMU code.

    (The interrupt handler performs XENPMU_flush right away in the beginning
    since no PMU emulation is available. It will be added with a later patch).

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

    Boris Ostrovsky
     
  • Map shared data structure that will hold CPU registers, VPMU context,
    V/PCPU IDs of the CPU interrupted by PMU interrupt. Hypervisor fills
    this information in its handler and passes it to the guest for further
    processing.

    Set up PMU VIRQ.

    Now that perf infrastructure will assume that PMU is available on a PV
    guest we need to be careful and make sure that accesses via RDPMC
    instruction don't cause fatal traps by the hypervisor. Provide a nop
    RDPMC handler.

    For the same reason avoid issuing a warning on a write to APIC's LVTPC.

    Both of these will be made functional in later patches.

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

    Boris Ostrovsky
     
  • Set Xen's PMU mode via /sys/hypervisor/pmu/pmu_mode. Add XENPMU hypercall.

    Signed-off-by: Boris Ostrovsky
    Reviewed-by: Konrad Rzeszutek Wilk
    Signed-off-by: David Vrabel

    Boris Ostrovsky
     
  • Export Xen symbols to dom0 via /proc/xen/xensyms (similar to
    /proc/kallsyms).

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

    Boris Ostrovsky
     
  • Use the newest headers from the xen tree to get some new structure
    layouts.

    Signed-off-by: Juergen Gross
    Reviewed-by: David Vrabel
    Acked-by: Konrad Rzeszutek Wilk
    Signed-off-by: David Vrabel

    Juergen Gross
     
  • Currently, the event channel rebind code is gated with the presence of
    the vector callback.

    The virtual interrupt controller on ARM has the concept of per-CPU
    interrupt (PPI) which allow us to support per-VCPU event channel.
    Therefore there is no need of vector callback for ARM.

    Xen is already using a free PPI to notify the guest VCPU of an event.
    Furthermore, the xen code initialization in Linux (see
    arch/arm/xen/enlighten.c) is requesting correctly a per-CPU IRQ.

    Introduce new helper xen_support_evtchn_rebind to allow architecture
    decide whether rebind an event is support or not. It will always return
    true on ARM and keep the same behavior on x86.

    This is also allow us to drop the usage of xen_have_vector_callback
    entirely in the ARM code.

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

    Julien Grall
     

20 May, 2015

1 commit

  • A non-percpu VIRQ (e.g., VIRQ_CONSOLE) may be freed on a different
    VCPU than it is bound to. This can result in a race between
    handle_percpu_irq() and removing the action in __free_irq() because
    handle_percpu_irq() does not take desc->lock. The interrupt handler
    sees a NULL action and oopses.

    Only use the percpu chip/handler for per-CPU VIRQs (like VIRQ_TIMER).

    # cat /proc/interrupts | grep virq
    40: 87246 0 xen-percpu-virq timer0
    44: 0 0 xen-percpu-virq debug0
    47: 0 20995 xen-percpu-virq timer1
    51: 0 0 xen-percpu-virq debug1
    69: 0 0 xen-dyn-virq xen-pcpu
    74: 0 0 xen-dyn-virq mce
    75: 29 0 xen-dyn-virq hvc_console

    Signed-off-by: David Vrabel
    Cc:

    David Vrabel
     

30 Apr, 2015

1 commit

  • Commit 77e32c89a711 ("clockevents: Manage device's state separately for
    the core") decouples clockevent device's modes from states. With this
    change when a Xen guest tries to resume, it won't be calling its
    set_mode op which needs to be done on each VCPU in order to make the
    hypervisor aware that we are in oneshot mode.

    This happens because clockevents_tick_resume() (which is an intermediate
    step of resuming ticks on a processor) doesn't call clockevents_set_state()
    anymore and because during suspend clockevent devices on all VCPUs (except
    for the one doing the suspend) are left in ONESHOT state. As result, during
    resume the clockevents state machine will assume that device is already
    where it should be and doesn't need to be updated.

    To avoid this problem we should suspend ticks on all VCPUs during
    suspend.

    Signed-off-by: Boris Ostrovsky
    Signed-off-by: David Vrabel

    Boris Ostrovsky
     

27 Apr, 2015

1 commit


15 Apr, 2015

1 commit

  • Originally Xen PV drivers only use single-page ring to pass along
    information. This might limit the throughput between frontend and
    backend.

    The patch extends Xenbus driver to support multi-page ring, which in
    general should improve throughput if ring is the bottleneck. Changes to
    various frontend / backend to adapt to the new interface are also
    included.

    Affected Xen drivers:
    * blkfront/back
    * netfront/back
    * pcifront/back
    * scsifront/back
    * vtpmfront

    The interface is documented, as before, in xenbus_client.c.

    Signed-off-by: Wei Liu
    Signed-off-by: Paul Durrant
    Signed-off-by: Bob Liu
    Cc: Konrad Wilk
    Cc: Boris Ostrovsky
    Signed-off-by: David Vrabel

    Wei Liu
     

16 Mar, 2015

3 commits

  • Make the IOCTL_PRIVCMD_MMAPBATCH_V2 (and older V1 version) map
    multiple frames at a time rather than one at a time, despite the pages
    being non-consecutive GFNs.

    xen_remap_foreign_mfn_array() is added which maps an array of GFNs
    (instead of a consecutive range of GFNs).

    Since per-frame errors are returned in an array, privcmd must set the
    MMAPBATCH_V1 error bits as part of the "report errors" phase, after
    all the frames are mapped.

    Migrate times are significantly improved (when using a PV toolstack
    domain). For example, for an idle 12 GiB PV guest:

    Before After
    real 0m38.179s 0m26.868s
    user 0m15.096s 0m13.652s
    sys 0m28.988s 0m18.732s

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

    David Vrabel
     
  • Auto-translated physmap guests (arm, arm64 and x86 PVHVM/PVH) map and
    unmap foreign GFNs using the same method (updating the physmap).
    Unify the two arm and x86 implementations into one commont one.

    Note that on arm and arm64, the correct error code will be returned
    (instead of always -EFAULT) and map/unmap failure warnings are no
    longer printed. These changes are required if the foreign domain is
    paging (-ENOENT failures are expected and must be propagated up to the
    caller).

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

    David Vrabel
     
  • The header include/xen/interface/xen.h doesn't contain all definitions
    from Xen's version of that header. Update it accordingly.

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

    Juergen Gross
     

02 Mar, 2015

1 commit


24 Feb, 2015

1 commit

  • Hypercalls submitted by user space tools via the privcmd driver can
    take a long time (potentially many 10s of seconds) if the hypercall
    has many sub-operations.

    A fully preemptible kernel may deschedule such as task in any upcall
    called from a hypercall continuation.

    However, in a kernel with voluntary or no preemption, hypercall
    continuations in Xen allow event handlers to be run but the task
    issuing the hypercall will not be descheduled until the hypercall is
    complete and the ioctl returns to user space. These long running
    tasks may also trigger the kernel's soft lockup detection.

    Add xen_preemptible_hcall_begin() and xen_preemptible_hcall_end() to
    bracket hypercalls that may be preempted. Use these in the privcmd
    driver.

    When returning from an upcall, call xen_maybe_preempt_hcall() which
    adds a schedule point if if the current task was within a preemptible
    hypercall.

    Since _cond_resched() can move the task to a different CPU, clear and
    set xen_in_preemptible_hcall around the call.

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

    David Vrabel
     

11 Feb, 2015

1 commit

  • Pull networking updates from David Miller:

    1) More iov_iter conversion work from Al Viro.

    [ The "crypto: switch af_alg_make_sg() to iov_iter" commit was
    wrong, and this pull actually adds an extra commit on top of the
    branch I'm pulling to fix that up, so that the pre-merge state is
    ok. - Linus ]

    2) Various optimizations to the ipv4 forwarding information base trie
    lookup implementation. From Alexander Duyck.

    3) Remove sock_iocb altogether, from CHristoph Hellwig.

    4) Allow congestion control algorithm selection via routing metrics.
    From Daniel Borkmann.

    5) Make ipv4 uncached route list per-cpu, from Eric Dumazet.

    6) Handle rfs hash collisions more gracefully, also from Eric Dumazet.

    7) Add xmit_more support to r8169, e1000, and e1000e drivers. From
    Florian Westphal.

    8) Transparent Ethernet Bridging support for GRO, from Jesse Gross.

    9) Add BPF packet actions to packet scheduler, from Jiri Pirko.

    10) Add support for uniqu flow IDs to openvswitch, from Joe Stringer.

    11) New NetCP ethernet driver, from Muralidharan Karicheri and Wingman
    Kwok.

    12) More sanely handle out-of-window dupacks, which can result in
    serious ACK storms. From Neal Cardwell.

    13) Various rhashtable bug fixes and enhancements, from Herbert Xu,
    Patrick McHardy, and Thomas Graf.

    14) Support xmit_more in be2net, from Sathya Perla.

    15) Group Policy extensions for vxlan, from Thomas Graf.

    16) Remove Checksum Offload support for vxlan, from Tom Herbert.

    17) Like ipv4, support lockless transmit over ipv6 UDP sockets. From
    Vlad Yasevich.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1494+1 commits)
    crypto: fix af_alg_make_sg() conversion to iov_iter
    ipv4: Namespecify TCP PMTU mechanism
    i40e: Fix for stats init function call in Rx setup
    tcp: don't include Fast Open option in SYN-ACK on pure SYN-data
    openvswitch: Only set TUNNEL_VXLAN_OPT if VXLAN-GBP metadata is set
    ipv6: Make __ipv6_select_ident static
    ipv6: Fix fragment id assignment on LE arches.
    bridge: Fix inability to add non-vlan fdb entry
    net: Mellanox: Delete unnecessary checks before the function call "vunmap"
    cxgb4: Add support in cxgb4 to get expansion rom version via ethtool
    ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version
    net: dsa: Remove redundant phy_attach()
    IB/mlx4: Reset flow support for IB kernel ULPs
    IB/mlx4: Always use the correct port for mirrored multicast attachments
    net/bonding: Fix potential bad memory access during bonding events
    tipc: remove tipc_snprintf
    tipc: nl compat add noop and remove legacy nl framework
    tipc: convert legacy nl stats show to nl compat
    tipc: convert legacy nl net id get to nl compat
    tipc: convert legacy nl net id set to nl compat
    ...

    Linus Torvalds