qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 06329c: mem: add share parameter to memory-ba


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 06329c: mem: add share parameter to memory-backend-ram
Date: Mon, 19 Feb 2018 08:43:32 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 06329ccecfa022494fdba288b3ab5bcb8dff4159
      
https://github.com/qemu/qemu/commit/06329ccecfa022494fdba288b3ab5bcb8dff4159
  Author: Marcel Apfelbaum <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M backends/hostmem-file.c
    M backends/hostmem-ram.c
    M backends/hostmem.c
    M exec.c
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/qemu/osdep.h
    M include/sysemu/hostmem.h
    M include/sysemu/kvm.h
    M memory.c
    M qemu-options.hx
    M target/s390x/kvm.c
    M util/oslib-posix.c
    M util/oslib-win32.c

  Log Message:
  -----------
  mem: add share parameter to memory-backend-ram

Currently only file backed memory backend can
be created with a "share" flag in order to allow
sharing guest RAM with other processes in the host.

Add the "share" flag also to RAM Memory Backend
in order to allow remapping parts of the guest RAM
to different host virtual addresses. This is needed
by the RDMA devices in order to remap non-contiguous
QEMU virtual addresses to a contiguous virtual address range.

Moved the "share" flag to the Host Memory base class,
modified phys_mem_alloc to include the new parameter
and a new interface memory_region_init_ram_shared_nomigrate.

There are no functional changes if the new flag is not used.

Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: edab56321a0da3337adc3f9605d097d2606ab12c
      
https://github.com/qemu/qemu/commit/edab56321a0da3337adc3f9605d097d2606ab12c
  Author: Marcel Apfelbaum <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    A docs/pvrdma.txt

  Log Message:
  -----------
  docs: add pvrdma device documentation.

Signed-off-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>
Reviewed-by: Shamir Rabinovitch <address@hidden>


  Commit: e1c5f1f04a0857bd030a8917050ac5a61f42e5ab
      
https://github.com/qemu/qemu/commit/e1c5f1f04a0857bd030a8917050ac5a61f42e5ab
  Author: Marcel Apfelbaum <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M scripts/update-linux-headers.sh

  Log Message:
  -----------
  scripts/update-linux-headers: import pvrdma headers

Modify the script to import the headers used by the pvrdma device.
Part of them are interfaces between the guest driver and the device,
import them under include/standart-headers/drivers/infiniband/... .

Remove the unused functions from pvrdma_verbs.h avoiding the
unnecessary import of several infiniband/networking/other headers.

Reviewed-by: Gal Hammer <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>


  Commit: 7605e12a512ad87b764cda6554724e7f84ded18d
      
https://github.com/qemu/qemu/commit/7605e12a512ad87b764cda6554724e7f84ded18d
  Author: Marcel Apfelbaum <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    A include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h
    A include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h
    A include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h
    A include/standard-headers/rdma/vmw_pvrdma-abi.h

  Log Message:
  -----------
  include/standard-headers: add pvrdma related headers

Import the headers used by the pvrdma device.
Part of them are interfaces between the guest driver and the device,
imported under include/standart-headers/drivers/infiniband/... .

Signed-off-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>


  Commit: dcbf469aeffb3b307d2bc5331797d67979b715e3
      
https://github.com/qemu/qemu/commit/dcbf469aeffb3b307d2bc5331797d67979b715e3
  Author: Yuval Shaia <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M hw/Makefile.objs
    A hw/rdma/Makefile.objs
    A hw/rdma/rdma_utils.c
    A hw/rdma/rdma_utils.h

  Log Message:
  -----------
  hw/rdma: Add wrappers and macros

As all mapping for this device are from driver to device,
declare wrappers on top of pci_dma_*map functions.

In addition, declare macros to be used for debug messages.

Reviewed-by: Dotan Barak <address@hidden>
Reviewed-by: Zhu Yanjun <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: b3a92277690dcf8a780919c153df9b9f30d51658
      
https://github.com/qemu/qemu/commit/b3a92277690dcf8a780919c153df9b9f30d51658
  Author: Yuval Shaia <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    A hw/rdma/rdma_backend_defs.h
    A hw/rdma/rdma_rm_defs.h

  Log Message:
  -----------
  hw/rdma: Definitions for rdma device and rdma resource manager

Definition of various structures and constants used in backend and
resource manager modules.

Reviewed-by: Dotan Barak <address@hidden>
Reviewed-by: Zhu Yanjun <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: ef6d4ccdc9eba3c184da08e76d52e5003325680b
      
https://github.com/qemu/qemu/commit/ef6d4ccdc9eba3c184da08e76d52e5003325680b
  Author: Yuval Shaia <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M Makefile.objs
    M configure
    M hw/rdma/Makefile.objs
    A hw/rdma/rdma_backend.c
    A hw/rdma/rdma_backend.h
    A hw/rdma/rdma_rm.c
    A hw/rdma/rdma_rm.h
    A hw/rdma/trace-events

  Log Message:
  -----------
  hw/rdma: Implementation of generic rdma device layers

This layer is composed of two sub-modules, backend and resource manager.
Backend sub-module is responsible for all the interaction with IB layers
such as ibverbs and umad (external libraries).
Resource manager is a collection of functions and structures to manage
RDMA resources such as QPs, CQs and MRs.

Reviewed-by: Dotan Barak <address@hidden>
Reviewed-by: Zhu Yanjun <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 98d176f8e592d29a6d66ea969a15fc0caabd37cc
      
