* [folded-merged] mm-mempolicy-weighted-interleave-auto-tuning-fix.patch removed from -mm tree
@ 2025-05-13 6:45 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2025-05-13 6:45 UTC (permalink / raw)
To: mm-commits, yunjeong.mun, ying.huang, osalvador, lenb,
Jonathan.Cameron, honggyu.kim, harry.yoo, hannes, gregkh, gourry,
dave.jiang, dan.j.williams, joshua.hahnjy, akpm
The quilt patch titled
Subject: mm-mempolicy-weighted-interleave-auto-tuning-fix
has been removed from the -mm tree. Its filename was
mm-mempolicy-weighted-interleave-auto-tuning-fix.patch
This patch was dropped because it was folded into mm-mempolicy-weighted-interleave-auto-tuning.patch
------------------------------------------------------
From: Joshua Hahn <joshua.hahnjy@gmail.com>
Subject: mm-mempolicy-weighted-interleave-auto-tuning-fix
Date: Sat, 10 May 2025 19:58:39 -0700
Some wordsmithing changes, some code simplification/cleanups, and make
sure that the code behavior matches that of the ABI I described.
Link: https://lkml.kernel.org/r/20250511025840.2410154-1-joshua.hahnjy@gmail.com
Signed-off-by: Joshua Hahn <joshua.hahnjy@gmail.com>
Reviewed-by: Honggyu Kim <honggyu.kim@sk.com>
Tested-by: Honggyu Kim <honggyu.kim@sk.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Gregory Price <gourry@gourry.net>
Cc: Harry Yoo <harry.yoo@oracle.com>
Cc: Joanthan Cameron <Jonathan.Cameron@huawei.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Len Brown <lenb@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Ying Huang <ying.huang@linux.alibaba.com>
Cc: Yunjeong Mun <yunjeong.mun@sk.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
Documentation/ABI/testing/sysfs-kernel-mm-mempolicy-weighted-interleave | 2
include/linux/mempolicy.h | 9 --
mm/mempolicy.c | 35 ++++++----
3 files changed, 25 insertions(+), 21 deletions(-)
--- a/Documentation/ABI/testing/sysfs-kernel-mm-mempolicy-weighted-interleave~mm-mempolicy-weighted-interleave-auto-tuning-fix
+++ a/Documentation/ABI/testing/sysfs-kernel-mm-mempolicy-weighted-interleave
@@ -24,7 +24,7 @@ Description: Weight configuration interf
empty string, ...) will return -EINVAL.
Changing the weight to a valid value will automatically
- update the system to manual mode as well.
+ switch the system to manual mode as well.
What: /sys/kernel/mm/mempolicy/weighted_interleave/auto
Date: May 2025
--- a/include/linux/mempolicy.h~mm-mempolicy-weighted-interleave-auto-tuning-fix
+++ a/include/linux/mempolicy.h
@@ -58,15 +58,6 @@ struct mempolicy {
};
/*
- * A null weighted_interleave_state is interpted as having .mode = "auto",
- * and .iw_table is interpreted as an array of 1s with length nr_node_ids.
- */
-struct weighted_interleave_state {
- bool mode_auto;
- u8 iw_table[];
-};
-
-/*
* Support for managing mempolicy data objects (clone, copy, destroy)
* The default fast path of a NULL MPOL_DEFAULT policy is always inlined.
*/
--- a/mm/mempolicy.c~mm-mempolicy-weighted-interleave-auto-tuning-fix
+++ a/mm/mempolicy.c
@@ -148,6 +148,14 @@ static struct mempolicy preferred_node_p
*/
static const int weightiness = 32;
+/*
+ * A null weighted_interleave_state is interpreted as having .mode="auto",
+ * and .iw_table is interpreted as an array of 1s with length nr_node_ids.
+ */
+struct weighted_interleave_state {
+ bool mode_auto;
+ u8 iw_table[];
+};
static struct weighted_interleave_state __rcu *wi_state;
static unsigned int *node_bw_table;
@@ -3561,9 +3569,8 @@ static ssize_t node_store(struct kobject
int i;
node_attr = container_of(attr, struct iw_node_attr, kobj_attr);
- if (count == 0 || sysfs_streq(buf, ""))
- weight = 0;
- else if (kstrtou8(buf, 0, &weight) || weight == 0)
+ if (count == 0 || sysfs_streq(buf, "") ||
+ kstrtou8(buf, 0, &weight) || weight == 0)
return -EINVAL;
new_wi_state = kzalloc(struct_size(new_wi_state, iw_table, nr_node_ids),
@@ -3630,9 +3637,15 @@ static ssize_t weighted_interleave_auto_
if (!input) {
old_wi_state = rcu_dereference_protected(wi_state,
lockdep_is_held(&wi_state_lock));
- if (old_wi_state)
- memcpy(new_wi_state->iw_table, old_wi_state->iw_table,
- nr_node_ids * sizeof(u8));
+ if (!old_wi_state)
+ goto update_wi_state;
+ if (input == old_wi_state->mode_auto) {
+ mutex_unlock(&wi_state_lock);
+ return count;
+ }
+
+ memcpy(new_wi_state->iw_table, old_wi_state->iw_table,
+ nr_node_ids * sizeof(u8));
goto update_wi_state;
}
@@ -3707,8 +3720,12 @@ out:
kfree(&wi_group->wi_kobj);
}
+static struct kobj_attribute wi_auto_attr =
+ __ATTR(auto, 0664, weighted_interleave_auto_show,
+ weighted_interleave_auto_store);
+
static void wi_cleanup(void) {
- sysfs_remove_file(&wi_group->wi_kobj, &wi_group->auto_kobj_attr.attr);
+ sysfs_remove_file(&wi_group->wi_kobj, &wi_auto_attr.attr);
sysfs_wi_node_delete_all();
wi_state_free();
}
@@ -3798,10 +3815,6 @@ static int wi_node_notifier(struct notif
return NOTIFY_OK;
}
-static struct kobj_attribute wi_auto_attr =
- __ATTR(auto, 0664, weighted_interleave_auto_show,
- weighted_interleave_auto_store);
-
static int __init add_weighted_interleave_group(struct kobject *mempolicy_kobj)
{
int nid, err;
_
Patches currently in -mm which might be from joshua.hahnjy@gmail.com are
mm-mempolicy-weighted-interleave-auto-tuning.patch
mm-mempolicy-weighted-interleave-auto-tuning-fix-2.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-05-13 6:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-13 6:45 [folded-merged] mm-mempolicy-weighted-interleave-auto-tuning-fix.patch removed from -mm tree Andrew Morton
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.