On 2018/1/20 4:00, Jason Gunthorpe wrote: > On Fri, Jan 19, 2018 at 07:04:42PM +0800, Liuyixian (Eason) wrote: > >> For case 1, the new kernel driver can't support old user application or old userspace driver. >> Because we use the record db solution (what this patchset does and why add new db_addr in kernel) >> to substitute with operating register, which used by the old userspace driver. >> Therefore, users need to update the userspace driver to the version which support record db. > > This is not acceptable for the kernel. You must maintain compatability > with old userspace. > > Also, new userspace must work with older kernels. > > Jason Hi Jason, Maybe my previous email caused some confusions to people. Let me illustrate the compatibility more clear. For hip06, which not support record db, even while it creates cq in userspace with hns_roce_create_cq (db_addr already there), it will do nothing with db_addr. The kernel also will not access db_addr, both for old kernel and new kernel(adding db_addr). Because hip06 pushes db by operating register, this manner keeps unchanged. Thus, the old/new kernel support both old/new userspace for hip06, For hip08, which is still under development to support record db, considering forward compatibility that new kernel with old userspace, as old userspace operates register and new kernel still provide those registers, there is no forward compatibility problem. The reverse (backward compatibility) is not true. It is not possible to take new userspace will still run correctly if the kernel is old. As new userspace use db_addr substitute operating register, it can run correctly only on new kernel (the patchset goes with this patchset submitted to for-next) and later kernel versions. I think it is reasonable for this case. With carefully release-management, there would be no compatibility problem both for hip06 and hip08. Eason > > -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html