[ENBD] Doubled requests

Peter T. Breuer ptb at it.uc3m.es
Tue Jan 13 05:26:18 MST 2004


"Also sprach Peter T. Breuer:"
> > do you know what/who could trigger the additional requests/writes? and in
> > the best case: is there a way to avoid them, by increasing timeouts, for
> > instance?
> 
> If there is a retransmit, kernel dmesg should say. It will record a
> "rollback", at least.

The actual timeout involved is

   lo->req_timeo * HZ

That's actually set by a client ioctl. I don't see a syscall to set it.
Do you want one? It's no trouble. And I would think that "never" should 
be a value too ...

Up top:

+ static   int req_timeo
+                       = ENBD_REQ_TIMEO;       /* PTB - base timeout */
+ MODULE_PARM(req_timeo, "i");


in enbd_setup:

- lo->req_timeo = ENBD_REQ_TIMEO;      /* PTB default pulse intvl */
+ lo->req_timeo = req_timeo;      /* PTB default pulse intvl */



If you want the syscall interface, you will have to add in enbd_setup()
lower down:

+       lo->systable[9] = (ctl_table) {10, "req_timeo",
+                   &lo->req_timeo, sizeof (int), 0644,
+                   NULL, &proc_dointvec, };

and probably increase the space reserved for these controls in enbd.h
by incrementing ENBD_SYSCTL_MAX. Put it at 16. They're getting popular.

Oh, the global can be altered by a syscall too if you add this into the
sysdefaultstable

+   {14, "req_timeo",
+      &req_timeo, sizeof (int), 0644, NULL, &proc_dointvec},

Err ... that leaves the nbdinfo interface. I'll tell you if you are
interested.

Peter


More information about the ENBD mailing list