linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/37] IB: Optimize DMA mapping
@ 2017-01-20 21:04 Bart Van Assche
  2017-01-20 21:04 ` [PATCH v3 02/37] treewide: Move dma_ops from struct dev_archdata into struct device Bart Van Assche
                   ` (2 more replies)
  0 siblings, 3 replies; 60+ messages in thread
From: Bart Van Assche @ 2017-01-20 21:04 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Bart Van Assche

Hello Doug,

As you know there are two sets of DMA mapping operations in the Linux
kernel:
- One set of DMA mapping operations that is used by most drivers.
- Another set of DMA mapping operations that is only used by the RDMA
  drivers.
Having two types of DMA mapping operations is not only a source of
confusion but also a source of unnecessary overhead. The DMA mapping
operations are in the hot path so it is important that the overhead
of these operations is as low as possible. Hence this patch series
that converts the RDMA code to the standard DMA mapping operations
and thereby eliminates the if (dev->dma_ops) test from the hot path.

The changes compared to version 2 of this patch series are:
- Left out the inlining of the ib_dma_map_*() functions to keep the
  number of patches in this patch series reasonable.
- Reworked this patch series such that (hopefully) the hfi1 and qib
  drivers keep working.

The changes compared to version 1 of this patch series are:
- Patch "Move dma_ops from archdata into struct device" has been
  split into three patches.
- Patch "treewide: Inline ib_dma_map_*() functions" has been split
  into 15 patches (one per driver).
- A patch has been added that builds dma_noop_ops only for the
  architectures that need it.
- The new dma_virt_ops is only built if it is used by a driver.
- In these last 15 patches indentation has been adjusted to keep
  the arguments aligned with the opening parenthesis.

