Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
On Thu, Apr 21, 2005 at 03:07:42PM -0500, Timur Tabi wrote: > >*You* need to come up with a solution that looks good to *the community* > >if you want it merged. > > True, but I'm not going to waste my time adding this support if the > consensus I get from the kernel developers that they don't want Linux to > behave this way. I think we have been giving you that consensus from the very beginning :) The very fact that you tried to trot out the "enterprise" card should have raised a huge flag... thanks, greg k-h ___ 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
[openib-general] [PATCH] [MAD RMPP] add RMPP send support to MAD layer
The following patch adds RMPP send support to the kernel MAD layer. - NACKs are not implemented - Spec compliant double-sided transfers are not implemented. Request/ reply matching works, but missing is the ACK to the ACK that occurs during the RMPP direction switch. - Clients are limited to a single sge. - Timeout values are hard-coded until such time that packet lifetimes magically appear. Signed-off-by: Sean Hefty <[EMAIL PROTECTED]> Index: include/ib_verbs.h === --- include/ib_verbs.h (revision 2207) +++ include/ib_verbs.h (working copy) @@ -573,6 +573,7 @@ u32 remote_qpn; u32 remote_qkey; int timeout_ms; /* valid for MADs only */ + int retries;/* valid for MADs only */ u16 pkey_index; /* valid for GSI only */ u8 port_num; /* valid for DR SMPs on switch only */ } ud; Index: core/mad_rmpp.c === --- core/mad_rmpp.c (revision 2207) +++ core/mad_rmpp.c (working copy) @@ -76,20 +76,6 @@ struct ib_sge sge; }; -static struct ib_ah * create_ah_from_wc(struct ib_pd *pd, struct ib_wc *wc, - u8 port_num) -{ - struct ib_ah_attr ah_attr; - - memset(&ah_attr, 0, sizeof ah_attr); - ah_attr.dlid = wc->slid; - ah_attr.sl = wc->sl; - ah_attr.src_path_bits = wc->dlid_path_bits; - ah_attr.port_num = port_num; - - return ib_create_ah(pd, &ah_attr); -} - static void destroy_rmpp_recv(struct mad_rmpp_recv *rmpp_recv) { atomic_dec(&rmpp_recv->refcount); @@ -164,9 +150,10 @@ if (!rmpp_recv) return NULL; - rmpp_recv->ah = create_ah_from_wc(agent->agent.qp->pd, - mad_recv_wc->wc, - agent->agent.port_num); + rmpp_recv->ah = ib_create_ah_from_wc(agent->agent.qp->pd, +mad_recv_wc->wc, +mad_recv_wc->recv_buf.grh, +agent->agent.port_num); if (IS_ERR(rmpp_recv->ah)) goto error; @@ -291,18 +278,28 @@ kfree(msg); } +static int data_offset(u8 mgmt_class) +{ + if (mgmt_class == IB_MGMT_CLASS_SUBN_ADM) + return offsetof(struct ib_sa_mad, data); + else if ((mgmt_class >= IB_MGMT_CLASS_VENDOR_RANGE2_START) && +(mgmt_class <= IB_MGMT_CLASS_VENDOR_RANGE2_END)) + return offsetof(struct ib_vendor_mad, data); + else + return offsetof(struct ib_rmpp_mad, data); +} + static void format_ack(struct ib_rmpp_mad *ack, struct ib_rmpp_mad *data, struct mad_rmpp_recv *rmpp_recv) { unsigned long flags; - ack->mad_hdr = data->mad_hdr; + memcpy(&ack->mad_hdr, &data->mad_hdr, + data_offset(data->mad_hdr.mgmt_class)); + ack->mad_hdr.method ^= IB_MGMT_METHOD_RESP; - ack->rmpp_hdr.rmpp_version = data->rmpp_hdr.rmpp_version; ack->rmpp_hdr.rmpp_type = IB_MGMT_RMPP_TYPE_ACK; - ib_set_rmpp_resptime(&ack->rmpp_hdr, -ib_get_rmpp_resptime(&data->rmpp_hdr)); ib_set_rmpp_flags(&ack->rmpp_hdr, IB_MGMT_RMPP_FLAG_ACTIVE); spin_lock_irqsave(&rmpp_recv->lock, flags); @@ -392,12 +389,18 @@ static inline int get_mad_len(struct mad_rmpp_recv *rmpp_recv) { - int hdr_size; + struct ib_rmpp_mad *rmpp_mad; + int hdr_size, data_size, pad; - /* TODO: need to check for SA MADs - requires access to SA header */ - hdr_size = sizeof(struct ib_mad_hdr) + sizeof(struct ib_rmpp_hdr); - return rmpp_recv->seg_num * (sizeof(struct ib_mad) - hdr_size) + - hdr_size; + rmpp_mad = (struct ib_rmpp_mad *)rmpp_recv->cur_seg_buf->mad; + + hdr_size = data_offset(rmpp_mad->mad_hdr.mgmt_class); + data_size = sizeof(struct ib_rmpp_mad) - hdr_size; + pad = be32_to_cpu(rmpp_mad->rmpp_hdr.paylen_newwin); + if (pad > data_size) + pad = 0; + + return hdr_size + rmpp_recv->seg_num * data_size - pad; } static struct ib_mad_recv_wc * complete_rmpp(struct mad_rmpp_recv *rmpp_recv) @@ -513,6 +516,121 @@ return mad_recv_wc; } +static inline u64 get_seg_addr(struct ib_mad_send_wr_private *mad_send_wr) +{ + return mad_send_wr->sg_list[0].addr + mad_send_wr->data_offset + + (sizeof(struct ib_rmpp_mad) - mad_send_wr->data_offset) * + (mad_send_wr->seg_num - 1); +} + +static int send_next_seg(struct ib_mad_send_wr_private *mad_send_wr) +{ + struct ib_rmpp_mad *rmpp_mad; + int timeout; + + rmpp_mad = (struct ib_rmp
[openib-general] [PATCHv4][SDP] Allow SDP to compile on 2.6.12-rc3
On Thu, 2005-04-21 at 16:31 -0700, Fab Tillier wrote: > Isn't the above change backwards? The original code was copying settings > from listen_sk to sk, and the new code seems to be checking flags in sk to > determine whether to set them in listen_sk. You are so right. My brain ain't on today or something. Signed-off-by: Tom Duffy <[EMAIL PROTECTED]> Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c (working copy) @@ -1112,6 +1112,15 @@ error_attr: return result; } +/* XXX remove if/else (leave struct) once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11) ) +static struct proto sdp_proto = { + .name = "sdp_sock", + .owner = THIS_MODULE, + .obj_size = sizeof(struct inet_sock), +}; +#endif + /* * sdp_conn_alloc - allocate a new socket, and init. */ @@ -1122,7 +1131,12 @@ struct sdp_opt *sdp_conn_alloc(int prior int result; sk = sk_alloc(dev_root_s.proto, priority, +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sizeof(struct inet_sock), dev_root_s.sock_cache); +#else + &sdp_proto, 1); +#endif if (!sk) { sdp_dbg_warn(NULL, "socket alloc error for protocol. <%d:%d>", dev_root_s.proto, priority); @@ -1966,6 +1980,8 @@ int sdp_conn_table_init(int proto_family goto error_conn; } +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) dev_root_s.sock_cache = kmem_cache_create("sdp_sock", sizeof(struct inet_sock), 0, SLAB_HWCACHE_ALIGN, @@ -1975,6 +1991,13 @@ int sdp_conn_table_init(int proto_family result = -ENOMEM; goto error_sock; } +#else + if (proto_register(&sdp_proto, 1) != 0) { + sdp_warn("Failed to register sdp proto."); + result = -ENOMEM; + goto error_sock; + } +#endif /* * start listening @@ -2002,7 +2025,12 @@ int sdp_conn_table_init(int proto_family error_listen: (void)ib_destroy_cm_id(dev_root_s.listen_id); error_cm_id: +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) kmem_cache_destroy(dev_root_s.sock_cache); +#else + proto_unregister(&sdp_proto); +#endif error_sock: kmem_cache_destroy(dev_root_s.conn_cache); error_conn: @@ -2049,10 +2077,15 @@ int sdp_conn_table_clear(void) * delete conn cache */ kmem_cache_destroy(dev_root_s.conn_cache); +/* Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) /* * delete sock cache */ kmem_cache_destroy(dev_root_s.sock_cache); +#else + proto_unregister(&sdp_proto); +#endif /* * stop listening */ Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (working copy) @@ -356,13 +356,23 @@ static int sdp_cm_listen_lookup(struct s */ sk->sk_lingertime = listen_sk->sk_lingertime; sk->sk_rcvlowat = listen_sk->sk_rcvlowat; +/* XXX Remove once 2.6.12 is released */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sk->sk_debug= listen_sk->sk_debug; sk->sk_localroute = listen_sk->sk_localroute; + sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; +#else + if (sock_flag(listen_sk, SOCK_DBG)) + sock_set_flag(sk, SOCK_DBG); + if (sock_flag(listen_sk, SOCK_LOCALROUTE)) + sock_set_flag(sk, SOCK_LOCALROUTE); + if (sock_flag(listen_sk, SOCK_RCVTSTAMP)) + sock_set_flag(sk, SOCK_RCVTSTAMP); +#endif sk->sk_sndbuf = listen_sk->sk_sndbuf; sk->sk_rcvbuf = listen_sk->sk_rcvbuf; sk->sk_no_check = listen_sk->sk_no_check; sk->sk_priority = listen_sk->sk_priority; - sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; sk->sk_rcvtimeo = listen_sk->sk_rcvtimeo; sk->sk_sndtimeo = listen_sk->sk_sndtimeo; sk->sk_reuse= listen_sk->sk_reuse; Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_dev.h === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_dev.h (revision 2207) +++ linux-2.6.12-rc3-openib/driv
[openib-general] [PATCHv3][SDP] Allow SDP to compile on 2.6.12-rc3
On Thu, 2005-04-21 at 16:17 -0700, Libor Michalek wrote: > Is this a trick question? :) Because it's not a bool but an integer, > which use to be a bool in the 2.4 kernel days. Here's the relevant > code snip from net/core/sock.c: > > if (zero_it) { > memset(sk, 0, > zero_it == 1 ? sizeof(struct sock) : zero_it); > sk->sk_family = family; > sock_lock_init(sk); > } Sorry, I was looking at the new code where it is (used as) a bool again. In fact, I fucked up and on my v2 patch, the *new* call to sk_alloc should just be 1. Here is v3. Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c (working copy) @@ -1112,6 +1112,15 @@ error_attr: return result; } +/* XXX remove if/else (leave struct) once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11) ) +static struct proto sdp_proto = { + .name = "sdp_sock", + .owner = THIS_MODULE, + .obj_size = sizeof(struct inet_sock), +}; +#endif + /* * sdp_conn_alloc - allocate a new socket, and init. */ @@ -1122,7 +1131,12 @@ struct sdp_opt *sdp_conn_alloc(int prior int result; sk = sk_alloc(dev_root_s.proto, priority, +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sizeof(struct inet_sock), dev_root_s.sock_cache); +#else + &sdp_proto, 1); +#endif if (!sk) { sdp_dbg_warn(NULL, "socket alloc error for protocol. <%d:%d>", dev_root_s.proto, priority); @@ -1966,6 +1980,8 @@ int sdp_conn_table_init(int proto_family goto error_conn; } +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) dev_root_s.sock_cache = kmem_cache_create("sdp_sock", sizeof(struct inet_sock), 0, SLAB_HWCACHE_ALIGN, @@ -1975,6 +1991,13 @@ int sdp_conn_table_init(int proto_family result = -ENOMEM; goto error_sock; } +#else + if (proto_register(&sdp_proto, 1) != 0) { + sdp_warn("Failed to register sdp proto."); + result = -ENOMEM; + goto error_sock; + } +#endif /* * start listening @@ -2002,7 +2025,12 @@ int sdp_conn_table_init(int proto_family error_listen: (void)ib_destroy_cm_id(dev_root_s.listen_id); error_cm_id: +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) kmem_cache_destroy(dev_root_s.sock_cache); +#else + proto_unregister(&sdp_proto); +#endif error_sock: kmem_cache_destroy(dev_root_s.conn_cache); error_conn: @@ -2049,10 +2077,15 @@ int sdp_conn_table_clear(void) * delete conn cache */ kmem_cache_destroy(dev_root_s.conn_cache); +/* Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) /* * delete sock cache */ kmem_cache_destroy(dev_root_s.sock_cache); +#else + proto_unregister(&sdp_proto); +#endif /* * stop listening */ Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (working copy) @@ -356,13 +356,23 @@ static int sdp_cm_listen_lookup(struct s */ sk->sk_lingertime = listen_sk->sk_lingertime; sk->sk_rcvlowat = listen_sk->sk_rcvlowat; +/* XXX Remove once 2.6.12 is released */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sk->sk_debug= listen_sk->sk_debug; sk->sk_localroute = listen_sk->sk_localroute; + sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; +#else + if (sock_flag(sk, SOCK_DBG)) + sock_set_flag(listen_sk, SOCK_DBG); + if (sock_flag(sk, SOCK_LOCALROUTE)) + sock_set_flag(listen_sk, SOCK_LOCALROUTE); + if (sock_flag(sk, SOCK_RCVTSTAMP)) + sock_set_flag(listen_sk, SOCK_RCVTSTAMP); +#endif sk->sk_sndbuf = listen_sk->sk_sndbuf; sk->sk_rcvbuf = listen_sk->sk_rcvbuf; sk->sk_no_check = listen_sk->sk_no_check; sk->sk_priority = listen_sk->sk_priority; - sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; sk->sk_rcvtimeo = listen_sk->sk_rcvtimeo; sk->sk_sndtimeo = listen_sk->sk_sndtimeo;
RE: [openib-general] [PATCHv2][SDP] Allow SDP to compile on 2.6.12-rc3
> From: Tom Duffy [mailto:[EMAIL PROTECTED] > Sent: Thursday, April 21, 2005 4:27 PM > > Ok, this patch now builds without warning on 2.6.11 and 2.6.12-rc3. > > Libor, what do you think? > > Signed-off-by: Tom Duffy <[EMAIL PROTECTED]> > > Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c > === > --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c > (revision 2207) > +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (working > copy) > @@ -356,13 +356,23 @@ static int sdp_cm_listen_lookup(struct s >*/ > sk->sk_lingertime = listen_sk->sk_lingertime; > sk->sk_rcvlowat = listen_sk->sk_rcvlowat; > +/* XXX Remove once 2.6.12 is released */ > +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) > sk->sk_debug= listen_sk->sk_debug; > sk->sk_localroute = listen_sk->sk_localroute; > + sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; > +#else > + if (sock_flag(sk, SOCK_DBG)) > + sock_set_flag(listen_sk, SOCK_DBG); > + if (sock_flag(sk, SOCK_LOCALROUTE)) > + sock_set_flag(listen_sk, SOCK_LOCALROUTE); > + if (sock_flag(sk, SOCK_RCVTSTAMP)) > + sock_set_flag(listen_sk, SOCK_RCVTSTAMP); > +#endif Isn't the above change backwards? The original code was copying settings from listen_sk to sk, and the new code seems to be checking flags in sk to determine whether to set them in listen_sk. - Fab ___ 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
[openib-general] [PATCHv2][SDP] Allow SDP to compile on 2.6.12-rc3
On Thu, 2005-04-21 at 15:36 -0700, Roland Dreier wrote: > (I don't have time track down what goes in struct proto right now, so > I'm not posting a real patch) Ok, this patch now builds without warning on 2.6.11 and 2.6.12-rc3. Libor, what do you think? Signed-off-by: Tom Duffy <[EMAIL PROTECTED]> Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_conn.c (working copy) @@ -1112,6 +1112,15 @@ error_attr: return result; } +/* XXX remove if/else (leave struct) once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE > KERNEL_VERSION(2,6,11) ) +static struct proto sdp_proto = { + .name = "sdp_sock", + .owner = THIS_MODULE, + .obj_size = sizeof(struct inet_sock), +}; +#endif + /* * sdp_conn_alloc - allocate a new socket, and init. */ @@ -1122,7 +1131,12 @@ struct sdp_opt *sdp_conn_alloc(int prior int result; sk = sk_alloc(dev_root_s.proto, priority, +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sizeof(struct inet_sock), dev_root_s.sock_cache); +#else + &sdp_proto, sizeof(struct inet_sock)); +#endif if (!sk) { sdp_dbg_warn(NULL, "socket alloc error for protocol. <%d:%d>", dev_root_s.proto, priority); @@ -1966,6 +1980,8 @@ int sdp_conn_table_init(int proto_family goto error_conn; } +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) dev_root_s.sock_cache = kmem_cache_create("sdp_sock", sizeof(struct inet_sock), 0, SLAB_HWCACHE_ALIGN, @@ -1975,6 +1991,13 @@ int sdp_conn_table_init(int proto_family result = -ENOMEM; goto error_sock; } +#else + if (proto_register(&sdp_proto, 1) != 0) { + sdp_warn("Failed to register sdp proto."); + result = -ENOMEM; + goto error_sock; + } +#endif /* * start listening @@ -2002,7 +2025,12 @@ int sdp_conn_table_init(int proto_family error_listen: (void)ib_destroy_cm_id(dev_root_s.listen_id); error_cm_id: +/* XXX Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) kmem_cache_destroy(dev_root_s.sock_cache); +#else + proto_unregister(&sdp_proto); +#endif error_sock: kmem_cache_destroy(dev_root_s.conn_cache); error_conn: @@ -2049,10 +2077,15 @@ int sdp_conn_table_clear(void) * delete conn cache */ kmem_cache_destroy(dev_root_s.conn_cache); +/* Remove once 2.6.12 is out */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) /* * delete sock cache */ kmem_cache_destroy(dev_root_s.sock_cache); +#else + proto_unregister(&sdp_proto); +#endif /* * stop listening */ Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (working copy) @@ -356,13 +356,23 @@ static int sdp_cm_listen_lookup(struct s */ sk->sk_lingertime = listen_sk->sk_lingertime; sk->sk_rcvlowat = listen_sk->sk_rcvlowat; +/* XXX Remove once 2.6.12 is released */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sk->sk_debug= listen_sk->sk_debug; sk->sk_localroute = listen_sk->sk_localroute; + sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; +#else + if (sock_flag(sk, SOCK_DBG)) + sock_set_flag(listen_sk, SOCK_DBG); + if (sock_flag(sk, SOCK_LOCALROUTE)) + sock_set_flag(listen_sk, SOCK_LOCALROUTE); + if (sock_flag(sk, SOCK_RCVTSTAMP)) + sock_set_flag(listen_sk, SOCK_RCVTSTAMP); +#endif sk->sk_sndbuf = listen_sk->sk_sndbuf; sk->sk_rcvbuf = listen_sk->sk_rcvbuf; sk->sk_no_check = listen_sk->sk_no_check; sk->sk_priority = listen_sk->sk_priority; - sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; sk->sk_rcvtimeo = listen_sk->sk_rcvtimeo; sk->sk_sndtimeo = listen_sk->sk_sndtimeo; sk->sk_reuse= listen_sk->sk_reuse; Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_dev.h === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_dev.h (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_dev.h
Re: [openib-general] [PATCH][SDP] Allow SDP to compile on 2.6.12-rc3
On Thu, Apr 21, 2005 at 03:52:43PM -0700, Tom Duffy wrote: > On Thu, 2005-04-21 at 15:36 -0700, Roland Dreier wrote: > > Is this really the only change required? It seems that the socket > > allocation function changed too -- 2.6.11 has > > > > extern struct sock *sk_alloc(int family, int priority, int > > zero_it, > > kmem_cache_t *slab); > > > > while my up-to-date Linus tree has > > > > extern struct sock *sk_alloc(int family, int priority, > > struct proto *prot, int > > zero_it); > > > > so I think sdp_conn.c at least needs some fixing up. > > Oh, you are right, I missed the compile warning, but I see it now. > > Why does the SDP code pass in sizeof(struct inet_sock) for the zero_it > bool? Is this a trick question? :) Because it's not a bool but an integer, which use to be a bool in the 2.4 kernel days. Here's the relevant code snip from net/core/sock.c: if (zero_it) { memset(sk, 0, zero_it == 1 ? sizeof(struct sock) : zero_it); sk->sk_family = family; sock_lock_init(sk); } -Libor ___ 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
Re: [openib-general] [PATCH][SDP] Allow SDP to compile on 2.6.12-rc3
On Thu, 2005-04-21 at 15:36 -0700, Roland Dreier wrote: > Is this really the only change required? It seems that the socket > allocation function changed too -- 2.6.11 has > > extern struct sock *sk_alloc(int family, int priority, int > zero_it, >kmem_cache_t *slab); > > while my up-to-date Linus tree has > > extern struct sock *sk_alloc(int family, int priority, > struct proto *prot, int > zero_it); > > so I think sdp_conn.c at least needs some fixing up. Oh, you are right, I missed the compile warning, but I see it now. Why does the SDP code pass in sizeof(struct inet_sock) for the zero_it bool? -tduffy signature.asc Description: This is a digitally signed message part ___ 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
Re: [openib-general] [PATCH][SDP] Allow SDP to compile on 2.6.12-rc3
Tom> The sock structure was changed in 2.6.12-rc? and SDP no Tom> longer compiles against it. This patch allows SDP to build Tom> with either 2.6.11 or 2.6.12-rc3 as we must preserve building Tom> on current stable tree. Is this really the only change required? It seems that the socket allocation function changed too -- 2.6.11 has extern struct sock *sk_alloc(int family, int priority, int zero_it, kmem_cache_t *slab); while my up-to-date Linus tree has extern struct sock *sk_alloc(int family, int priority, struct proto *prot, int zero_it); so I think sdp_conn.c at least needs some fixing up. (I don't have time track down what goes in struct proto right now, so I'm not posting a real patch) - R. ___ 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
[openib-general] [PATCH][SDP] Allow SDP to compile on 2.6.12-rc3
The sock structure was changed in 2.6.12-rc? and SDP no longer compiles against it. This patch allows SDP to build with either 2.6.11 or 2.6.12-rc3 as we must preserve building on current stable tree. Signed-off-by: Tom Duffy <[EMAIL PROTECTED]> Index: linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c === --- linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (revision 2207) +++ linux-2.6.12-rc3-openib/drivers/infiniband/ulp/sdp/sdp_pass.c (working copy) @@ -356,13 +356,23 @@ static int sdp_cm_listen_lookup(struct s */ sk->sk_lingertime = listen_sk->sk_lingertime; sk->sk_rcvlowat = listen_sk->sk_rcvlowat; +/* XXX Remove once 2.6.12 is released */ +#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11) ) sk->sk_debug= listen_sk->sk_debug; sk->sk_localroute = listen_sk->sk_localroute; + sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; +#else + if (sock_flag(sk, SOCK_DBG)) + sock_set_flag(listen_sk, SOCK_DBG); + if (sock_flag(sk, SOCK_LOCALROUTE)) + sock_set_flag(listen_sk, SOCK_LOCALROUTE); + if (sock_flag(sk, SOCK_RCVTSTAMP)) + sock_set_flag(listen_sk, SOCK_RCVTSTAMP); +#endif sk->sk_sndbuf = listen_sk->sk_sndbuf; sk->sk_rcvbuf = listen_sk->sk_rcvbuf; sk->sk_no_check = listen_sk->sk_no_check; sk->sk_priority = listen_sk->sk_priority; - sk->sk_rcvtstamp= listen_sk->sk_rcvtstamp; sk->sk_rcvtimeo = listen_sk->sk_rcvtimeo; sk->sk_sndtimeo = listen_sk->sk_sndtimeo; sk->sk_reuse= listen_sk->sk_reuse; ___ 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
[openib-general] Rates fixed wont last long
Hello, We tried contacting you awhile ago about your low interest morta(ge rate. You have qualified for the lowest rate in years... You could get over $380,000 for as little as $500 a month! Ba(d credit? Doesn't matter, low rates are fixed no matter what! To get a free, no obli,gation consultation click below: http://www.cra3y.com/sign.asp Best Regards, Lisa Davenport to be remov(ed:http://www.cra3y.com/gone.asp this process takes one week, so please be patient. we do our best to take your email/s off but you have to fill out a rem/ove or else you will continue to recieve email/s. ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
On Thu, 2005-04-21 at 13:25 -0700, Chris Wright wrote: > * Timur Tabi ([EMAIL PROTECTED]) wrote: > > It works with every kernel I've tried. I'm sure there are plenty of kernel > > configuration options that will break our driver. But as long as all the > > distros our customers use work, as well as reasonably-configured custom > > kernels, we're happy. > > > > Hey, if you're happy (and, as you said, you don't intend to merge that > bit), I'm happy ;-) yeah... drivers giving unprivileged processes more privs belong on bugtraq though, not in the core kernel :) ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
* Timur Tabi ([EMAIL PROTECTED]) wrote: > It works with every kernel I've tried. I'm sure there are plenty of kernel > configuration options that will break our driver. But as long as all the > distros our customers use work, as well as reasonably-configured custom > kernels, we're happy. > Hey, if you're happy (and, as you said, you don't intend to merge that bit), I'm happy ;-) thanks, -chris -- Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
Chris Wright wrote: FYI, that will not work on all 2.6 kernels. Specifically anything that's not using capabilities. It works with every kernel I've tried. I'm sure there are plenty of kernel configuration options that will break our driver. But as long as all the distros our customers use work, as well as reasonably-configured custom kernels, we're happy. -- Timur Tabi Staff Software Engineer [EMAIL PROTECTED] One thing a Southern boy will never say is, "I don't think duct tape will fix it." -- Ed Smylie, NASA engineer for Apollo 13 ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
* Timur Tabi ([EMAIL PROTECTED]) wrote: > Andy Isaacson wrote: > >Do you guys simply raise RLIMIT_MEMLOCK to allow apps to lock their > >pages? Or are you doing something more nasty? > > A little more nasty. I raise RLIMIT_MEMLOCK in the driver to "unlimited" > and also set cap_raise(IPC_LOCK). I do this because I need to support all > 2.4 and 2.6 kernel versions with the same driver, but only 2.6.10 and later > have any support for non-root mlock(). FYI, that will not work on all 2.6 kernels. Specifically anything that's not using capabilities. thanks, -chris -- Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
Andy Isaacson wrote: I'm familiar with MPI 1.0 and 2.0, but I haven't been following the development of modern messaging APIs, so I might not make sense here... Assuming that the app calls into the library on a fairly regular basis, Not really. The whole point is to have the adapter DMA the data directly from memory to the network. That's why it's called RDMA - remote DMA. Therefore, cluster admins are going to do their darndest to avoid this behavior, so we might as well just kill the job and make it explicit. Yes, and if it turns out that the same MPI application dies on Linux but not on Solaris because Linux doesn't really care if the memory stays pinned, then we're going to see a lot of MPI customers transitioning away from Linux. *You* need to come up with a solution that looks good to *the community* if you want it merged. True, but I'm not going to waste my time adding this support if the consensus I get from the kernel developers that they don't want Linux to behave this way. Do you guys simply raise RLIMIT_MEMLOCK to allow apps to lock their pages? Or are you doing something more nasty? A little more nasty. I raise RLIMIT_MEMLOCK in the driver to "unlimited" and also set cap_raise(IPC_LOCK). I do this because I need to support all 2.4 and 2.6 kernel versions with the same driver, but only 2.6.10 and later have any support for non-root mlock(). If and when our driver is submitted to the official kernel, that nastiness will be removed of course. -- Timur Tabi Staff Software Engineer [EMAIL PROTECTED] One thing a Southern boy will never say is, "I don't think duct tape will fix it." -- Ed Smylie, NASA engineer for Apollo 13 ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
On Thu, Apr 21, 2005 at 01:39:35PM -0500, Timur Tabi wrote: > Andy Isaacson wrote: > >If you take the hardline position that "the app is the only thing that > >matters", your code is unlikely to get merged. Linux is a > >general-purpose OS. > > The problem is that our driver and library implement an API that we don't > fully control. The API states that the application allocates the memory and > tells the library to register it. The app then goes on its merry way until > it's done, at which point it tells the library to deregister the memory. > Neither the app nor the API has any provision for the app to be notified > that the memory is no longer pinned and therefore can't be trusted. That > would be considered a critical failure from the app's perspective, so the > kernel would be doing it a favor by killing the process. I'm familiar with MPI 1.0 and 2.0, but I haven't been following the development of modern messaging APIs, so I might not make sense here... Assuming that the app calls into the library on a fairly regular basis, you could implement a fast-path/slow-path scheme where the library normally operates in go-fast mode, but if a "unregister" event has occurred, the library falls back to a less performant mode. But now having written that I'm thinking that it's not worth the bother - if you've got a 512P MPP job, it's basically equivalent to job death for one of the nodes to go away in this manner -- even if the process is still running on the node, the fact that you took a giant performance hiccup is unacceptable. Therefore, cluster admins are going to do their darndest to avoid this behavior, so we might as well just kill the job and make it explicit. > >You might want to consider what happens with your communication system > >in a machine running power-saving modes (in the limit, suspend-to-disk). > >Of course most machines with Infiniband adapters aren't running swsusp, > >but it's not inconceivable that blade servers might sleep to lower power > >and cooling costs. > > Any application that registers memory, will in all likelihood be running at > 100% CPU non-stop. The computer is not going to be doing anything else but > whatever that app is trying to do. The application could conceiveable > register gigabytes of RAM, and if even a single page becomes unpinned, the > whole thing is worthless. The application cannot do anything meaningful if > it gets a message saying that some of the memory has become unpinned and > should not be used. > > So the real question is: how important is it to the kernel developers that > Linux support these kinds of enterprise-class applications? While I understand your arguments, this kind of rhetoric is more likely to harden ears than to convince people you're right. I refer you to the "Live Patching Function" thread. *You* need to come up with a solution that looks good to *the community* if you want it merged. In the long run, this process is likely to result in *your* systems working better than if you had just gone off and done your thing. If you have to do something that "tastes bad" to the average l-k hacker, *justify* it by addressing the alternatives and explaining why your solution is the right one. I'm leaning towards agreeing that mlock()-alicious code is the right way to solve this problem, and it's not clear to me what the benefit of adding a new VM_REGISTERED flag would be. Do you guys simply raise RLIMIT_MEMLOCK to allow apps to lock their pages? Or are you doing something more nasty? (Oh, I see that Libor has contributed to the other branch of this thread... off to read...) -andy ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
Andy Isaacson wrote: If you take the hardline position that "the app is the only thing that matters", your code is unlikely to get merged. Linux is a general-purpose OS. The problem is that our driver and library implement an API that we don't fully control. The API states that the application allocates the memory and tells the library to register it. The app then goes on its merry way until it's done, at which point it tells the library to deregister the memory. Neither the app nor the API has any provision for the app to be notified that the memory is no longer pinned and therefore can't be trusted. That would be considered a critical failure from the app's perspective, so the kernel would be doing it a favor by killing the process. You might want to consider what happens with your communication system in a machine running power-saving modes (in the limit, suspend-to-disk). Of course most machines with Infiniband adapters aren't running swsusp, but it's not inconceivable that blade servers might sleep to lower power and cooling costs. Any application that registers memory, will in all likelihood be running at 100% CPU non-stop. The computer is not going to be doing anything else but whatever that app is trying to do. The application could conceiveable register gigabytes of RAM, and if even a single page becomes unpinned, the whole thing is worthless. The application cannot do anything meaningful if it gets a message saying that some of the memory has become unpinned and should not be used. So the real question is: how important is it to the kernel developers that Linux support these kinds of enterprise-class applications? -- Timur Tabi Staff Software Engineer [EMAIL PROTECTED] One thing a Southern boy will never say is, "I don't think duct tape will fix it." -- Ed Smylie, NASA engineer for Apollo 13 ___ 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
Re: [openib-general] [Fwd: rpms/udev/devel pam_console.dev, 1.9,1.10 udev.rules, 1.23, 1.24 udev.spec, 1.82, 1.83]
Bob> Do you know what the time frame is ? i.e., how long till it ships ? http://fedora.redhat.com/participate/schedule/ Bob> Roland, what were your thoughts on when we would be ready to Bob> submit the user mode support upstream ? I hope to be able to send the patches upstream soon after 2.6.12 is released. 2.6.12-rc3 just came out so I would hope that the final release will be in about a month or so. - R. ___ 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
[openib-general] *****SPAM***** $B!zHkL)>pJs!z!!!JK\?M5v2D$"$j!K(B
Spam detection software, running on the system "openib.ca.sandia.gov", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or block similar future email. If you have any questions, see [EMAIL PROTECTED] for details. Content preview: $B8x3+>pJs!*(B [EMAIL PROTECTED](B $B!cD>%a(B,$BD>EE8r49$b;W$$$N$^$^!d(B $B!!(Bhttp://www.getluck2.net/?5001 $B%K%C%/%M!<%`!'[EMAIL PROTECTED](B $BG/Np!'!!#3#0BeA0H>(B $B7l1U7?!'!!#B7?(B $B7k:'!'!!L$:'(B $B?&6H!'!!$=$NB>(B $B%k%C%/%9!'!!Fb=o(B $B%9%?%$%k!'!!Fb=o(B $B#HEY!'!!"!"!"!"!(B $B#P#R!'!!:rG/N%:'$7$A$c$$$^$7$?!#N%:'$b:G6a$G$ODA$7$/$J$$$h$M(B(?)$B$C$F(B $B0V$a$?$j$J$s$+$7$A$c$C$F!&!&!&!#(B $B0l?M$K$J$C$?$i0l?M$K$J$C$?$G7k9=--- Begin Message --- $B8x3+>pJs!*(B [EMAIL PROTECTED](B $B!cD>%a(B,$BD>EE8r49$b;W$$$N$^$^!d(B $B!!(Bhttp://www.getluck2.net/?5001 $B%K%C%/%M!<%`!'[EMAIL PROTECTED](B $BG/Np!'!!#3#0BeA0H>(B $B7l1U7?!'!!#B7?(B $B7k:'!'!!L$:'(B $B?&6H!'!!$=$NB>(B $B%k%C%/%9!'!!Fb=o(B $B%9%?%$%k!'!!Fb=o(B $B#HEY!'!!"!"!"!"!(B $B#P#R!'!!:rG/N%:'$7$A$c$$$^$7$?!#N%:'$b:G6a$G$ODA$7$/$J$$$h$M(B(?)$B$C$F(B $B0V$a$?$j$J$s$+$7$A$c$C$F!&!&!&!#(B $B0l?M$K$J$C$?$i0l?M$K$J$C$?$G7k9=!d(B $B!!(Bhttp://www.getluck2.net/?5001 $B%K%C%/%M!<%`!'[EMAIL PROTECTED](B $BG/Np!'!!#2#0Be8eH>(B $B7l1U7?!'!!#A#B7?(B $B7k:'!'!!L$:'(B $B?&6H!'!!#O#L(B $B%k%C%/%9!'!!!z!z!z(B $B%9%?%$%k!'!!!z!z!z(B $B#HEY!'!!Fb=o(B $B#P#R!'[EMAIL PROTECTED];k$GC5$7$F$^$9!#(B $B%^%8%a$KIU$-2q$&$N$b$1$I!"[EMAIL PROTECTED]&!&!&$C$F(B $B$$$&$N$,K\2;$G$9!#F1$89M$([EMAIL PROTECTED]&!&!&(B $B!c=i?4<[EMAIL PROTECTED]:n!d(B $B!!(Bhttp://www.getluck2.net/?5001 $B"($?$/[EMAIL PROTECTED](B $B!!=gHV$r/!9$*BT$A2<$5$$!#(B $B(.(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(/(B $B(--y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y-y(-(B $B(--y(Bhttp://night.loves-tokyo.com/index.htm$B!!(-(B $B(--y2r6X=w;[EMAIL PROTECTED];%l%VG($l>lEpD0!!(-(B $B(--y7HBS$+$i$b(BOK $B!*!*!y0B?4(BFreeDial$B!y!!(B $B(-(B $B(--y(Bhttp://voice.loves-tokyo.com/ $B(-(B $B(1(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(0(B --- End Message --- ___ 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
Re: [openib-general] Re: [PATCH][RFC][0/4] InfiniBand userspace verbs implementation
On Wed, Apr 20, 2005 at 10:07:45PM -0500, Timur Tabi wrote: > Troy Benjegerdes wrote: > >Someone (aka Tospin, infinicon, and Amasso) should probably post a patch > >adding '#define VM_REGISTERD 0x0100', and some extensions to > >something like 'madvise' to set pages to be registered. > > > >My preference is said patch will also allow a way for the kernel to > >reclaim registered memory from an application under memory pressure. > > I don't know if VM_REGISTERED is a good idea or not, but it should be > absolutely impossible for the kernel to reclaim "registered" (aka pinned) > memory, no matter what. For RDMA services (such as Infiniband, iWARP, etc), > it's normal for non-root processes to pin hundreds of megabytes of memory, > and that memory better be locked to those physical pages until the > application deregisters them. If you take the hardline position that "the app is the only thing that matters", your code is unlikely to get merged. Linux is a general-purpose OS. I don't think that Troy was suggesting the kernel should deregister memory without notifying the application. Personally, I envision something like the NetBSD Scheduler Activations (SA) work, where the kernel can notify the app of changes to its state in a very efficient manner. (According to the NetBSD design whitepaper, the kernel does an upcall whenever the multithreaded app gains or loses a CPU!) In a Linux context, I doubt that fullblown SA is necessary or appropriate. Rather, I'd suggest two new signals, SIGMEMLOW and SIGMEMCRIT. The userland comms library registers handlers for both. When the kernel decides that it needs to reclaim some memory from the app, it sends SIGMEMLOW. The comms library then has the responsibility to un-reserve some memory in an orderly fashion. If a reasonable [1] time has expired since SIGMEMLOW and the kernel is still hungry, the kernel sends SIGMEMCRIT. At this point, the comms lib *must* unregister some memory [2] even if it has to drop state to do so; if it returns from the signal handler without having unregistered the memory, the kernel will SIGKILL. [1] Part of the interface spec should cover the expectation as to how long the library is allowed to take; I'd guess that 2 timeslices should suffice. [2] Is there a way for the kernel to pass down to userspace how many pages it wants, maybe in the sigcontext? > If kernel really thinks it needs to unpin those pages, then at the very > least it should kill the process, and the syslog better have a very clear > message indicating why. That way, the application doesn't continue > thinking that everything's still going to work. If those pages become > unpinned, the applications are going to experience serious data corruption. You might want to consider what happens with your communication system in a machine running power-saving modes (in the limit, suspend-to-disk). Of course most machines with Infiniband adapters aren't running swsusp, but it's not inconceivable that blade servers might sleep to lower power and cooling costs. -andy ___ 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
[openib-general] [PATCH] [MAD] fix race completing request MAD with timeout/cancel
This patch should fix an issue processing a sent MAD after it has timed out or been canceled. The race occurs when a response MAD matches with the sent request. The request could time out or be canceled after the response MAD matches with the request, but before the request completion can be processed. Signed-off-by: Sean Hefty <[EMAIL PROTECTED]> Index: core/mad.c === --- core/mad.c (revision 2203) +++ core/mad.c (working copy) @@ -342,6 +342,7 @@ spin_lock_init(&mad_agent_priv->lock); INIT_LIST_HEAD(&mad_agent_priv->send_list); INIT_LIST_HEAD(&mad_agent_priv->wait_list); + INIT_LIST_HEAD(&mad_agent_priv->done_list); INIT_LIST_HEAD(&mad_agent_priv->rmpp_list); INIT_WORK(&mad_agent_priv->timed_work, timeout_sends, mad_agent_priv); INIT_LIST_HEAD(&mad_agent_priv->local_list); @@ -1591,6 +1592,16 @@ return NULL; } +static void ib_mark_req_done(struct ib_mad_send_wr_private *mad_send_wr) +{ + mad_send_wr->timeout = 0; + if (mad_send_wr->refcount == 1) { + list_del(&mad_send_wr->agent_list); + list_add_tail(&mad_send_wr->agent_list, + &mad_send_wr->mad_agent_priv->done_list); + } +} + static void ib_mad_complete_recv(struct ib_mad_agent_private *mad_agent_priv, struct ib_mad_recv_wc *mad_recv_wc) { @@ -1619,8 +1630,7 @@ wake_up(&mad_agent_priv->wait); return; } - /* Timeout = 0 means that we won't wait for a response */ - mad_send_wr->timeout = 0; + ib_mark_req_done(mad_send_wr); spin_unlock_irqrestore(&mad_agent_priv->lock, flags); /* Defined behavior is to complete response before request */ Index: core/mad_priv.h === --- core/mad_priv.h (revision 2202) +++ core/mad_priv.h (working copy) @@ -92,6 +92,7 @@ spinlock_t lock; struct list_head send_list; struct list_head wait_list; + struct list_head done_list; struct work_struct timed_work; unsigned long timeout; struct list_head local_list; ___ 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
[openib-general] MAD/RMPP test program
For those interested (likely a few developers only), I've checked in a kernel test program that I used to stress the MAD/RMPP code. gen2/utils/src/linux-kernel/infiniband/util/grmpp - Sean ___ 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
RE: [openib-general] [Fwd: rpms/udev/devel pam_console.dev, 1.9, 1.10 udev.rules, 1.23, 1.24 udev.spec, 1.82, 1.83]
>Looks like Fedora Core 4 will support IB out of the box. They have the >kernel modules, udev support, glibc-headers. Is there anything else >that would be nice to get right before 4 ships? >-tduffy Cool. Do you know what the time frame is ? i.e., how long till it ships ? It would be nice to get the user-mode verbs support in, but I think that it may need some more testing and I don't think the user-mode kernel module has been submitted upstream yet. Roland, what were your thoughts on when we would be ready to submit the user mode support upstream ? woody ___ 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
[openib-general] [Fwd: rpms/udev/devel pam_console.dev, 1.9, 1.10 udev.rules, 1.23, 1.24 udev.spec, 1.82, 1.83]
Looks like Fedora Core 4 will support IB out of the box. They have the kernel modules, udev support, glibc-headers. Is there anything else that would be nice to get right before 4 ships? -tduffy --- Begin Message --- Update of /cvs/dist/rpms/udev/devel In directory cvs.devel.redhat.com:/tmp/cvs-serv29354 Modified Files: pam_console.dev udev.rules udev.spec Log Message: - added Inifiniband devices (bug #147035) - fixed pam_console.dev (bug #153250) Index: pam_console.dev === RCS file: /cvs/dist/rpms/udev/devel/pam_console.dev,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- pam_console.dev 13 Dec 2004 13:00:54 - 1.9 +++ pam_console.dev 21 Apr 2005 13:11:33 - 1.10 @@ -29,7 +29,7 @@ fi debug_mesg () { - test -z "$UDEV_LOG" -o "UDEV_LOG" != "1" && return + test -z "$udev_log" -o "$udev_log" != "yes" && return mesg "$@" } @@ -40,7 +40,7 @@ SYMLINKS="" for i in $(/usr/bin/udevinfo -r -q symlink -p "$DEVPATH"); do [ $? -gt 0 ] && break - SYMLINKS="$SYMLINKS ${udev_root%%/}/$i" + SYMLINKS="$SYMLINKS $i" done debug_mesg "Restoring console permissions for $DEVNAME $SYMLINKS" /sbin/pam_console_apply "$DEVNAME" $SYMLINKS Index: udev.rules === RCS file: /cvs/dist/rpms/udev/devel/udev.rules,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- udev.rules 18 Apr 2005 10:42:10 - 1.23 +++ udev.rules 21 Apr 2005 13:11:33 - 1.24 @@ -195,8 +195,11 @@ KERNEL=="scd[0-9]*", SYMLINK="cdrom%e" KERNEL=="pcd[0-9]*", SYMLINK="cdrom%e" KERNEL=="fd[0-9]*",SYMLINK="floppy%e" -KERNEL=="nst[0-9]",SYMLINK="tape%e" -KERNEL=="nosst[0-9]*", SYMLINK="tape%e" +KERNEL=="nst[0-9]", BUS=="scsi", SYMLINK="tape%e" +KERNEL=="nosst[0-9]", BUS=="scsi", SYMLINK="tape%e" + +KERNEL="umad*",NAME="infiniband/%k" +KERNEL="issm*",NAME="infiniband/%k" # do not seperate the next 2 lines!! KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/ide-media.sh %k", RESULT=="floppy", SYMLINK="floppy%e", NAME{ignore_remove, all_partitions}="%k" Index: udev.spec === RCS file: /cvs/dist/rpms/udev/devel/udev.spec,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- udev.spec 18 Apr 2005 10:42:19 - 1.82 +++ udev.spec 21 Apr 2005 13:11:33 - 1.83 @@ -7,7 +7,7 @@ Summary: A userspace implementation of devfs Name: udev Version: 057 -Release: 1 +Release: 2 License: GPL Group: System Environment/Base %if !%{with_persistent} @@ -287,6 +287,10 @@ %endif %changelog +* Thu Apr 21 2005 Harald Hoyer <[EMAIL PROTECTED]> - 057-2 +- added Inifiniband devices (bug #147035) +- fixed pam_console.dev (bug #153250) + * Mon Apr 18 2005 Harald Hoyer <[EMAIL PROTECTED]> - 057-1 - version 057 -- fedora-cvs-commits mailing list [EMAIL PROTECTED] https://www.redhat.com/mailman/listinfo/fedora-cvs-commits --- End Message --- signature.asc Description: This is a digitally signed message part ___ 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
[openib-general] $B!y(B10000$B1_J,L5NA!y(B
$B"#"#"#!V(B1$B1_!WJ,L5NA%]%$%s%HB#Dh%-%c%s%Z!<%se$2$^$9!*(B $B"!(B1$B1_L5NA%]%$%s%H$H?7$7$$=P2q$$(BGET$B!*"*"*"*(B http://awg.webchu.com/?springg $B!zL5NA$GAjEvM7$Y$^$9$N$G@'Hs$*;n$72<$5$$$M"v(B $B!z;HMQ$7$F$_$F!V$3$l$O!*!W$H;W$C$FD:$$$?J}$N$_!VM-NA!W$X$*?J$_2<$5$$!#(B $B%a!<%k$Nl9g$O2<5-(BURL$B$KJV?.2<$5$$(B [EMAIL PROTECTED] ___ 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