All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/15] Make VFIO support independent on PCI
@ 2016-04-29 13:44 Jan Viktorin
  2016-04-29 13:44 ` [PATCH 01/15] vfio: fix include of eal_private.h to be local Jan Viktorin
                   ` (32 more replies)
  0 siblings, 33 replies; 49+ messages in thread
From: Jan Viktorin @ 2016-04-29 13:44 UTC (permalink / raw)
  To: dev
  Cc: Jan Viktorin, Anatoly Burakov, David Marchand, Keith Wiles,
	Santosh Shukla, Stephen Hemminger

Hello,

here follows several patchs extracting the general VFIO code out of the
PCI + VFIO code base. Usually, it's just move and rename of functions.
The most complicated ones are:

* eal/linux: extract setup logic out of pci_vfio_map_resource

  - separation of some setup code out of the pci_vfio_map_resource
    (which is otherwise quite PCI-speicific)
  - it is required by the following one

* eal/linux: move global vfio_cfg to eal_vfio.c

  - moving the vfio_cfg global variable out of the eal_pci_vfio together with
    the functions working with this variable

Some patchs make just temporary changes to avoid breakages throughout the
patch set (dma mapping).

I am not sure, how exactly is the mp_sync code intended to work. Should there
be just a single socket connection (no matter how many bus-systems we support)?
I assume it works this way so I've generalized the eal_pci_vfio_mp_sync.

The vfio initialization is moved out of the rte_eal_pci_init into EAL.

The code is now prepared for adding of other infrastructures such as the SoC
that I've introduced in [1]. I've partially done this in my workspace.

The VFIO code is quite complex and written in a spaghetti style so a more
maintainance would be helpful. I've did my best to preserve the semantics
(I hope) to be 100 % the same as before.

Important: I didn't test whether it's working as I have no VFIO-enabled machine
at the moment and the SoC infra is not so ready yet.

[1] http://comments.gmane.org/gmane.comp.networking.dpdk.devel/30913

Regards
Jan

---

Jan Viktorin (15):
  vfio: fix include of eal_private.h to be local
  vfio: move VFIO-specific stuff to eal_vfio.h
  vfio: move common vfio constants to eal_vfio.h
  vfio: move vfio_iommu_type and dma_map functions to eal_vfio
  vfio: generalize pci_vfio_set_iommu_type
  vfio: generalize pci_vfio_has_supported_extensions
  vfio: move vfio-specific SOCKET_* constants
  vfio: generalize pci_vfio_get_container_fd
  vfio: generalize pci_vfio_get_group_no
  vfio: extract setup logic out of pci_vfio_map_resource
  vfio: move global vfio_cfg to eal_vfio.c
  vfio: make vfio_*_dma_map and iommu_types private
  vfio: rename and generalize eal_pci_vfio_mp_sync
  vfio: initialize vfio out of the PCI subsystem
  vfio: change VFIO init to be extendable

 lib/librte_eal/linuxapp/eal/Makefile               |   5 +-
 lib/librte_eal/linuxapp/eal/eal.c                  |  33 ++
 lib/librte_eal/linuxapp/eal/eal_pci.c              |  17 +-
 lib/librte_eal/linuxapp/eal/eal_pci_init.h         |  41 --
 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c         | 517 +-------------------
 lib/librte_eal/linuxapp/eal/eal_vfio.c             | 528 +++++++++++++++++++++
 lib/librte_eal/linuxapp/eal/eal_vfio.h             |  94 ++++
 .../{eal_pci_vfio_mp_sync.c => eal_vfio_mp_sync.c} |  12 +-
 8 files changed, 672 insertions(+), 575 deletions(-)
 create mode 100644 lib/librte_eal/linuxapp/eal/eal_vfio.c
 rename lib/librte_eal/linuxapp/eal/{eal_pci_vfio_mp_sync.c => eal_vfio_mp_sync.c} (97%)

