* Re: [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update()
2022-06-28 14:49 ` [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update() Jason Yan
@ 2022-06-28 14:45 ` Jens Axboe
2022-06-29 1:30 ` Jason Yan
0 siblings, 1 reply; 5+ messages in thread
From: Jens Axboe @ 2022-06-28 14:45 UTC (permalink / raw)
To: Jason Yan, tj, jack, hch; +Cc: linux-block
On 6/28/22 8:49 AM, Jason Yan wrote:
> To reduce some duplicated code, factor out blkcg_iostat_update(). No
> functional change.
>
> Signed-off-by: Jason Yan <yanaijie@huawei.com>
> ---
> block/blk-cgroup.c | 37 ++++++++++++++++++++-----------------
> 1 file changed, 20 insertions(+), 17 deletions(-)
>
> diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
> index 764e740b0c0f..60d205ec213e 100644
> --- a/block/blk-cgroup.c
> +++ b/block/blk-cgroup.c
> @@ -846,6 +846,21 @@ static void blkg_iostat_sub(struct blkg_iostat *dst, struct blkg_iostat *src)
> }
> }
>
> +static inline void blkcg_iostat_update(struct blkcg_gq *blkg,
> + struct blkg_iostat *cur, struct blkg_iostat *last)
> +{
> + struct blkg_iostat delta;
> + unsigned long flags;
> +
> + /* propagate percpu delta to global */
> + flags = u64_stats_update_begin_irqsave(&blkg->iostat.sync);
> + blkg_iostat_set(&delta, cur);
> + blkg_iostat_sub(&delta, last);
> + blkg_iostat_add(&blkg->iostat.cur, &delta);
> + blkg_iostat_add(last, &delta);
> + u64_stats_update_end_irqrestore(&blkg->iostat.sync, flags);
> +}
> +
Please kill the inline.
--
Jens Axboe
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 0/2] blk-cgroup: duplicated code refactor
@ 2022-06-28 14:49 Jason Yan
2022-06-28 14:49 ` [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update() Jason Yan
2022-06-28 14:49 ` [PATCH 2/2] blk-cgroup: factor out blkcg_free_all_cpd() Jason Yan
0 siblings, 2 replies; 5+ messages in thread
From: Jason Yan @ 2022-06-28 14:49 UTC (permalink / raw)
To: tj, jack, hch, axboe; +Cc: linux-block, Jason Yan
Two duplicated code segment refactors. No functional change.
Jason Yan (2):
blk-cgroup: factor out blkcg_iostat_update()
blk-cgroup: factor out blkcg_free_all_cpd()
block/blk-cgroup.c | 73 ++++++++++++++++++++++++----------------------
1 file changed, 38 insertions(+), 35 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update()
2022-06-28 14:49 [PATCH 0/2] blk-cgroup: duplicated code refactor Jason Yan
@ 2022-06-28 14:49 ` Jason Yan
2022-06-28 14:45 ` Jens Axboe
2022-06-28 14:49 ` [PATCH 2/2] blk-cgroup: factor out blkcg_free_all_cpd() Jason Yan
1 sibling, 1 reply; 5+ messages in thread
From: Jason Yan @ 2022-06-28 14:49 UTC (permalink / raw)
To: tj, jack, hch, axboe; +Cc: linux-block, Jason Yan
To reduce some duplicated code, factor out blkcg_iostat_update(). No
functional change.
Signed-off-by: Jason Yan <yanaijie@huawei.com>
---
block/blk-cgroup.c | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 764e740b0c0f..60d205ec213e 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -846,6 +846,21 @@ static void blkg_iostat_sub(struct blkg_iostat *dst, struct blkg_iostat *src)
}
}
+static inline void blkcg_iostat_update(struct blkcg_gq *blkg,
+ struct blkg_iostat *cur, struct blkg_iostat *last)
+{
+ struct blkg_iostat delta;
+ unsigned long flags;
+
+ /* propagate percpu delta to global */
+ flags = u64_stats_update_begin_irqsave(&blkg->iostat.sync);
+ blkg_iostat_set(&delta, cur);
+ blkg_iostat_sub(&delta, last);
+ blkg_iostat_add(&blkg->iostat.cur, &delta);
+ blkg_iostat_add(last, &delta);
+ u64_stats_update_end_irqrestore(&blkg->iostat.sync, flags);
+}
+
static void blkcg_rstat_flush(struct cgroup_subsys_state *css, int cpu)
{
struct blkcg *blkcg = css_to_blkcg(css);
@@ -860,8 +875,7 @@ static void blkcg_rstat_flush(struct cgroup_subsys_state *css, int cpu)
hlist_for_each_entry_rcu(blkg, &blkcg->blkg_list, blkcg_node) {
struct blkcg_gq *parent = blkg->parent;
struct blkg_iostat_set *bisc = per_cpu_ptr(blkg->iostat_cpu, cpu);
- struct blkg_iostat cur, delta;
- unsigned long flags;
+ struct blkg_iostat cur;
unsigned int seq;
/* fetch the current per-cpu values */
@@ -870,23 +884,12 @@ static void blkcg_rstat_flush(struct cgroup_subsys_state *css, int cpu)
blkg_iostat_set(&cur, &bisc->cur);
} while (u64_stats_fetch_retry(&bisc->sync, seq));
- /* propagate percpu delta to global */
- flags = u64_stats_update_begin_irqsave(&blkg->iostat.sync);
- blkg_iostat_set(&delta, &cur);
- blkg_iostat_sub(&delta, &bisc->last);
- blkg_iostat_add(&blkg->iostat.cur, &delta);
- blkg_iostat_add(&bisc->last, &delta);
- u64_stats_update_end_irqrestore(&blkg->iostat.sync, flags);
+ blkcg_iostat_update(blkg, &cur, &bisc->last);
/* propagate global delta to parent (unless that's root) */
- if (parent && parent->parent) {
- flags = u64_stats_update_begin_irqsave(&parent->iostat.sync);
- blkg_iostat_set(&delta, &blkg->iostat.cur);
- blkg_iostat_sub(&delta, &blkg->iostat.last);
- blkg_iostat_add(&parent->iostat.cur, &delta);
- blkg_iostat_add(&blkg->iostat.last, &delta);
- u64_stats_update_end_irqrestore(&parent->iostat.sync, flags);
- }
+ if (parent && parent->parent)
+ blkcg_iostat_update(parent, &blkg->iostat.cur,
+ &blkg->iostat.last);
}
rcu_read_unlock();
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] blk-cgroup: factor out blkcg_free_all_cpd()
2022-06-28 14:49 [PATCH 0/2] blk-cgroup: duplicated code refactor Jason Yan
2022-06-28 14:49 ` [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update() Jason Yan
@ 2022-06-28 14:49 ` Jason Yan
1 sibling, 0 replies; 5+ messages in thread
From: Jason Yan @ 2022-06-28 14:49 UTC (permalink / raw)
To: tj, jack, hch, axboe; +Cc: linux-block, Jason Yan
To reduce some duplicated code, factor out blkcg_free_all_cpd(). No
functional change.
Signed-off-by: Jason Yan <yanaijie@huawei.com>
---
block/blk-cgroup.c | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 60d205ec213e..22268af435bd 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -1532,6 +1532,18 @@ void blkcg_deactivate_policy(struct request_queue *q,
}
EXPORT_SYMBOL_GPL(blkcg_deactivate_policy);
+static void blkcg_free_all_cpd(struct blkcg_policy *pol)
+{
+ struct blkcg *blkcg;
+
+ list_for_each_entry(blkcg, &all_blkcgs, all_blkcgs_node) {
+ if (blkcg->cpd[pol->plid]) {
+ pol->cpd_free_fn(blkcg->cpd[pol->plid]);
+ blkcg->cpd[pol->plid] = NULL;
+ }
+ }
+}
+
/**
* blkcg_policy_register - register a blkcg policy
* @pol: blkcg policy to register
@@ -1596,14 +1608,9 @@ int blkcg_policy_register(struct blkcg_policy *pol)
return 0;
err_free_cpds:
- if (pol->cpd_free_fn) {
- list_for_each_entry(blkcg, &all_blkcgs, all_blkcgs_node) {
- if (blkcg->cpd[pol->plid]) {
- pol->cpd_free_fn(blkcg->cpd[pol->plid]);
- blkcg->cpd[pol->plid] = NULL;
- }
- }
- }
+ if (pol->cpd_free_fn)
+ blkcg_free_all_cpd(pol);
+
blkcg_policy[pol->plid] = NULL;
err_unlock:
mutex_unlock(&blkcg_pol_mutex);
@@ -1620,8 +1627,6 @@ EXPORT_SYMBOL_GPL(blkcg_policy_register);
*/
void blkcg_policy_unregister(struct blkcg_policy *pol)
{
- struct blkcg *blkcg;
-
mutex_lock(&blkcg_pol_register_mutex);
if (WARN_ON(blkcg_policy[pol->plid] != pol))
@@ -1636,14 +1641,9 @@ void blkcg_policy_unregister(struct blkcg_policy *pol)
/* remove cpds and unregister */
mutex_lock(&blkcg_pol_mutex);
- if (pol->cpd_free_fn) {
- list_for_each_entry(blkcg, &all_blkcgs, all_blkcgs_node) {
- if (blkcg->cpd[pol->plid]) {
- pol->cpd_free_fn(blkcg->cpd[pol->plid]);
- blkcg->cpd[pol->plid] = NULL;
- }
- }
- }
+ if (pol->cpd_free_fn)
+ blkcg_free_all_cpd(pol);
+
blkcg_policy[pol->plid] = NULL;
mutex_unlock(&blkcg_pol_mutex);
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update()
2022-06-28 14:45 ` Jens Axboe
@ 2022-06-29 1:30 ` Jason Yan
0 siblings, 0 replies; 5+ messages in thread
From: Jason Yan @ 2022-06-29 1:30 UTC (permalink / raw)
To: Jens Axboe, tj, jack, hch; +Cc: linux-block
On 2022/6/28 22:45, Jens Axboe wrote:
> On 6/28/22 8:49 AM, Jason Yan wrote:
>> To reduce some duplicated code, factor out blkcg_iostat_update(). No
>> functional change.
>>
>> Signed-off-by: Jason Yan <yanaijie@huawei.com>
>> ---
>> block/blk-cgroup.c | 37 ++++++++++++++++++++-----------------
>> 1 file changed, 20 insertions(+), 17 deletions(-)
>>
>> diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
>> index 764e740b0c0f..60d205ec213e 100644
>> --- a/block/blk-cgroup.c
>> +++ b/block/blk-cgroup.c
>> @@ -846,6 +846,21 @@ static void blkg_iostat_sub(struct blkg_iostat *dst, struct blkg_iostat *src)
>> }
>> }
>>
>> +static inline void blkcg_iostat_update(struct blkcg_gq *blkg,
>> + struct blkg_iostat *cur, struct blkg_iostat *last)
>> +{
>> + struct blkg_iostat delta;
>> + unsigned long flags;
>> +
>> + /* propagate percpu delta to global */
>> + flags = u64_stats_update_begin_irqsave(&blkg->iostat.sync);
>> + blkg_iostat_set(&delta, cur);
>> + blkg_iostat_sub(&delta, last);
>> + blkg_iostat_add(&blkg->iostat.cur, &delta);
>> + blkg_iostat_add(last, &delta);
>> + u64_stats_update_end_irqrestore(&blkg->iostat.sync, flags);
>> +}
>> +
>
> Please kill the inline.
>
OK. Thanks.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-06-29 1:30 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-28 14:49 [PATCH 0/2] blk-cgroup: duplicated code refactor Jason Yan
2022-06-28 14:49 ` [PATCH 1/2] blk-cgroup: factor out blkcg_iostat_update() Jason Yan
2022-06-28 14:45 ` Jens Axboe
2022-06-29 1:30 ` Jason Yan
2022-06-28 14:49 ` [PATCH 2/2] blk-cgroup: factor out blkcg_free_all_cpd() Jason Yan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.