On (01/28/18 14:51), Willem de Bruijn wrote: > > On (01/25/18 15:44), Willem de Bruijn wrote: ; > >> You may alos be able to do the same as tcp zerocopy and > >> hold an sk reference on the notification skb. ; > I don't quite follow. Every notification skb is created when pages refcount > is increased. It persists until at least rds_rm_zerocopy_callback, after data > skb has been freed and pages refcount has been decreased. > > In this callback, skb is consumed if another skb is already queued on > the error queue, otherwise it is queued itself. It needs to hold a sock ref > until it can be queued.
maybe I did not follow the original suggestion- were you suggesting that I hold a pointer to the sk from e.g., the skb->cb itself? I dont know that it would make things simpler, whereas having the pointer and refcount in the rds_message itself, and track this independantly of whether/not zcopy was used, seems like a more consistent dsta-structure model, so I'd like to leave this as is.