https://github.com/qemu/qemu/commit/98d176f8e592d29a6d66ea969a15fc0caabd37cc
  Author: Yuval Shaia <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M hw/rdma/Makefile.objs
    A hw/rdma/vmw/pvrdma.h
    A hw/rdma/vmw/pvrdma_cmd.c
    A hw/rdma/vmw/pvrdma_dev_ring.c
    A hw/rdma/vmw/pvrdma_dev_ring.h
    A hw/rdma/vmw/pvrdma_qp_ops.c
    A hw/rdma/vmw/pvrdma_qp_ops.h

  Log Message:
  -----------
  hw/rdma: PVRDMA commands and data-path ops

First PVRDMA sub-module - implementation of the PVRDMA device.
- PVRDMA commands such as create CQ and create MR.
- Data path QP operations - post_send and post_recv.
- Completion handler.

Reviewed-by: Dotan Barak <address@hidden>
Reviewed-by: Zhu Yanjun <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: 919ae3dd119e9287e20c92461beed63355e10fdd
      
https://github.com/qemu/qemu/commit/919ae3dd119e9287e20c92461beed63355e10fdd
  Author: Yuval Shaia <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M Makefile.objs
    M hw/rdma/Makefile.objs
    A hw/rdma/vmw/pvrdma_main.c
    A hw/rdma/vmw/trace-events
    M include/hw/pci/pci_ids.h

  Log Message:
  -----------
  hw/rdma: Implementation of PVRDMA device

PVRDMA is the QEMU implementation of VMware's paravirtualized RDMA device.
It works with its Linux Kernel driver AS IS, no need for any special
guest modifications.

While it complies with the VMware device, it can also communicate with
bare metal RDMA-enabled machines and does not require an RDMA HCA in the
host, it can work with Soft-RoCE (rxe).

It does not require the whole guest RAM to be pinned allowing memory
over-commit and, even if not implemented yet, migration support will be
possible with some HW assistance.

Implementation is divided into 2 components, rdma general and pvRDMA
specific functions and structures.

The second PVRDMA sub-module - interaction with PCI layer.
- Device configuration and setup (MSIX, BARs etc).
- Setup of DSR (Device Shared Resources)
- Setup of device ring.
- Device management.

Reviewed-by: Dotan Barak <address@hidden>
Reviewed-by: Zhu Yanjun <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>
Signed-off-by: Marcel Apfelbaum <address@hidden>


  Commit: a3defabbb58b7c1c060e7698def237a31a4cc161
      
https://github.com/qemu/qemu/commit/a3defabbb58b7c1c060e7698def237a31a4cc161
  Author: Marcel Apfelbaum <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: add entry for hw/rdma

Signed-off-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Yuval Shaia <address@hidden>


  Commit: 299a2e6fac397be9b82c66583d53d1daaa3ffe6c
      
https://github.com/qemu/qemu/commit/299a2e6fac397be9b82c66583d53d1daaa3ffe6c
  Author: Peter Maydell <address@hidden>
  Date:   2018-02-19 (Mon, 19 Feb 2018)

  Changed paths:
    M MAINTAINERS
    M Makefile.objs
    M backends/hostmem-file.c
    M backends/hostmem-ram.c
    M backends/hostmem.c
    M configure
    A docs/pvrdma.txt
    M exec.c
    M hw/Makefile.objs
    A hw/rdma/Makefile.objs
    A hw/rdma/rdma_backend.c
    A hw/rdma/rdma_backend.h
    A hw/rdma/rdma_backend_defs.h
    A hw/rdma/rdma_rm.c
    A hw/rdma/rdma_rm.h
    A hw/rdma/rdma_rm_defs.h
    A hw/rdma/rdma_utils.c
    A hw/rdma/rdma_utils.h
    A hw/rdma/trace-events
    A hw/rdma/vmw/pvrdma.h
    A hw/rdma/vmw/pvrdma_cmd.c
    A hw/rdma/vmw/pvrdma_dev_ring.c
    A hw/rdma/vmw/pvrdma_dev_ring.h
    A hw/rdma/vmw/pvrdma_main.c
    A hw/rdma/vmw/pvrdma_qp_ops.c
    A hw/rdma/vmw/pvrdma_qp_ops.h
    A hw/rdma/vmw/trace-events
    M include/exec/memory.h
    M include/exec/ram_addr.h
    M include/hw/pci/pci_ids.h
    M include/qemu/osdep.h
    A include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_dev_api.h
    A include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_ring.h
    A include/standard-headers/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h
    A include/standard-headers/rdma/vmw_pvrdma-abi.h
    M include/sysemu/hostmem.h
    M include/sysemu/kvm.h
    M memory.c
    M qemu-options.hx
    M scripts/update-linux-headers.sh
    M target/s390x/kvm.c
    M util/oslib-posix.c
    M util/oslib-win32.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/marcel/tags/rdma-pull-request' into 
staging

PVRDMA implementation

# gpg: Signature made Mon 19 Feb 2018 11:08:49 GMT
# gpg:                using RSA key 36D4C0F0CF2FE46D
# gpg: Good signature from "Marcel Apfelbaum <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: B1C6 3A57 F92E 08F2 640F  31F5 36D4 C0F0 CF2F E46D

* remotes/marcel/tags/rdma-pull-request:
  MAINTAINERS: add entry for hw/rdma
  hw/rdma: Implementation of PVRDMA device
  hw/rdma: PVRDMA commands and data-path ops
  hw/rdma: Implementation of generic rdma device layers
  hw/rdma: Definitions for rdma device and rdma resource manager
  hw/rdma: Add wrappers and macros
  include/standard-headers: add pvrdma related headers
  scripts/update-linux-headers: import pvrdma headers
  docs: add pvrdma device documentation.
  mem: add share parameter to memory-backend-ram

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/72f1094b6cd8...299a2e6fac39

reply via email to

[Prev in Thread] Current Thread [Next in Thread]