staging/lustre: use 64-bit times in ptlrpc_enc_page_pool
ptlrpc_enc_page_pool computes time deltas using 'long' values from get_seconds(). This is probably safe beyond y2038, but it's better to go use monotonic times and 64-bit here for consistency. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
d9f79e6bf0
commit
80018a9edb
@ -92,8 +92,8 @@ static struct ptlrpc_enc_page_pool {
|
||||
unsigned long epp_idle_idx;
|
||||
|
||||
/* last shrink time due to mem tight */
|
||||
long epp_last_shrink;
|
||||
long epp_last_access;
|
||||
time64_t epp_last_shrink;
|
||||
time64_t epp_last_access;
|
||||
|
||||
/*
|
||||
* in-pool pages bookkeeping
|
||||
@ -153,8 +153,8 @@ int sptlrpc_proc_enc_pool_seq_show(struct seq_file *m, void *v)
|
||||
page_pools.epp_total_pages,
|
||||
page_pools.epp_free_pages,
|
||||
page_pools.epp_idle_idx,
|
||||
get_seconds() - page_pools.epp_last_shrink,
|
||||
get_seconds() - page_pools.epp_last_access,
|
||||
(long)(ktime_get_seconds() - page_pools.epp_last_shrink),
|
||||
(long)(ktime_get_seconds() - page_pools.epp_last_access),
|
||||
page_pools.epp_st_max_pages,
|
||||
page_pools.epp_st_grows,
|
||||
page_pools.epp_st_grow_fails,
|
||||
@ -226,7 +226,7 @@ static unsigned long enc_pools_shrink_count(struct shrinker *s,
|
||||
* if no pool access for a long time, we consider it's fully idle.
|
||||
* a little race here is fine.
|
||||
*/
|
||||
if (unlikely(get_seconds() - page_pools.epp_last_access >
|
||||
if (unlikely(ktime_get_seconds() - page_pools.epp_last_access >
|
||||
CACHE_QUIESCENT_PERIOD)) {
|
||||
spin_lock(&page_pools.epp_lock);
|
||||
page_pools.epp_idle_idx = IDLE_IDX_MAX;
|
||||
@ -253,7 +253,7 @@ static unsigned long enc_pools_shrink_scan(struct shrinker *s,
|
||||
(long)sc->nr_to_scan, page_pools.epp_free_pages);
|
||||
|
||||
page_pools.epp_st_shrinks++;
|
||||
page_pools.epp_last_shrink = get_seconds();
|
||||
page_pools.epp_last_shrink = ktime_get_seconds();
|
||||
}
|
||||
spin_unlock(&page_pools.epp_lock);
|
||||
|
||||
@ -261,7 +261,7 @@ static unsigned long enc_pools_shrink_scan(struct shrinker *s,
|
||||
* if no pool access for a long time, we consider it's fully idle.
|
||||
* a little race here is fine.
|
||||
*/
|
||||
if (unlikely(get_seconds() - page_pools.epp_last_access >
|
||||
if (unlikely(ktime_get_seconds() - page_pools.epp_last_access >
|
||||
CACHE_QUIESCENT_PERIOD)) {
|
||||
spin_lock(&page_pools.epp_lock);
|
||||
page_pools.epp_idle_idx = IDLE_IDX_MAX;
|
||||
@ -457,7 +457,7 @@ static inline void enc_pools_wakeup(void)
|
||||
}
|
||||
}
|
||||
|
||||
static int enc_pools_should_grow(int page_needed, long now)
|
||||
static int enc_pools_should_grow(int page_needed, time64_t now)
|
||||
{
|
||||
/* don't grow if someone else is growing the pools right now,
|
||||
* or the pools has reached its full capacity
|
||||
@ -521,7 +521,7 @@ again:
|
||||
if (tick == 0)
|
||||
tick = cfs_time_current();
|
||||
|
||||
now = get_seconds();
|
||||
now = ktime_get_seconds();
|
||||
|
||||
page_pools.epp_st_missings++;
|
||||
page_pools.epp_pages_short += desc->bd_iov_count;
|
||||
@ -600,7 +600,7 @@ again:
|
||||
this_idle) /
|
||||
(IDLE_IDX_WEIGHT + 1);
|
||||
|
||||
page_pools.epp_last_access = get_seconds();
|
||||
page_pools.epp_last_access = ktime_get_seconds();
|
||||
|
||||
spin_unlock(&page_pools.epp_lock);
|
||||
return 0;
|
||||
@ -725,8 +725,8 @@ int sptlrpc_enc_pool_init(void)
|
||||
page_pools.epp_growing = 0;
|
||||
|
||||
page_pools.epp_idle_idx = 0;
|
||||
page_pools.epp_last_shrink = get_seconds();
|
||||
page_pools.epp_last_access = get_seconds();
|
||||
page_pools.epp_last_shrink = ktime_get_seconds();
|
||||
page_pools.epp_last_access = ktime_get_seconds();
|
||||
|
||||
spin_lock_init(&page_pools.epp_lock);
|
||||
page_pools.epp_total_pages = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user