public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Roland Dreier <roland@topspin.com>
To: Troy Benjegerdes <hozer@hozed.org>
Cc: linux-kernel@vger.kernel.org, infiniband-general@lists.sourceforge.net
Subject: Re: ANNOUCE: OpenIB InfiniBand software
Date: 12 Mar 2004 07:22:04 -0800	[thread overview]
Message-ID: <52wu5qhyzn.fsf@topspin.com> (raw)
In-Reply-To: <20040312033307.GA797@kalmia.hozed.org>

    Troy> Since the openib.org mailing lists don't seem to be alive
    Troy> yet, I'll bring this up here..

    Troy> Can we get this split out into the following components?
    Troy> * kernel level infiniband access layer
    Troy> * lowlevel hardware driver (aka mellanox driver)
    Troy> * all other 'upper layer protocols'

Right now, in the infiniband-kernel package, the Mellanox driver is
under drivers/infiniband/hw/mellanox-hca, the 'upper layer protocols'
are under drivers/infiniband/ulp, and the 'access layer' is everything
else in drivers/infiniband.  I'm not sure it's worth rolling three
packages for that split right now.

    Troy> All the existing code has big problems with how it
    Troy> interfaces to the kernel memory management.. it doesn't use
    Troy> the regular interfaces like get_user_pages, pci_map_page,
    Troy> and pci_map_sq, and goes and looks at the guts of the
    Troy> pagetables directly.

    Troy> This is either a problem with the kernel interfaces made
    Troy> available, or a design issue with the existing
    Troy> codebases. Can someone please tell me which it is?

I would say both.  Certainly the HCA driver code could have been
written much more cleanly.  However, it's not clear how the right way
to handle the memory management requirements of kernel bypass/RDMA
protocols, especially since the driver tries to support kernels all
the way back to the ancient 2.4.9 used by Red Hat AS 2.1 (which
doesn't even have get_user_pages()).

In any case, it's why I put the following items in the TODO list
of my announcement:

    * Use DMA mapping API so we work properly with non-coherent
      caches, IOMMUs etc. Add a function to get struct device * for an
      IB device so ULPs can call sync functions (embed struct device
      in struct ib_device?). (How do we handle systems with limited
      DMA mapping capacity?)

    * In Mellanox HCA driver, clean up mosal. Some obvious
      targets (there's lots more though):
          o Grunging through kernel code to find the mlock/munlock
            pointers especially has to go (mosal_mlock.c). We need to
            get VM experts from LKML to tell us how to handle memory
            translation and locking.

  reply	other threads:[~2004-03-12 15:22 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-05 18:31 ANNOUCE: OpenIB InfiniBand software Roland Dreier
2004-03-06 21:00 ` Roland Dreier
2004-03-12  3:33   ` Troy Benjegerdes
2004-03-12 15:22     ` Roland Dreier [this message]
2004-03-23  1:34 ` OpenIB mailing lists available (was Re: ANNOUNCE: OpenIB InfiniBand software) Roland Dreier
  -- strict thread matches above, loose matches on Subject: below --
2004-03-14  0:55 ANNOUCE: OpenIB InfiniBand software Woodruff, Robert J

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52wu5qhyzn.fsf@topspin.com \
    --to=roland@topspin.com \
    --cc=hozer@hozed.org \
    --cc=infiniband-general@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox