lkml.org 
[lkml]   [2015]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 11/20] staging/lustre/obdclass: Move AT controls from sysctl to sysfs
    Date
    From: Oleg Drokin <green@linuxhacker.ru>

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

    Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
    ---
    .../lustre/lustre/obdclass/linux/linux-sysctl.c | 45 ++++--------------
    drivers/staging/lustre/sysfs-fs-lustre | 53 ++++++++++++++++++++++
    2 files changed, 63 insertions(+), 35 deletions(-)

    diff --git a/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c b/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c
    index 6af1cb2..82b3c39 100644
    --- a/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c
    +++ b/drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c
    @@ -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,
    };

    diff --git a/drivers/staging/lustre/sysfs-fs-lustre b/drivers/staging/lustre/sysfs-fs-lustre
    index ea9982b..873e2cf 100644
    --- a/drivers/staging/lustre/sysfs-fs-lustre
    +++ b/drivers/staging/lustre/sysfs-fs-lustre
    @@ -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>
    --
    2.1.0


    \
     
     \ /
      Last update: 2015-07-06 19:21    [W:5.044 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site