mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 07:04:24 +00: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:
parent
9e7fa14935
commit
bcef118e7e
2 changed files with 63 additions and 35 deletions
|
@ -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(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_timeout, &obd_dump_on_timeout);
|
||||||
LUSTRE_STATIC_UINT_ATTR(dump_on_eviction, &obd_dump_on_eviction);
|
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
|
#ifdef CONFIG_SYSCTL
|
||||||
static struct ctl_table obd_table[] = {
|
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_debug_peer_on_timeout.u.attr,
|
||||||
&lustre_sattr_dump_on_timeout.u.attr,
|
&lustre_sattr_dump_on_timeout.u.attr,
|
||||||
&lustre_sattr_dump_on_eviction.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,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -90,6 +90,59 @@ Description:
|
||||||
This is useful if yout debug buffer typically rolls over
|
This is useful if yout debug buffer typically rolls over
|
||||||
by the time you notice the eviction event.
|
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
|
What: /sys/fs/lustre/llite/<fsname>-<uuid>/blocksize
|
||||||
Date: May 2015
|
Date: May 2015
|
||||||
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
|
Contact: "Oleg Drokin" <oleg.drokin@intel.com>
|
||||||
|
|
Loading…
Reference in a new issue