Bart Van Assche (37):
  treewide: Constify most dma_map_ops structures
  treewide: Move dma_ops from struct dev_archdata into struct device
  treewide: Consolidate set_dma_ops() implementations
  treewide: Consolidate get_dma_ops() implementations
  lib/dma-noop: Clarify a comment
  lib/dma-noop: Only build dma_noop_ops for s390 and m32r
  lib/dma-virt: Add dma_virt_ops
  IB/core: Remove ib_dma_*map_single_attrs()
  RDS: IB: Remove an unused structure member
  IB/core: Change the type of an ib_dma_alloc_coherent() argument
  IB/hf1: Remove DMA mapping code
  IB/qib: Remove DMA mapping code
  IB/core: Initialize ib_device.dev.parent earlier
  IB/core: Use dev.parent instead of dma_device
  IB/cxgb3: Set dev.parent instead of dma_device
  IB/cxgb4: Set dev.parent instead of dma_device
  IB/hfi1: Switch from dma_device to dev.parent
  IB/hns: Switch from dma_device to dev.parent
  IB/i40iw: Remove a superfluous assignment statement
  IB/mlx4: Switch from dma_device to dev.parent
  IB/mlx5: Switch from dma_device to dev.parent
  IB/mthca: Switch from dma_device to dev.parent
  IB/nes: Remove a superfluous assignment statement
  IB/ocrdma: Switch from dma_device to dev.parent
  IB/qedr: Switch from dma_device to dev.parent
  IB/qib: Switch from dma_device to dev.parent
  IB/usnic: Switch from dma_device to dev.parent
  IB/vmw_pvrdma: Switch from dma_device to dev.parent
  IB/rxe: Switch from dma_device to dev.parent
  IB/IPoIB: Switch from dma_device to dev.parent
  IB/iser: Switch from dma_device to dev.parent
  IB/srp: Switch from dma_device to dev.parent
  IB/srpt: Modify a debug statement
  RDS: net: Switch from dma_device to dev.parent
  nvme-rdma: Switch from dma_device to dev.parent
  IB/core: Remove ib_device.dma_device
  IB/rxe, IB/rdmavt: Use dma_virt_ops instead of duplicating it

 arch/alpha/include/asm/dma-mapping.h               |   4 +-
 arch/alpha/kernel/pci-noop.c                       |   4 +-
 arch/alpha/kernel/pci_iommu.c                      |   4 +-
 arch/arc/include/asm/dma-mapping.h                 |   4 +-
 arch/arc/mm/dma.c                                  |   2 +-
 arch/arm/common/dmabounce.c                        |   2 +-
 arch/arm/include/asm/device.h                      |   1 -
 arch/arm/include/asm/dma-mapping.h                 |  20 +--
 arch/arm/mm/dma-mapping.c                          |  22 +--
 arch/arm/xen/mm.c                                  |   4 +-
 arch/arm64/include/asm/device.h                    |   1 -
 arch/arm64/include/asm/dma-mapping.h               |  12 +-
 arch/arm64/mm/dma-mapping.c                        |  14 +-
 arch/avr32/include/asm/dma-mapping.h               |   4 +-
 arch/avr32/mm/dma-coherent.c                       |   2 +-
 arch/blackfin/include/asm/dma-mapping.h            |   4 +-
 arch/blackfin/kernel/dma-mapping.c                 |   2 +-
 arch/c6x/include/asm/dma-mapping.h                 |   4 +-
 arch/c6x/kernel/dma.c                              |   2 +-
 arch/cris/arch-v32/drivers/pci/dma.c               |   2 +-
 arch/cris/include/asm/dma-mapping.h                |   6 +-
 arch/frv/include/asm/dma-mapping.h                 |   4 +-
 arch/frv/mb93090-mb00/pci-dma-nommu.c              |   2 +-
 arch/frv/mb93090-mb00/pci-dma.c                    |   2 +-
 arch/h8300/include/asm/dma-mapping.h               |   4 +-
 arch/h8300/kernel/dma.c                            |   2 +-
 arch/hexagon/include/asm/dma-mapping.h             |   7 +-
 arch/hexagon/kernel/dma.c                          |   4 +-
 arch/ia64/hp/common/hwsw_iommu.c                   |   4 +-
 arch/ia64/hp/common/sba_iommu.c                    |   4 +-
 arch/ia64/include/asm/dma-mapping.h                |   7 +-
 arch/ia64/include/asm/machvec.h                    |   4 +-
 arch/ia64/kernel/dma-mapping.c                     |   4 +-
 arch/ia64/kernel/pci-dma.c                         |  10 +-
 arch/ia64/kernel/pci-swiotlb.c                     |   2 +-
 arch/m32r/Kconfig                                  |   1 +
 arch/m32r/include/asm/device.h                     |   1 -
 arch/m32r/include/asm/dma-mapping.h                |   4 +-
 arch/m68k/include/asm/dma-mapping.h                |   4 +-
 arch/m68k/kernel/dma.c                             |   2 +-
 arch/metag/include/asm/dma-mapping.h               |   4 +-
 arch/metag/kernel/dma.c                            |   2 +-
 arch/microblaze/include/asm/dma-mapping.h          |   4 +-
 arch/microblaze/kernel/dma.c                       |   2 +-
 arch/mips/cavium-octeon/dma-octeon.c               |   4 +-
 arch/mips/include/asm/device.h                     |   5 -
 arch/mips/include/asm/dma-mapping.h                |   9 +-
 .../include/asm/mach-cavium-octeon/dma-coherence.h |   2 +-
 arch/mips/include/asm/netlogic/common.h            |   2 +-
 arch/mips/loongson64/common/dma-swiotlb.c          |   2 +-
 arch/mips/mm/dma-default.c                         |   4 +-
 arch/mips/netlogic/common/nlm-dma.c                |   2 +-
 arch/mips/pci/pci-octeon.c                         |   2 +-
 arch/mn10300/include/asm/dma-mapping.h             |   4 +-
 arch/mn10300/mm/dma-alloc.c                        |   2 +-
 arch/nios2/include/asm/dma-mapping.h               |   4 +-
 arch/nios2/mm/dma-mapping.c                        |   2 +-
 arch/openrisc/include/asm/dma-mapping.h            |   4 +-
 arch/openrisc/kernel/dma.c                         |   2 +-
 arch/parisc/include/asm/dma-mapping.h              |   8 +-
 arch/parisc/kernel/drivers.c                       |   2 +-
 arch/parisc/kernel/pci-dma.c                       |   4 +-
 arch/powerpc/include/asm/device.h                  |   4 -
 arch/powerpc/include/asm/dma-mapping.h             |  14 +-
 arch/powerpc/include/asm/pci.h                     |   4 +-
 arch/powerpc/include/asm/ps3.h                     |   2 +-
 arch/powerpc/include/asm/swiotlb.h                 |   2 +-
 arch/powerpc/kernel/dma-swiotlb.c                  |   2 +-
 arch/powerpc/kernel/dma.c                          |   8 +-
 arch/powerpc/kernel/pci-common.c                   |   6 +-
 arch/powerpc/platforms/cell/iommu.c                |   6 +-
 arch/powerpc/platforms/pasemi/iommu.c              |   2 +-
 arch/powerpc/platforms/pasemi/setup.c              |   2 +-
 arch/powerpc/platforms/powernv/npu-dma.c           |   2 +-
 arch/powerpc/platforms/ps3/system-bus.c            |   8 +-
 arch/powerpc/platforms/pseries/ibmebus.c           |   4 +-
 arch/powerpc/platforms/pseries/vio.c               |   2 +-
 arch/s390/Kconfig                                  |   1 +
 arch/s390/include/asm/device.h                     |   1 -
 arch/s390/include/asm/dma-mapping.h                |   6 +-
 arch/s390/pci/pci.c                                |   2 +-
 arch/s390/pci/pci_dma.c                            |   2 +-
 arch/sh/include/asm/dma-mapping.h                  |   4 +-
 arch/sh/kernel/dma-nommu.c                         |   2 +-
 arch/sh/mm/consistent.c                            |   2 +-
 arch/sparc/include/asm/dma-mapping.h               |  10 +-
 arch/sparc/kernel/iommu.c                          |   4 +-
 arch/sparc/kernel/ioport.c                         |   8 +-
 arch/sparc/kernel/pci_sun4v.c                      |   2 +-
 arch/tile/include/asm/device.h                     |   3 -
 arch/tile/include/asm/dma-mapping.h                |  20 +--
 arch/tile/kernel/pci-dma.c                         |  24 +--
 arch/unicore32/include/asm/dma-mapping.h           |   4 +-
 arch/unicore32/mm/dma-swiotlb.c                    |   2 +-
 arch/x86/include/asm/device.h                      |   5 +-
 arch/x86/include/asm/dma-mapping.h                 |  11 +-
 arch/x86/include/asm/iommu.h                       |   2 +-
 arch/x86/kernel/amd_gart_64.c                      |   2 +-
 arch/x86/kernel/pci-calgary_64.c                   |   6 +-
 arch/x86/kernel/pci-dma.c                          |   4 +-
 arch/x86/kernel/pci-nommu.c                        |   2 +-
 arch/x86/kernel/pci-swiotlb.c                      |   2 +-
 arch/x86/pci/common.c                              |   2 +-
 arch/x86/pci/sta2x11-fixup.c                       |  10 +-
 arch/x86/xen/pci-swiotlb-xen.c                     |   2 +-
 arch/xtensa/include/asm/device.h                   |   4 -
 arch/xtensa/include/asm/dma-mapping.h              |   9 +-
 arch/xtensa/kernel/pci-dma.c                       |   2 +-
 drivers/infiniband/core/device.c                   |   9 +
 drivers/infiniband/core/sysfs.c                    |   2 +-
 drivers/infiniband/core/ucm.c                      |   2 +-
 drivers/infiniband/core/user_mad.c                 |   4 +-
 drivers/infiniband/core/uverbs_main.c              |   2 +-
 drivers/infiniband/hw/cxgb3/iwch_provider.c        |   2 +-
 drivers/infiniband/hw/cxgb4/provider.c             |   2 +-
 drivers/infiniband/hw/hfi1/dma.c                   | 183 -------------------
 drivers/infiniband/hw/hfi1/mad.c                   |   2 +-
 drivers/infiniband/hw/hfi1/verbs.c                 |   2 +-
 drivers/infiniband/hw/hns/hns_roce_main.c          |   2 +-
 drivers/infiniband/hw/hns/hns_roce_qp.c            |   2 +-
 drivers/infiniband/hw/i40iw/i40iw_verbs.c          |   1 -
 drivers/infiniband/hw/mlx4/main.c                  |   2 +-
 drivers/infiniband/hw/mlx4/mlx4_ib.h               |   2 +-
 drivers/infiniband/hw/mlx4/mr.c                    |   6 +-
 drivers/infiniband/hw/mlx5/main.c                  |   2 +-
 drivers/infiniband/hw/mlx5/mr.c                    |  14 +-
 drivers/infiniband/hw/mthca/mthca_provider.c       |   2 +-
 drivers/infiniband/hw/nes/nes_verbs.c              |   1 -
 drivers/infiniband/hw/ocrdma/ocrdma_main.c         |   2 +-
 drivers/infiniband/hw/qedr/main.c                  |   2 +-
 drivers/infiniband/hw/qib/qib_dma.c                | 169 ------------------
 drivers/infiniband/hw/qib/qib_keys.c               |   5 +-
 drivers/infiniband/hw/qib/qib_verbs.c              |   2 +-
 drivers/infiniband/hw/usnic/usnic_ib_main.c        |   2 +-
 drivers/infiniband/hw/vmw_pvrdma/pvrdma_main.c     |   2 +-
 drivers/infiniband/sw/rdmavt/Kconfig               |   1 +
 drivers/infiniband/sw/rdmavt/Makefile              |   2 +-
 drivers/infiniband/sw/rdmavt/dma.c                 | 198 ---------------------
 drivers/infiniband/sw/rdmavt/dma.h                 |  53 ------
 drivers/infiniband/sw/rdmavt/mr.c                  |   8 +-
 drivers/infiniband/sw/rdmavt/vt.c                  |   4 +-
 drivers/infiniband/sw/rdmavt/vt.h                  |   1 -
 drivers/infiniband/sw/rxe/Kconfig                  |   1 +
 drivers/infiniband/sw/rxe/Makefile                 |   1 -
 drivers/infiniband/sw/rxe/rxe_dma.c                | 183 -------------------
 drivers/infiniband/sw/rxe/rxe_loc.h                |   2 -
 drivers/infiniband/sw/rxe/rxe_verbs.c              |   9 +-
 drivers/infiniband/ulp/ipoib/ipoib_ethtool.c       |   2 +-
 drivers/infiniband/ulp/ipoib/ipoib_main.c          |   2 +-
 drivers/infiniband/ulp/iser/iscsi_iser.c           |   2 +-
 drivers/infiniband/ulp/srp/ib_srp.c                |   4 +-
 drivers/infiniband/ulp/srpt/ib_srpt.c              |   3 +-
 drivers/iommu/amd_iommu.c                          |  10 +-
 drivers/misc/mic/bus/mic_bus.c                     |   4 +-
 drivers/misc/mic/bus/scif_bus.c                    |   4 +-
 drivers/misc/mic/bus/scif_bus.h                    |   2 +-
 drivers/misc/mic/bus/vop_bus.c                     |   2 +-
 drivers/misc/mic/host/mic_boot.c                   |   4 +-
 drivers/nvme/host/rdma.c                           |   2 +-
 drivers/parisc/ccio-dma.c                          |   2 +-
 drivers/parisc/sba_iommu.c                         |   2 +-
 drivers/pci/host/vmd.c                             |   2 +-
 include/linux/device.h                             |   1 +
 include/linux/dma-mapping.h                        |  55 +++---
 include/linux/mic_bus.h                            |   2 +-
 include/rdma/ib_verbs.h                            | 143 ++-------------
 include/xen/arm/hypervisor.h                       |   2 +-
 lib/Kconfig                                        |  10 ++
 lib/Makefile                                       |   3 +-
 lib/dma-noop.c                                     |   4 +-
 lib/dma-virt.c                                     |  72 ++++++++
 net/rds/ib.h                                       |   8 +-
 net/rds/ib_mr.h                                    |   1 -
 173 files changed, 437 insertions(+), 1298 deletions(-)
 delete mode 100644 drivers/infiniband/hw/hfi1/dma.c
 delete mode 100644 drivers/infiniband/hw/qib/qib_dma.c
 delete mode 100644 drivers/infiniband/sw/rdmavt/dma.c
 delete mode 100644 drivers/infiniband/sw/rdmavt/dma.h
 delete mode 100644 drivers/infiniband/sw/rxe/rxe_dma.c
 create mode 100644 lib/dma-virt.c

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2017-02-14 16:47 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-20 21:04 [PATCH v3 00/37] IB: Optimize DMA mapping Bart Van Assche
2017-01-20 21:04 ` [PATCH v3 02/37] treewide: Move dma_ops from struct dev_archdata into struct device Bart Van Assche
2017-01-20 21:04 ` [PATCH v3 03/37] treewide: Consolidate set_dma_ops() implementations Bart Van Assche
2017-01-30 13:58   ` Russell King - ARM Linux
     [not found] ` <20170120210437.26389-1-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-20 21:04   ` [PATCH v3 01/37] treewide: Constify most dma_map_ops structures Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 04/37] treewide: Consolidate get_dma_ops() implementations Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 05/37] lib/dma-noop: Clarify a comment Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 06/37] lib/dma-noop: Only build dma_noop_ops for s390 and m32r Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 07/37] lib/dma-virt: Add dma_virt_ops Bart Van Assche
     [not found]     ` <20170120210437.26389-8-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-23 16:03       ` Joerg Roedel
     [not found]         ` <20170123160341.GM9529-l3A5Bk7waGM@public.gmane.org>
