Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 06329ccecfa022494fdba288b3ab5bcb8dff4159 https://github.com/qemu/qemu/commit/06329ccecfa022494fdba288b3ab5bcb8dff4159 Author: Marcel Apfelbaum <mar...@redhat.com> 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 <ehabk...@redhat.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Commit: edab56321a0da3337adc3f9605d097d2606ab12c https://github.com/qemu/qemu/commit/edab56321a0da3337adc3f9605d097d2606ab12c Author: Marcel Apfelbaum <mar...@redhat.com> 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 <mar...@redhat.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Reviewed-by: Shamir Rabinovitch <shamir.rabinovi...@oracle.com> Commit: e1c5f1f04a0857bd030a8917050ac5a61f42e5ab https://github.com/qemu/qemu/commit/e1c5f1f04a0857bd030a8917050ac5a61f42e5ab Author: Marcel Apfelbaum <mar...@redhat.com> 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 <gham...@redhat.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Commit: 7605e12a512ad87b764cda6554724e7f84ded18d https://github.com/qemu/qemu/commit/7605e12a512ad87b764cda6554724e7f84ded18d Author: Marcel Apfelbaum <mar...@redhat.com> 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 <mar...@redhat.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Commit: dcbf469aeffb3b307d2bc5331797d67979b715e3 https://github.com/qemu/qemu/commit/dcbf469aeffb3b307d2bc5331797d67979b715e3 Author: Yuval Shaia <yuval.sh...@oracle.com> 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 <dot...@mellanox.com> Reviewed-by: Zhu Yanjun <yanjun....@oracle.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Commit: b3a92277690dcf8a780919c153df9b9f30d51658 https://github.com/qemu/qemu/commit/b3a92277690dcf8a780919c153df9b9f30d51658 Author: Yuval Shaia <yuval.sh...@oracle.com> 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 <dot...@mellanox.com> Reviewed-by: Zhu Yanjun <yanjun....@oracle.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Commit: ef6d4ccdc9eba3c184da08e76d52e5003325680b https://github.com/qemu/qemu/commit/ef6d4ccdc9eba3c184da08e76d52e5003325680b Author: Yuval Shaia <yuval.sh...@oracle.com> 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 <dot...@mellanox.com> Reviewed-by: Zhu Yanjun <yanjun....@oracle.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Commit: 98d176f8e592d29a6d66ea969a15fc0caabd37cc https://github.com/qemu/qemu/commit/98d176f8e592d29a6d66ea969a15fc0caabd37cc Author: Yuval Shaia <yuval.sh...@oracle.com> 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 <dot...@mellanox.com> Reviewed-by: Zhu Yanjun <yanjun....@oracle.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Commit: 919ae3dd119e9287e20c92461beed63355e10fdd https://github.com/qemu/qemu/commit/919ae3dd119e9287e20c92461beed63355e10fdd Author: Yuval Shaia <yuval.sh...@oracle.com> 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 <dot...@mellanox.com> Reviewed-by: Zhu Yanjun <yanjun....@oracle.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Signed-off-by: Marcel Apfelbaum <mar...@redhat.com> Commit: a3defabbb58b7c1c060e7698def237a31a4cc161 https://github.com/qemu/qemu/commit/a3defabbb58b7c1c060e7698def237a31a4cc161 Author: Marcel Apfelbaum <mar...@redhat.com> 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 <mar...@redhat.com> Signed-off-by: Yuval Shaia <yuval.sh...@oracle.com> Commit: 299a2e6fac397be9b82c66583d53d1daaa3ffe6c https://github.com/qemu/qemu/commit/299a2e6fac397be9b82c66583d53d1daaa3ffe6c Author: Peter Maydell <peter.mayd...@linaro.org> 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 <mar...@redhat.com>" # 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 <peter.mayd...@linaro.org> Compare: https://github.com/qemu/qemu/compare/72f1094b6cd8...299a2e6fac39