All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] DAPL support on s390x platform prototype
@ 2014-08-27 10:24 Alexey Ishchuk
       [not found] ` <1409135080-44991-1-git-send-email-aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Ishchuk @ 2014-08-27 10:24 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA
  Cc: arlin.r.davis-ral2JQCrhuEAvxtiuMwx3w,
	gilr-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb,
	roland-DgEjT+Ai2ygdnm+yROfE0A, linux-s390-u79uwXL29TY76Z2rM5mHXA,
	gmuelas-tA70FqPdS9bQT0dZR+AlfA,
	utz.bacher-tA70FqPdS9bQT0dZR+AlfA,
	martin.schwidefsky-tA70FqPdS9bQT0dZR+AlfA,
	frank.blaschka-tA70FqPdS9bQT0dZR+AlfA, Alexey Ishchuk

This patch series contains the re-architected changes to kernel and
userspace libraries required to provide support for the DAPL API on s390x
platform. Those patches are are a prototype of proposed changes. It is not
requested to include this version of changes into kernel source code and
the patches are posted only to receive comments from the community on this
changes concept.
The current implementation of Infiniband verbs uses mapped memory areas to
directly access the device UAR and Blueflame pages, which are located in
the PCI I/O memory, from userspace. On the s390x platform the PCI I/O
memory can be accessed only using special privileged CPU instructions that
cannot be used directly in user space programs. This restricts the usage of
mapped memory areas to access the PCI I/O memory on s390x platform.
In the previous attempt of DAPL support on s390x platform implementation a
new Infinband verb command was introduced and the changes to kernel modules
and user space libraries were provided but that version of changes was
rejected by community.
The new version of changes introduces new kernel system calls which allow
to execute the privileged CPU instructions in kernel space on request from
user space programs. One system call allows the user space programs to
write data to a PCI I/O memory page and the second one can be used to read
data from PCI I/O memory to userspace program buffer using mapped memory
area addresses as arguments.
This approach of the DAPL API support on s390x platform has the following
advantages:
	* the current Infiniband and mlx4 support modules remain unchanged;
	* the changes are separated into the special kernel platform
	  specific directory;
	* no conditional compilation directives are used in the kernel
	  source code;
	* no changes required to the kernel virtual memory management;
	* only minor changes are required in the user space DAPL API
	  components.
The only disadvantage of this approach is that it is still necessary to
modify existing userspace library libmlx4 to replace the direct access to
mapped memory areas intended for the PCI I/O memory access with the
appropriate new system call invocation. The changes to the other user space
DAPL component code are required only to provide the support of the s390x
platform.
There are 1 patch for the Linux kernel and 4 patches for the DAPL API user
space components.
	[PATCH 1/5] s390/kernel: add system calls for access PCI memory
This patch contains the new system call implementation required for the PCI
I/O memory access from userspace programs on s390x platform.
	[PATCH 2/5] libibverbs: add support for the s390x plaform
This patch contains the changes to the libibverbs user space library to
provide support of the s390x platform.
	[PATCH 3/5] libmlx4: add support for the s390x platform
This patch contains the changes to the libmlx4 user space library intended
to provide the PCI I/O memory access on the s390x platform. The direct
access to mapped memory areas is replaced by appropriate system call
invocation.
	[PATCH 4/5] dapl: add support for the s390x platform
This patch contains the code which is needed to be added to dapl package
to allow the dapl libraries to be used on s390x platform. There is no
changes added to this patch since the previous post and it is included only
for refrence.
	[PATCH 5/5] perftest: add support for the s390x platform
This patch contains the code which is neeed to be added to the perftest
package applications to allow their execution on the s390x platform. There
is no changes in this patch since the previous post and it is included only
for refrence.

Alexey Ishchuk (5):
  s390/kernel: add system calls for access PCI memory
  libibverbs: add support for s390x platform
  libmlx4: add support for s390x platform
  dapl: add support for s390x platform
  perftest: add support for s390x platform
-- 
1.8.5.5

--
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] 10+ messages in thread
* [PATCH 0/5] add new verb command support
@ 2014-04-14 17:01 Alexey Ishchuk
       [not found] ` <1397494869-43842-1-git-send-email-alexey_ishchuk-JgLE2wv1ufrQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Ishchuk @ 2014-04-14 17:01 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA
  Cc: arlin.r.davis-ral2JQCrhuEAvxtiuMwx3w,
	gilr-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb,
	roland-DgEjT+Ai2ygdnm+yROfE0A, linux-s390-u79uwXL29TY76Z2rM5mHXA,
	Alexey Ishchuk

