[ewg] [RFC] – Proposal for new process for OFED releases
Or Gerlitz
ogerlitz at mellanox.com
Sun Dec 4 23:05:46 PST 2011
On 12/2/2011 2:04 AM, Hefty, Sean wrote:
>> We propose a new process for the OFED releases starting from next OFED release:
>> - OFED content will be the relevant kernel.org modules and user space released packages
>> - OFED will offer only backports to the distros (no fixes)
>
> I think this point needs to be clarified
Sean, Yes, I agree, we have to be precise here, the term back-porting
has to be made clear:
The kernel is a large piece that keeps moving on - its made of many
smaller pieces/components, but with very sharp and well defined
dependencies and interactions. The rdma stack is far from being an
isolated piece which you can pull from kernel X and plug into kernel Y -
this applies all over the place in varying extents - e.g from the RDMA
HW drivers, through the IB core and up to the ULPs.
The latter is the easiest to explain, as Roland once commented, each IB
ULP driver is a fish and a eel - so SRP/iSER/rNFS/IPoIB are all IB
fishes working with the IB core services and with the HW through the
verbs, but the are part from higher-level constructs in the kernel, such
as being network device (IPoIB), SCSI Low Level drivers (1st two), iscsi
transport provider (iser) and RPC provider (rNFS). Now, BACKPORTING
these stacks (SCSI, iSCSI, RPC/NFS, etc) isn't something that OFA can
carry, and it would be self-damaging to create notion with end-users
that OFED does so. I tend to think this is done now for rNFS, and its a
mistake. Distributions do that, by the way, but its part of their bread
and butter.
This argument applies also to the core, yes. The core and IPoIB has
interactions with the networking stack, e.g around route and neighbour
lookups, and alike. The networking stack is something that sits deeply
into the built in part of the kernel and changes every now and then.
BACKPORTING here would mean to simply remove sets of patches from the
core and ipoib.
In the HW drivers space, things could be simpler, but I haven't thought
about it deeply, though.
To be concrete/constructive here, a per IB stack module individual has
to be assigned for that backporting, which doesn't mean "make IB code
from kernel X to build under kernel Y" - lets
see if we have people to actually do that.
For example, on the iser space, and for the stack provided by Mellanox
to customers - I took the approach of iser_backport(X,Y) = ~Y --- which
means that if I have to backport the iser code from kernel X into kernel
Y, I simply use the iser code that comes with Y
I do that since Y has well/tight integrated iscsi stack for which the
maintainers worked very hard to produce, and I can't re-invent
backporting that stack.
The tilde in ~Y stands for slight verb changes that could arise from the
backporting the rest of the IB stack has gone through, from X to Y, so
if the verb to create CQ has another param in X vs what it had in Y- I
add it under the ~ umbrella, is that clear?
Or.
More information about the ewg
mailing list