RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-06 Thread Hal Rosenstock
On Wed, 2004-10-06 at 10:36, Hal Rosenstock wrote: On Tue, 2004-10-05 at 16:34, Sean Hefty wrote: if (solicited) { /* Routing is based on high 32 bits of transaction ID of MAD */ - hi_tid = mad-mad_hdr.tid 32; + hi_tid =

RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-06 Thread Fab Tillier
From: Hal Rosenstock [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 06, 2004 7:36 AM The problem with this is that when this is done on a little endian machine it shows up byte swapped on the network and not in network endian. So if hi_tid = 1 and user tid = 0x9abcdef0 then the

RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-06 Thread Hal Rosenstock
On Wed, 2004-10-06 at 12:04, Fab Tillier wrote: From: Hal Rosenstock [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 06, 2004 7:36 AM The problem with this is that when this is done on a little endian machine it shows up byte swapped on the network and not in network endian.

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Roland Dreier
+ bus_to_virt(cur_send_wr-sg_list-addr))-tid.id; Didn't notice this before but any use of bus_to_virt() is broken. We need to figure out a different way to do whatever you're trying to do here. - R. ___ openib-general

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Hal Rosenstock
On Tue, 2004-10-05 at 15:01, Roland Dreier wrote: +bus_to_virt(cur_send_wr-sg_list-addr))-tid.id; Didn't notice this before but any use of bus_to_virt() is broken. We need to figure out a different way to do whatever you're trying to do here. Can you explain

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Roland Dreier
Hal Can you explain why using bus_to_virt() is broken ? See Documentation/DMA-mapping.txt: It is planned to completely remove virt_to_bus() and bus_to_virt() as they are entirely deprecated. Some ports already do not provide these as it is impossible to correctly support them.

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Hal Rosenstock
On Tue, 2004-10-05 at 16:04, Roland Dreier wrote: I don't see a way around adding a TID parameter to ib_post_send_mad or adding a TID member to the ib_send_wr.wr.ud union. Adding another member into the ud union seems better than another parameter for this. I will generate a patch for this

RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Sean Hefty
Hal The tid of a requests is needed so responses can be matched. Hal One way around this would be to pass the TID as a separate Hal parameter in the ib_post_send_mad call. Maybe there are other Hal less brute force ways. I don't see a way around adding a TID parameter to

RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Hal Rosenstock
On Tue, 2004-10-05 at 16:25, Sean Hefty wrote: Hal The tid of a requests is needed so responses can be matched. Hal One way around this would be to pass the TID as a separate Hal parameter in the ib_post_send_mad call. Maybe there are other Hal less brute force ways. I

RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Sean Hefty
Fix endian of high tid so responses are properly matched to requests n the TID is in the MAD and goes on the wire. Please, do not use CPU endian! mad_send_wr-tid = ((struct ib_mad_hdr*) - bus_to_virt(cur_send_wr-sg_list-addr))-tid; +

RE: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Hal Rosenstock
On Tue, 2004-10-05 at 16:34, Sean Hefty wrote: Fix endian of high tid so responses are properly matched to requests n the TID is in the MAD and goes on the wire. Please, do not use CPU endian! mad_send_wr-tid = ((struct ib_mad_hdr*) -

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Roland Dreier
Hal Good point. We will need more than access to the TID for Hal RMPP. We need a replacement for bus_to_virt. Is there an Hal approved way to get from DMA address to VA ? No, you just need to save off the VA if you need to use it later. So maybe we need to add a pointer to the MAD

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Sean Hefty
On Tue, 05 Oct 2004 16:57:58 -0400 Hal Rosenstock [EMAIL PROTECTED] wrote: mad_send_wr-tid = ((struct ib_mad_hdr*) - bus_to_virt(cur_send_wr-sg_list-addr))-tid; + bus_to_virt(cur_send_wr-sg_list-addr))- tid.id; A response MAD should have

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Sean Hefty
On Tue, 05 Oct 2004 13:59:37 -0700 Roland Dreier [EMAIL PROTECTED] wrote: Hal Good point. We will need more than access to the TID for Hal RMPP. We need a replacement for bus_to_virt. Is there an Hal approved way to get from DMA address to VA ? No, you just need to save off the

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Roland Dreier
Sean Would we need multiple VAs if scatter-gather is used by the client? Yep. Or we could just say that all the fields the access layer needs to look at must be in the first s/g entry. - R. ___ openib-general mailing list [EMAIL PROTECTED]

Re: [openib-general] [PATCH] ib_mad.c: Fix request/response matching

2004-10-05 Thread Sean Hefty
On Tue, 05 Oct 2004 14:06:13 -0700 Roland Dreier [EMAIL PROTECTED] wrote: Sean Would we need multiple VAs if scatter-gather is used by the client? Yep. Or we could just say that all the fields the access layer needs to look at must be in the first s/g entry. You're right, and thinking