[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