diff for duplicates of <87wpbrcp5s.fsf@yhuang-dev.intel.com> diff --git a/a/1.txt b/N1/1.txt index 8f65698..2cef0b5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -4,10 +4,10 @@ Tim Chen <tim.c.chen@linux.intel.com> writes: >> From: Huang Ying <ying.huang@intel.com> >> >> The swap cluster allocation/free functions are added based on the ->> existing swap cluster management mechanism for SSD.A A These functions +>> existing swap cluster management mechanism for SSD. These functions >> don't work for the rotating hard disks because the existing swap cluster ->> management mechanism doesn't work for them.A A The hard disks support may ->> be added if someone really need it.A A But that needn't be included in +>> management mechanism doesn't work for them. The hard disks support may +>> be added if someone really need it. But that needn't be included in >> this patchset. >> >> This will be used for the THP (Transparent Huge Page) swap support. @@ -21,17 +21,17 @@ Tim Chen <tim.c.chen@linux.intel.com> writes: >> Cc: Rik van Riel <riel@redhat.com> >> Signed-off-by: "Huang, Ying" <ying.huang@intel.com> >> --- ->> A mm/swapfile.c | 217 +++++++++++++++++++++++++++++++++++++++++----------------- ->> A 1 file changed, 156 insertions(+), 61 deletions(-) +>> mm/swapfile.c | 217 +++++++++++++++++++++++++++++++++++++++++----------------- +>> 1 file changed, 156 insertions(+), 61 deletions(-) >> >> diff --git a/mm/swapfile.c b/mm/swapfile.c >> index a744604384ff..91876c33114b 100644 >> --- a/mm/swapfile.c >> +++ b/mm/swapfile.c >> @@ -378,6 +378,14 @@ static void swap_cluster_schedule_discard(struct swap_info_struct *si, ->> A schedule_work(&si->discard_work); ->> A } ->> A +>> schedule_work(&si->discard_work); +>> } +>> >> +static void __free_cluster(struct swap_info_struct *si, unsigned long idx) >> +{ >> + struct swap_cluster_info *ci = si->cluster_info; @@ -40,25 +40,25 @@ Tim Chen <tim.c.chen@linux.intel.com> writes: >> + cluster_list_add_tail(&si->free_clusters, ci, idx); >> +} >> + ->> A /* ->> A * Doing discard actually. After a cluster discard is finished, the cluster ->> A * will be added to free cluster list. caller should hold si->lock. +>> /* +>> * Doing discard actually. After a cluster discard is finished, the cluster +>> * will be added to free cluster list. caller should hold si->lock. >> @@ -398,10 +406,7 @@ static void swap_do_scheduled_discard(struct swap_info_struct *si) ->> A ->> A spin_lock(&si->lock); ->> A ci = lock_cluster(si, idx * SWAPFILE_CLUSTER); +>> +>> spin_lock(&si->lock); +>> ci = lock_cluster(si, idx * SWAPFILE_CLUSTER); >> - cluster_set_flag(ci, CLUSTER_FLAG_FREE); >> - unlock_cluster(ci); >> - cluster_list_add_tail(&si->free_clusters, info, idx); >> - ci = lock_cluster(si, idx * SWAPFILE_CLUSTER); >> + __free_cluster(si, idx); ->> A memset(si->swap_map + idx * SWAPFILE_CLUSTER, ->> A 0, SWAPFILE_CLUSTER); ->> A unlock_cluster(ci); +>> memset(si->swap_map + idx * SWAPFILE_CLUSTER, +>> 0, SWAPFILE_CLUSTER); +>> unlock_cluster(ci); > > The __free_cluster definition and the above change to eliminate > the extra unlock_cluster and lock_cluster can perhaps be broken up -> as a separate patch. A It can be independent of THP changes. +> as a separate patch. It can be independent of THP changes. I think the change may have no value by itself without THP changes. There will be only 1 user of __free_cluster() and the lock change is @@ -66,9 +66,3 @@ trivial too. So I think it may be better just to keep it as that? Best Regards, Huang, Ying - --- -To unsubscribe, send a message with 'unsubscribe linux-mm' in -the body to majordomo@kvack.org. For more info on Linux MM, -see: http://www.linux-mm.org/ . -Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> diff --git a/a/content_digest b/N1/content_digest index 8f3d59b..3d6422c 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -5,11 +5,11 @@ "Subject\0Re: [PATCH -mm -v6 3/9] mm, THP, swap: Add swap cluster allocate/free functions\0" "Date\0Wed, 15 Mar 2017 09:19:27 +0800\0" "To\0Tim Chen <tim.c.chen@linux.intel.com>\0" - "Cc\0Huang" + "Cc\0Huang\\" Ying <ying.huang@intel.com> Andrew Morton <akpm@linux-foundation.org> - linux-mm@kvack.org - linux-kernel@vger.kernel.org + <linux-mm@kvack.org> + <linux-kernel@vger.kernel.org> Andrea Arcangeli <aarcange@redhat.com> Kirill A . Shutemov <kirill.shutemov@linux.intel.com> Hugh Dickins <hughd@google.com> @@ -24,10 +24,10 @@ ">> From: Huang Ying <ying.huang@intel.com>\n" ">> \n" ">> The swap cluster allocation/free functions are added based on the\n" - ">> existing swap cluster management mechanism for SSD.A A These functions\n" + ">> existing swap cluster management mechanism for SSD.\302\240\302\240These functions\n" ">> don't work for the rotating hard disks because the existing swap cluster\n" - ">> management mechanism doesn't work for them.A A The hard disks support may\n" - ">> be added if someone really need it.A A But that needn't be included in\n" + ">> management mechanism doesn't work for them.\302\240\302\240The hard disks support may\n" + ">> be added if someone really need it.\302\240\302\240But that needn't be included in\n" ">> this patchset.\n" ">> \n" ">> This will be used for the THP (Transparent Huge Page) swap support.\n" @@ -41,17 +41,17 @@ ">> Cc: Rik van Riel <riel@redhat.com>\n" ">> Signed-off-by: \"Huang, Ying\" <ying.huang@intel.com>\n" ">> ---\n" - ">> A mm/swapfile.c | 217 +++++++++++++++++++++++++++++++++++++++++-----------------\n" - ">> A 1 file changed, 156 insertions(+), 61 deletions(-)\n" + ">> \302\240mm/swapfile.c | 217 +++++++++++++++++++++++++++++++++++++++++-----------------\n" + ">> \302\2401 file changed, 156 insertions(+), 61 deletions(-)\n" ">> \n" ">> diff --git a/mm/swapfile.c b/mm/swapfile.c\n" ">> index a744604384ff..91876c33114b 100644\n" ">> --- a/mm/swapfile.c\n" ">> +++ b/mm/swapfile.c\n" ">> @@ -378,6 +378,14 @@ static void swap_cluster_schedule_discard(struct swap_info_struct *si,\n" - ">> A \tschedule_work(&si->discard_work);\n" - ">> A }\n" - ">> A \n" + ">> \302\240\tschedule_work(&si->discard_work);\n" + ">> \302\240}\n" + ">> \302\240\n" ">> +static void __free_cluster(struct swap_info_struct *si, unsigned long idx)\n" ">> +{\n" ">> +\tstruct swap_cluster_info *ci = si->cluster_info;\n" @@ -60,37 +60,31 @@ ">> +\tcluster_list_add_tail(&si->free_clusters, ci, idx);\n" ">> +}\n" ">> +\n" - ">> A /*\n" - ">> A * Doing discard actually. After a cluster discard is finished, the cluster\n" - ">> A * will be added to free cluster list. caller should hold si->lock.\n" + ">> \302\240/*\n" + ">> \302\240 * Doing discard actually. After a cluster discard is finished, the cluster\n" + ">> \302\240 * will be added to free cluster list. caller should hold si->lock.\n" ">> @@ -398,10 +406,7 @@ static void swap_do_scheduled_discard(struct swap_info_struct *si)\n" - ">> A \n" - ">> A \t\tspin_lock(&si->lock);\n" - ">> A \t\tci = lock_cluster(si, idx * SWAPFILE_CLUSTER);\n" + ">> \302\240\n" + ">> \302\240\t\tspin_lock(&si->lock);\n" + ">> \302\240\t\tci = lock_cluster(si, idx * SWAPFILE_CLUSTER);\n" ">> -\t\tcluster_set_flag(ci, CLUSTER_FLAG_FREE);\n" ">> -\t\tunlock_cluster(ci);\n" ">> -\t\tcluster_list_add_tail(&si->free_clusters, info, idx);\n" ">> -\t\tci = lock_cluster(si, idx * SWAPFILE_CLUSTER);\n" ">> +\t\t__free_cluster(si, idx);\n" - ">> A \t\tmemset(si->swap_map + idx * SWAPFILE_CLUSTER,\n" - ">> A \t\t\t\t0, SWAPFILE_CLUSTER);\n" - ">> A \t\tunlock_cluster(ci);\n" + ">> \302\240\t\tmemset(si->swap_map + idx * SWAPFILE_CLUSTER,\n" + ">> \302\240\t\t\t\t0, SWAPFILE_CLUSTER);\n" + ">> \302\240\t\tunlock_cluster(ci);\n" ">\n" "> The __free_cluster definition and the above change to eliminate\n" "> the extra unlock_cluster and lock_cluster can perhaps be broken up\n" - "> as a separate patch. A It can be independent of THP changes.\n" + "> as a separate patch. \302\240It can be independent of THP changes.\n" "\n" "I think the change may have no value by itself without THP changes.\n" "There will be only 1 user of __free_cluster() and the lock change is\n" "trivial too. So I think it may be better just to keep it as that?\n" "\n" "Best Regards,\n" - "Huang, Ying\n" - "\n" - "--\n" - "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n" - "the body to majordomo@kvack.org. For more info on Linux MM,\n" - "see: http://www.linux-mm.org/ .\n" - "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>" + Huang, Ying -d4bbe3e01317cb7070c3aad7fe027120ea81ecd2ace0c2079ce1bf3a454dc7b5 +e8ed8862bdee7c68ecabfd91ca202ecfad524ab8d7cec07fd01b3470fabce541
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.