Hello Roland and Christoph H.! Here is a set of patches for ehca, whose main purpose is to remove unproper use of do_mmap() in ehca kernel space as suggested by Christoph H. Other "small" changes are: * Remove "dead" prototype declarations (those without code implementation)
Now detail on mmap() rework: - For eHCA hardware register block we use remap_pfn_range() as previously. - For queue pages we call pattern vm_insert_page() to register each allocated kernel page. - For each mmap-ed resource (hardware register block, send/recv and completion queue) we introduce a use counter that is incremented and decremented by the call-backs open()/close(). Destroying a completion queue or queue pair will succeed only if all associated counters are zero. That means those resources must be mmap-ed and munmap-ed properly in user space. The actual calls of mmap64() and munmap() are done then in ehca user space lib, ie. libehca, for which I will send a separate patch for another review (by ofed group). Thanks Nam ehca_classes.h | 29 +----- ehca_cq.c | 65 +++----------- ehca_iverbs.h | 10 -- ehca_main.c | 6 - ehca_qp.c | 78 +++-------------- ehca_uverbs.c | 253 ++++++++++++++++++--------------------------------------- 6 files changed, 121 insertions(+), 320 deletions(-) _______________________________________________ openib-general mailing list openib-general@openib.org http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general