2017-01-23 16:12           ` Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 08/37] IB/core: Remove ib_dma_*map_single_attrs() Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 09/37] RDS: IB: Remove an unused structure member Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 10/37] IB/core: Change the type of an ib_dma_alloc_coherent() argument Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 11/37] IB/hf1: Remove DMA mapping code Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 12/37] IB/qib: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 13/37] IB/core: Initialize ib_device.dev.parent earlier Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 14/37] IB/core: Use dev.parent instead of dma_device Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 15/37] IB/cxgb3: Set " Bart Van Assche
     [not found]     ` <20170120210437.26389-16-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-20 21:27       ` Steve Wise
2017-01-20 21:04   ` [PATCH v3 16/37] IB/cxgb4: " Bart Van Assche
     [not found]     ` <20170120210437.26389-17-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-20 21:27       ` Steve Wise
2017-01-20 21:04   ` [PATCH v3 17/37] IB/hfi1: Switch from dma_device to dev.parent Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 18/37] IB/hns: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 19/37] IB/i40iw: Remove a superfluous assignment statement Bart Van Assche
     [not found]     ` <20170120210437.26389-20-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-21 14:18       ` Shiraz Saleem
2017-01-20 21:04   ` [PATCH v3 20/37] IB/mlx4: Switch from dma_device to dev.parent Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 21/37] IB/mlx5: " Bart Van Assche
     [not found]     ` <20170120210437.26389-22-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-22 14:15       ` Leon Romanovsky
2017-01-20 21:04   ` [PATCH v3 22/37] IB/mthca: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 23/37] IB/nes: Remove a superfluous assignment statement Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 24/37] IB/ocrdma: Switch from dma_device to dev.parent Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 25/37] IB/qedr: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 26/37] IB/qib: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 27/37] IB/usnic: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 28/37] IB/vmw_pvrdma: " Bart Van Assche
     [not found]     ` <20170120210437.26389-29-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-20 21:54       ` Adit Ranadive
2017-01-20 21:04   ` [PATCH v3 29/37] IB/rxe: " Bart Van Assche
     [not found]     ` <20170120210437.26389-30-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-26 21:06       ` Boyer, Andrew
     [not found]         ` <D4AFCE43.A031%Andrew.Boyer-mb1K0bWo544@public.gmane.org>
2017-01-27 22:14           ` Bart Van Assche
     [not found]             ` <1485555269.13218.10.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-02-14 16:47               ` Doug Ledford
2017-01-20 21:04   ` [PATCH v3 30/37] IB/IPoIB: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 31/37] IB/iser: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 32/37] IB/srp: " Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 33/37] IB/srpt: Modify a debug statement Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 34/37] RDS: net: Switch from dma_device to dev.parent Bart Van Assche
     [not found]     ` <20170120210437.26389-35-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-20 23:24       ` Santosh Shilimkar
2017-01-20 21:04   ` [PATCH v3 35/37] nvme-rdma: " Bart Van Assche
     [not found]     ` <20170120210437.26389-36-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-22 16:08       ` Sagi Grimberg
2017-01-20 21:04   ` [PATCH v3 36/37] IB/core: Remove ib_device.dma_device Bart Van Assche
2017-01-20 21:04   ` [PATCH v3 37/37] IB/rxe, IB/rdmavt: Use dma_virt_ops instead of duplicating it Bart Van Assche
     [not found]     ` <20170120210437.26389-38-bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-22 14:11       ` Leon Romanovsky
     [not found]         ` <20170122141141.GI28570-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-01-22 15:51           ` Bart Van Assche
2017-01-26 21:00       ` Boyer, Andrew
2017-01-20 21:57   ` [PATCH v3 00/37] IB: Optimize DMA mapping Laurence Oberman
     [not found]     ` <1671405275.19009584.1484949453215.JavaMail.zimbra-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-01-20 22:18       ` Bart Van Assche
     [not found]         ` <1484950725.2665.10.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-20 22:23           ` Laurence Oberman
2017-01-24 17:38   ` Doug Ledford
     [not found]     ` <1485279487.43764.38.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-01-24 17:43       ` Bart Van Assche
     [not found]         ` <1485279791.2715.3.camel-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2017-01-24 17:49           ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).