2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 10:44:14 +08:00

staging/lustre/obdclass: Move AT controls from sysctl to sysfs

Adaptive Timeouts controls are being moved from /proc/sys/lustre
to /sys/fs/lustre

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Oleg Drokin 2015-07-06 12:48:49 -04:00 committed by Greg Kroah-Hartman
parent 9e7fa14935
commit bcef118e7e
2 changed files with 63 additions and 35 deletions

View File

@ -138,44 +138,14 @@ LUSTRE_RW_ATTR(max_dirty_mb);
LUSTRE_STATIC_UINT_ATTR(debug_peer_on_timeout, &obd_debug_peer_on_timeout);
LUSTRE_STATIC_UINT_ATTR(dump_on_timeout, &obd_dump_on_timeout);
LUSTRE_STATIC_UINT_ATTR(dump_on_eviction, &obd_dump_on_eviction);
LUSTRE_STATIC_UINT_ATTR(at_min, &at_min);
LUSTRE_STATIC_UINT_ATTR(at_max, &at_max);
LUSTRE_STATIC_UINT_ATTR(at_extra, &at_extra);
LUSTRE_STATIC_UINT_ATTR(at_early_margin, &at_early_margin);
LUSTRE_STATIC_UINT_ATTR(at_history, &at_history);
#ifdef CONFIG_SYSCTL
static struct ctl_table obd_table[] = {
{
.procname = "at_min",
.data = &at_min,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
{
.procname = "at_max",
.data = &at_max,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
{
.procname = "at_extra",
.data = &at_extra,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
{
.procname = "at_early_margin",
.data = &at_early_margin,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
{
.procname = "at_history",
.data = &at_history,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec,
},
{}
};
@ -197,6 +167,11 @@ static struct attribute *lustre_attrs[] = {
&lustre_sattr_debug_peer_on_timeout.u.attr,
&lustre_sattr_dump_on_timeout.u.attr,
&lustre_sattr_dump_on_eviction.u.attr,
&lustre_sattr_at_min.u.attr,
&lustre_sattr_at_max.u.attr,
&lustre_sattr_at_extra.u.attr,
&lustre_sattr_at_early_margin.u.attr,
&lustre_sattr_at_history.u.attr,
NULL,
};

View File

@ -90,6 +90,59 @@ Description:
This is useful if yout debug buffer typically rolls over
by the time you notice the eviction event.
What: /sys/fs/lustre/at_min
Date: July 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description:
Controls minimum adaptive timeout in seconds. If you encounter
a case where clients timeout due to server-reported processing
time being too short, you might consider increasing this value.
One common case of this if the underlying network has
unpredictable long delays.
Default: 0
What: /sys/fs/lustre/at_max
Date: July 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description:
Controls maximum adaptive timeout in seconds. If at_max timeout
is reached for an RPC, the RPC will time out.
Some genuinuely slow network hardware might warrant increasing
this value.
Setting this value to 0 disables Adaptive Timeouts
functionality and old-style obd_timeout value is then used.
Default: 600
What: /sys/fs/lustre/at_extra
Date: July 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description:
Controls how much extra time to request for unfinished requests
in processing in seconds. Normally a server-side parameter, it
is also used on the client for responses to various LDLM ASTs
that are handled with a special server thread on the client.
This is a way for the servers to ask the clients not to time
out the request that reached current servicing time estimate
yet and give it some more time.
Default: 30
What: /sys/fs/lustre/at_early_margin
Date: July 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description:
Controls when to send the early reply for requests that are
about to timeout as an offset to the estimated service time in
seconds..
Default: 5
What: /sys/fs/lustre/at_history
Date: July 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
Description:
Controls for how many seconds to remember slowest events
encountered by adaptive timeouts code.
Default: 600
What: /sys/fs/lustre/llite/<fsname>-<uuid>/blocksize
Date: May 2015
Contact: "Oleg Drokin" <oleg.drokin@intel.com>