> -----Original Message----- > From: Tom Talpey > Sent: Monday, August 14, 2017 4:42 PM > To: Long Li <[email protected]>; Steve French <[email protected]>; > [email protected]; [email protected]; linux- > [email protected] > Subject: RE: [[PATCH v1] 25/37] [CIFS] SMBD: Support SMBD idle connection > timer > > > -----Original Message----- > > From: [email protected] [mailto:linux-cifs- > > [email protected]] On Behalf Of Long Li > > Sent: Monday, August 14, 2017 7:30 PM > > To: Tom Talpey <[email protected]>; Steve French > > <[email protected]>; [email protected]; > > [email protected]; linux- [email protected] > > Subject: RE: [[PATCH v1] 25/37] [CIFS] SMBD: Support SMBD idle > > connection timer > > > > [This sender failed our fraud detection checks and may not be who they > > appear to be. Learn about spoofing at > > http://aka.ms/LearnAboutSpoofing] > > > > > -----Original Message----- > > > From: Tom Talpey > > > Sent: Monday, August 14, 2017 2:12 PM > > > To: Long Li <[email protected]>; Steve French > > > <[email protected]>; [email protected]; > > > [email protected]; linux- [email protected] > > > Cc: Long Li <[email protected]> > > > Subject: RE: [[PATCH v1] 25/37] [CIFS] SMBD: Support SMBD idle > > > connection timer > > > > > > > -----Original Message----- > > > > From: [email protected] [mailto:linux-cifs- > > > > [email protected]] On Behalf Of Long Li > > > > Sent: Wednesday, August 2, 2017 4:11 PM > > > > To: Steve French <[email protected]>; [email protected]; > > > > samba- [email protected]; [email protected] > > > > Cc: Long Li <[email protected]> > > > > Subject: [[PATCH v1] 25/37] [CIFS] SMBD: Support SMBD idle > > > > connection timer > > > > > > > > +static int keep_alive_interval = 120; > > > > > > This is the recommended value, but not the only possibility. > > > > > > > @@ -1348,6 +1369,10 @@ struct cifs_rdma_info* > > > cifs_create_rdma_session( > > > > init_waitqueue_head(&info->wait_send_queue); > > > > init_waitqueue_head(&info->wait_reassembly_queue); > > > > > > > > + INIT_DELAYED_WORK(&info->idle_timer_work, > > > idle_connection_timer); > > > > + schedule_delayed_work(&info->idle_timer_work, > > > > + info->keep_alive_interval*HZ); > > > > + > > > > > > This initialization is ok, but the timer should be rescheduled > > > (extended) any time any packet is sent. There is no need to perform > > > keepalives on an active SMB Direct connection. > > > > My feeling is that rescheduling on a work queue for every packet is > > sent is not efficient, especially under heavy conditions. > > That's not what I was suggesting. Cant the timer simply be re-extended to > the 120-second interval? I.e. on an active connection, it will never fire > because it's always advancing. > > As defined here, it will go off and send a keepalive every 120 seconds. The > idle_connection_timer() routine unconditionally sends it. > > > > > Firing it every 120 seconds doesn't seem to be big waste and may > > actually save some CPU. > > Firing the timer, no big deal. Sending the packets and requiring the peer to > process them too, disagree.
Fair enough. I will fix the code to modify delayed work instead of firing every 120 seconds. > > Tom.

