flex_proportions: remove unused fprop_local_single
The single variant of flex_proportions is not used. Simply remove it. Link: https://lkml.kernel.org/r/20240118201321.759174-1-shikemeng@huaweicloud.com Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
0e02ca29a5
commit
d6bbab8f35
@ -38,38 +38,6 @@ int fprop_global_init(struct fprop_global *p, gfp_t gfp);
|
|||||||
void fprop_global_destroy(struct fprop_global *p);
|
void fprop_global_destroy(struct fprop_global *p);
|
||||||
bool fprop_new_period(struct fprop_global *p, int periods);
|
bool fprop_new_period(struct fprop_global *p, int periods);
|
||||||
|
|
||||||
/*
|
|
||||||
* ---- SINGLE ----
|
|
||||||
*/
|
|
||||||
struct fprop_local_single {
|
|
||||||
/* the local events counter */
|
|
||||||
unsigned long events;
|
|
||||||
/* Period in which we last updated events */
|
|
||||||
unsigned int period;
|
|
||||||
raw_spinlock_t lock; /* Protect period and numerator */
|
|
||||||
};
|
|
||||||
|
|
||||||
#define INIT_FPROP_LOCAL_SINGLE(name) \
|
|
||||||
{ .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \
|
|
||||||
}
|
|
||||||
|
|
||||||
int fprop_local_init_single(struct fprop_local_single *pl);
|
|
||||||
void fprop_local_destroy_single(struct fprop_local_single *pl);
|
|
||||||
void __fprop_inc_single(struct fprop_global *p, struct fprop_local_single *pl);
|
|
||||||
void fprop_fraction_single(struct fprop_global *p,
|
|
||||||
struct fprop_local_single *pl, unsigned long *numerator,
|
|
||||||
unsigned long *denominator);
|
|
||||||
|
|
||||||
static inline
|
|
||||||
void fprop_inc_single(struct fprop_global *p, struct fprop_local_single *pl)
|
|
||||||
{
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
local_irq_save(flags);
|
|
||||||
__fprop_inc_single(p, pl);
|
|
||||||
local_irq_restore(flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ---- PERCPU ----
|
* ---- PERCPU ----
|
||||||
*/
|
*/
|
||||||
|
@ -83,83 +83,6 @@ bool fprop_new_period(struct fprop_global *p, int periods)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* ---- SINGLE ----
|
|
||||||
*/
|
|
||||||
|
|
||||||
int fprop_local_init_single(struct fprop_local_single *pl)
|
|
||||||
{
|
|
||||||
pl->events = 0;
|
|
||||||
pl->period = 0;
|
|
||||||
raw_spin_lock_init(&pl->lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void fprop_local_destroy_single(struct fprop_local_single *pl)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void fprop_reflect_period_single(struct fprop_global *p,
|
|
||||||
struct fprop_local_single *pl)
|
|
||||||
{
|
|
||||||
unsigned int period = p->period;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
/* Fast path - period didn't change */
|
|
||||||
if (pl->period == period)
|
|
||||||
return;
|
|
||||||
raw_spin_lock_irqsave(&pl->lock, flags);
|
|
||||||
/* Someone updated pl->period while we were spinning? */
|
|
||||||
if (pl->period >= period) {
|
|
||||||
raw_spin_unlock_irqrestore(&pl->lock, flags);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
/* Aging zeroed our fraction? */
|
|
||||||
if (period - pl->period < BITS_PER_LONG)
|
|
||||||
pl->events >>= period - pl->period;
|
|
||||||
else
|
|
||||||
pl->events = 0;
|
|
||||||
pl->period = period;
|
|
||||||
raw_spin_unlock_irqrestore(&pl->lock, flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Event of type pl happened */
|
|
||||||
void __fprop_inc_single(struct fprop_global *p, struct fprop_local_single *pl)
|
|
||||||
{
|
|
||||||
fprop_reflect_period_single(p, pl);
|
|
||||||
pl->events++;
|
|
||||||
percpu_counter_add(&p->events, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return fraction of events of type pl */
|
|
||||||
void fprop_fraction_single(struct fprop_global *p,
|
|
||||||
struct fprop_local_single *pl,
|
|
||||||
unsigned long *numerator, unsigned long *denominator)
|
|
||||||
{
|
|
||||||
unsigned int seq;
|
|
||||||
s64 num, den;
|
|
||||||
|
|
||||||
do {
|
|
||||||
seq = read_seqcount_begin(&p->sequence);
|
|
||||||
fprop_reflect_period_single(p, pl);
|
|
||||||
num = pl->events;
|
|
||||||
den = percpu_counter_read_positive(&p->events);
|
|
||||||
} while (read_seqcount_retry(&p->sequence, seq));
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Make fraction <= 1 and denominator > 0 even in presence of percpu
|
|
||||||
* counter errors
|
|
||||||
*/
|
|
||||||
if (den <= num) {
|
|
||||||
if (num)
|
|
||||||
den = num;
|
|
||||||
else
|
|
||||||
den = 1;
|
|
||||||
}
|
|
||||||
*denominator = den;
|
|
||||||
*numerator = num;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ---- PERCPU ----
|
* ---- PERCPU ----
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user