-- 
2.8.0

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2016-07-04 15:11 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-29 13:44 [PATCH 00/15] Make VFIO support independent on PCI Jan Viktorin
2016-04-29 13:44 ` [PATCH 01/15] vfio: fix include of eal_private.h to be local Jan Viktorin
2016-04-29 13:44 ` [PATCH 02/15] vfio: move VFIO-specific stuff to eal_vfio.h Jan Viktorin
2016-04-29 13:44 ` [PATCH 03/15] vfio: move common vfio constants " Jan Viktorin
2016-04-29 13:44 ` [PATCH 04/15] vfio: move vfio_iommu_type and dma_map functions to eal_vfio Jan Viktorin
2016-04-29 13:44 ` [PATCH 05/15] vfio: generalize pci_vfio_set_iommu_type Jan Viktorin
2016-04-29 13:44 ` [PATCH 06/15] vfio: generalize pci_vfio_has_supported_extensions Jan Viktorin
2016-04-29 13:44 ` [PATCH 07/15] vfio: move vfio-specific SOCKET_* constants Jan Viktorin
2016-04-29 13:44 ` [PATCH 08/15] vfio: generalize pci_vfio_get_container_fd Jan Viktorin
2016-04-29 13:44 ` [PATCH 09/15] vfio: generalize pci_vfio_get_group_no Jan Viktorin
2016-04-29 13:44 ` [PATCH 10/15] vfio: extract setup logic out of pci_vfio_map_resource Jan Viktorin
2016-05-10 11:53   ` Burakov, Anatoly
2016-05-10 12:58     ` Jan Viktorin
2016-05-10 13:17       ` Jan Viktorin
2016-04-29 13:44 ` [PATCH 11/15] vfio: move global vfio_cfg to eal_vfio.c Jan Viktorin
2016-05-10 11:56   ` Burakov, Anatoly
2016-05-10 12:55     ` Jan Viktorin
2016-05-13 15:34   ` Jan Viktorin
2016-04-29 13:44 ` [PATCH 12/15] vfio: make vfio_*_dma_map and iommu_types private Jan Viktorin
2016-04-29 13:44 ` [PATCH 13/15] vfio: rename and generalize eal_pci_vfio_mp_sync Jan Viktorin
2016-04-29 13:44 ` [PATCH 14/15] vfio: initialize vfio out of the PCI subsystem Jan Viktorin
2016-04-29 13:44 ` [PATCH 15/15] vfio: change VFIO init to be extendable Jan Viktorin
2016-05-10 11:50   ` Burakov, Anatoly
2016-05-10 12:54     ` Jan Viktorin
2016-05-10 13:15       ` Burakov, Anatoly
2016-05-10 12:18 ` [PATCH 00/15] Make VFIO support independent on PCI Santosh Shukla
2016-05-10 12:45   ` Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 00/16] Make VFIO support less dependent " Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 01/16] vfio: fix include of eal_private.h to be local Jan Viktorin
2016-07-04 10:22   ` Burakov, Anatoly
2016-07-04 10:55     ` Jan Viktorin
2016-07-04 15:00     ` Jan Viktorin
2016-07-04 15:09       ` Burakov, Anatoly
2016-06-13 13:01 ` [PATCH v2 02/16] vfio: move VFIO-specific stuff to eal_vfio.h Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 03/16] vfio: move common vfio constants " Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 04/16] vfio: move vfio_iommu_type and dma_map functions to eal_vfio Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 05/16] vfio: generalize pci_vfio_set_iommu_type Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 06/16] vfio: generalize pci_vfio_has_supported_extensions Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 07/16] vfio: move vfio-specific SOCKET_* constants Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 08/16] vfio: generalize pci_vfio_get_container_fd Jan Viktorin
2016-06-13 13:01 ` [PATCH v2 09/16] vfio: generalize pci_vfio_get_group_no Jan Viktorin
2016-06-13 13:02 ` [PATCH v2 10/16] vfio: extract setup logic out of pci_vfio_map_resource Jan Viktorin
2016-06-13 13:02 ` [PATCH v2 11/16] vfio: move global vfio_cfg to eal_vfio.c Jan Viktorin
2016-06-13 13:02 ` [PATCH v2 12/16] vfio: fix typo in doc for vfio_setup_device Jan Viktorin
2016-06-24 15:55   ` Mcnamara, John
2016-06-13 13:02 ` [PATCH v2 13/16] vfio: make vfio_*_dma_map and iommu_types private Jan Viktorin
2016-06-13 13:02 ` [PATCH v2 14/16] vfio: rename and generalize eal_pci_vfio_mp_sync Jan Viktorin
2016-06-13 13:02 ` [PATCH v2 15/16] vfio: initialize vfio out of the PCI subsystem Jan Viktorin
2016-06-13 13:02 ` [PATCH v2 16/16] vfio: change VFIO init to be extendable Jan Viktorin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.