There are two kinds supported. QLogic's driver does them in
the host driver so they are atomic with respect to all the CPUs
in the host.
I'm just curious about this: how does this work? Is the CPU getting
interrupted and doing the operation while the Mellanox HCA does
everything in hardware?
You can work around this by creating a loopback connection (ie an RC
connection from the local HCA to itself) and post atomic operations to
that QP instead of accessing the memory directly with the CPU.
Right but that's really slow, specially if you're implementing some
sort of
On Tue, 2010-08-10 at 04:46 -0700, Rui Machado wrote:
There are two kinds supported. QLogic's driver does them in
the host driver so they are atomic with respect to all the CPUs
in the host.
I'm just curious about this: how does this work? Is the CPU getting
interrupted and doing the
Hi there,
There are two kinds supported. QLogic's driver does them in
the host driver so they are atomic with respect to all the CPUs
in the host. Mellanox uses HCA wide atomic which means the
HCA will do a memory read/write without allowing other reads
or writes from different QP operations
So if the CPU writes/reads to/from the same address, even atomically
(lock), there might be room for some inconsistency on the values? It
is not really atomic from the whole system point of view, just for the
HCA? If so, is there any possibility to make the whole operation
'system-wide'
On Fri, 2010-08-06 at 04:43 -0700, Rui Machado wrote:
Hi there,
There are two kinds supported. QLogic's driver does them in
the host driver so they are atomic with respect to all the CPUs
in the host. Mellanox uses HCA wide atomic which means the
HCA will do a memory read/write without
Atomic ops are optional. Mellanox and QLogic HCAs support them,
I don't know about the other HCAs.
There are two kinds supported. QLogic's driver does them in
the host driver so they are atomic with respect to all the CPUs
in the host. Mellanox uses HCA wide atomic which means the
HCA will do a