* Re: [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs)
[not found] <ORSMSX401FRaqbC8wSA0000000d@orsmsx401.amr.corp.intel.com>
@ 2006-03-11 1:14 ` Roland Dreier
2006-03-11 6:10 ` Sean Hefty
2006-03-21 20:57 ` Roland Dreier
1 sibling, 1 reply; 5+ messages in thread
From: Roland Dreier @ 2006-03-11 1:14 UTC (permalink / raw)
To: Sean Hefty; +Cc: netdev, linux-kernel, openib-general
The ib_addr module depends on CONFIG_INET, because it uses symbols
like arp_tbl, which are only exported if INET is enabled.
I fixed this up by creating a new (non-user-visible) config symbol to
control when ib_addr is built -- I put the following diff on top of
your patch in my tree:
diff --git a/drivers/infiniband/Kconfig b/drivers/infiniband/Kconfig
index bdf0891..48c8bb5 100644
--- a/drivers/infiniband/Kconfig
+++ b/drivers/infiniband/Kconfig
@@ -29,6 +29,11 @@ config INFINIBAND_USER_ACCESS
libibverbs, libibcm and a hardware driver library from
<http://www.openib.org>.
+config INFINIBAND_ADDR_TRANS
+ tristate
+ depends on INFINIBAND && INET
+ default y
+
source "drivers/infiniband/hw/mthca/Kconfig"
source "drivers/infiniband/ulp/ipoib/Kconfig"
diff --git a/drivers/infiniband/core/Makefile b/drivers/infiniband/core/Makefile
index 2393e9d..935851d 100644
--- a/drivers/infiniband/core/Makefile
+++ b/drivers/infiniband/core/Makefile
@@ -1,7 +1,8 @@
obj-$(CONFIG_INFINIBAND) += ib_core.o ib_mad.o ib_sa.o \
- ib_cm.o ib_addr.o
+ ib_cm.o
obj-$(CONFIG_INFINIBAND_USER_MAD) += ib_umad.o
obj-$(CONFIG_INFINIBAND_USER_ACCESS) += ib_uverbs.o ib_ucm.o
+obj-$(CONFIG_INFINIBAND_ADDR_TRANS) += ib_addr.o
ib_core-y := packer.o ud_header.o verbs.o sysfs.o \
device.o fmr_pool.o cache.o
^ permalink raw reply related [flat|nested] 5+ messages in thread
* RE: [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs)
2006-03-11 1:14 ` [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs) Roland Dreier
@ 2006-03-11 6:10 ` Sean Hefty
0 siblings, 0 replies; 5+ messages in thread
From: Sean Hefty @ 2006-03-11 6:10 UTC (permalink / raw)
To: 'Roland Dreier'; +Cc: linux-kernel, netdev, openib-general
>The ib_addr module depends on CONFIG_INET, because it uses symbols
>like arp_tbl, which are only exported if INET is enabled.
>
>I fixed this up by creating a new (non-user-visible) config symbol to
>control when ib_addr is built -- I put the following diff on top of
>your patch in my tree:
Thanks!
-Sean
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs)
[not found] <ORSMSX401FRaqbC8wSA0000000d@orsmsx401.amr.corp.intel.com>
2006-03-11 1:14 ` [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs) Roland Dreier
@ 2006-03-21 20:57 ` Roland Dreier
2006-03-21 21:08 ` Sean Hefty
1 sibling, 1 reply; 5+ messages in thread
From: Roland Dreier @ 2006-03-21 20:57 UTC (permalink / raw)
To: Sean Hefty; +Cc: linux-kernel, netdev, openib-general
> +struct workqueue_struct *rdma_wq;
> +EXPORT_SYMBOL(rdma_wq);
Sean, I don't think I saw an answer when I asked you this before. Why
is ib_addr exporting a workqueue? Is there some sort of ordering
constraint that is forcing other modules to go through the same
workqueue for things?
This seems like a very fragile internal thing to be exposing, and I'm
wondering if there's a better way to handle it.
- R.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs)
2006-03-21 20:57 ` Roland Dreier
@ 2006-03-21 21:08 ` Sean Hefty
2006-03-21 22:39 ` Roland Dreier
0 siblings, 1 reply; 5+ messages in thread
From: Sean Hefty @ 2006-03-21 21:08 UTC (permalink / raw)
To: Roland Dreier; +Cc: netdev, linux-kernel, openib-general
Roland Dreier wrote:
> > +struct workqueue_struct *rdma_wq;
> > +EXPORT_SYMBOL(rdma_wq);
>
> Sean, I don't think I saw an answer when I asked you this before. Why
> is ib_addr exporting a workqueue? Is there some sort of ordering
> constraint that is forcing other modules to go through the same
> workqueue for things?
>
> This seems like a very fragile internal thing to be exposing, and I'm
> wondering if there's a better way to handle it.
I responded in a different thread, but here's what I wrote:
"This is simply an attempt to reduce/combine work queues used by the Infiniband
code. This keeps the threading a little simpler in the rdma_cm, since all
callbacks are invoked using the same work queue. (I'm also using this with the
local SA/multicast code, but that's not ready for merging.)"
There's no specific ordering constraint that's required. We're just ending up
with several Infiniband modules creating their own work queues (ib_mad, ib_cm,
ib_addr, rdma_cm, plus a couple more in modules under development), and this is
an attempt to reduce that. If having separate work queues would work better,
there shouldn't be anything that prevents this.
- Sean
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Re: [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs)
2006-03-21 21:08 ` Sean Hefty
@ 2006-03-21 22:39 ` Roland Dreier
0 siblings, 0 replies; 5+ messages in thread
From: Roland Dreier @ 2006-03-21 22:39 UTC (permalink / raw)
To: Sean Hefty; +Cc: netdev, linux-kernel, openib-general
Sean> "This is simply an attempt to reduce/combine work queues
Sean> used by the Infiniband code. This keeps the threading a
Sean> little simpler in the rdma_cm, since all callbacks are
Sean> invoked using the same work queue. (I'm also using this
Sean> with the local SA/multicast code, but that's not ready for
Sean> merging.)"
How does it keep the threading model simpler? Is this an inter-module
dependency.
Sean> There's no specific ordering constraint that's required.
Sean> We're just ending up with several Infiniband modules
Sean> creating their own work queues (ib_mad, ib_cm, ib_addr,
Sean> rdma_cm, plus a couple more in modules under development),
Sean> and this is an attempt to reduce that. If having separate
Sean> work queues would work better, there shouldn't be anything
Sean> that prevents this.
It seems like it would be cleaner for each module to have its own
workqueue if it needs one. There's also schedule_work(), although
that goes to a multi-threaded workqueue. Michael Tsirkin has
suggested creating a system-wide single-threaded workqueue (ie
something like schedule_ordered_work()) for everyone that occasionally
needs a single-threaded workqueue.
- R.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-03-21 22:39 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <ORSMSX401FRaqbC8wSA0000000d@orsmsx401.amr.corp.intel.com>
2006-03-11 1:14 ` [PATCH 4/6 v2] IB: address translation to map IP toIB addresses (GIDs) Roland Dreier
2006-03-11 6:10 ` Sean Hefty
2006-03-21 20:57 ` Roland Dreier
2006-03-21 21:08 ` Sean Hefty
2006-03-21 22:39 ` Roland Dreier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).