The current implementation of the userspace Infiniband verbs uses mapped
memory areas to directly access from userspace device UAR and Blueflame
page, which are located in the PCI I/O memory, to initiate I/O operations.
On the s390x platform the PCI I/O memory can be accessed only using
special privileged CPU instructions and those instructions cannot be used
from userspace programs. This restricts the usage of memory mapped areas
to access the PCI I/O memory from userspace on the s390x platform and
because of that existing Infiniband verbs cannot be used on the s390x
platform without modification.
There are two approaches could be implemented to solve this problem:
	* using a page fault handler to intercept mapped memory area
	  access errors, and handle them in the handler by issuing the
	  appropriate privileged CPU instructions;
	* modification of the existing verbs to avoid the mapped memory
	  areas usage on the s390x platform.
The page fault handler solution is the most complex one because it requires
not only modifcation of the virtual memory handling in Linux kernel but
also makes the developer to provide code for all the CPU instrutions which
work with memory program interpretation. This approcach requires lots of
lines of code and noticable overhead during the program execution.
The modification of the existing verbs solution is much simpler and more
realible. It requires modification of the libraries provided in the DAPL
support packages to replace the usage of mapped memory areas used to
access the device UAR and Blueflame page with the device driver write
primitive calls supplying a special verb command to kernelspace.
The new verb command kernel handler processes the verb command and
executes the special privileged CPU instructions to pass the data to
the device PCI I/O memory. The only disadvantage of this approach is the
need to modify the userspace libraries and kernelspace device driver to
add support for the new verb command. The modification of the DAPL
applications is not required.
The modification of the existing verbs solution has been choosen for
implementation.
This patch series contains the changes to the kernelspace modules and
the userspace libraries required to provide support for the DAPL API
on the s390x platform. Each patch file contains changes to corresponding
OFED stack 3.12 package. The patches can be applied to appropriate
packages in any order.
There are 1 patch for the Linux kernel and 4 patches for the DAPL API
userspace components.
	[PATCH 1/5] IB/core/mlx4: add new verb command support
This patch contains changes to the Linux kernel required to provide
support for the new Infiniband verb command IB_USER_VERBS_CMD_KWRITE_MMIO
which is used to allow the userspace DAPL libraries to write the data to
the device UAR and BlueFlame page located in the PCI I/O memory.
	[PATCH 2/5] libibverbs: add new verb command support
This patch contaings the changes that need to be applied to the libibverbs
userspace library to provide support for the new
IB_USER_VERBS_CMD_KWRITE_MMIO verb command which is used to allow the
userspace applications to write data to the device UAR and Blueflame page
located in the PCI I/O memory.
	[PATCH 3/5] libmlx4: add new verb command support
This patch contains the changes that need to be applied to the libmlx4
userspace library to provide support for the new Infiniband verb command
IB_USER_VERBS_CMD_KWRITE_MMIO to allow writing the data from userspace to
PCI I/O memory to initiate I/O operations.
	[PATCH 4/5] dapl: add support for the s390x platform
This patch contains the code which is needed to be added to dapl package
to allow the dapl libraries to be used on s390x platform.
	[PATCH 5/5] perftest: add support for the s390x platform
This patch contains the code which is neeed to be added to the perftest
package applications to allow their execution on the s390x platform.

Alexey Ishchuk (5):
  IB/core/mlx4: add new verb command support
  libibverbs: add new verb command support
  libmlx4: add new verb command support
  dapl: add support for the s390x platform
  perftest: add support for the s390x platform
-- 
1.8.3.1

--
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] 10+ messages in thread

end of thread, other threads:[~2014-09-02 16:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-27 10:24 [PATCH 0/5] DAPL support on s390x platform prototype Alexey Ishchuk
     [not found] ` <1409135080-44991-1-git-send-email-aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2014-08-27 10:24   ` [PATCH] s390/kernel: add system calls for access PCI memory Alexey Ishchuk
     [not found]     ` <1409135080-44991-2-git-send-email-aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2014-08-27 15:18       ` Shachar Raindel
     [not found]         ` <6B2A6E60C06CCC42AE31809BF572352B010E23CCE5-LSMZvP3E4uyuSA5JZHE7gA@public.gmane.org>
2014-08-28 12:00           ` Alexey Ishchuk
2014-08-27 10:24   ` [PATCH 2/5] libibverbs: add support for s390x platform Alexey Ishchuk
2014-08-27 10:24   ` [PATCH 3/5] libmlx4: " Alexey Ishchuk
2014-08-27 10:24   ` [PATCH 4/5] dapl: add support for the " Alexey Ishchuk
     [not found]     ` <1409135080-44991-5-git-send-email-aishchuk-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2014-09-02 16:06       ` Davis, Arlin R
2014-08-27 10:24   ` [PATCH 5/5] perftest: " Alexey Ishchuk
  -- strict thread matches above, loose matches on Subject: below --
2014-04-14 17:01 [PATCH 0/5] add new verb command support Alexey Ishchuk
     [not found] ` <1397494869-43842-1-git-send-email-alexey_ishchuk-JgLE2wv1ufrQT0dZR+AlfA@public.gmane.org>
2014-04-14 17:01   ` [PATCH 4/5] dapl: add support for the s390x platform Alexey Ishchuk

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.