From: Michal Hocko <mhocko@kernel.org> To: Alexander Duyck <alexander.duyck@gmail.com> Cc: virtio-dev@lists.oasis-open.org, kvm@vger.kernel.org, mst@redhat.com, catalin.marinas@arm.com, david@redhat.com, dave.hansen@intel.com, linux-kernel@vger.kernel.org, willy@infradead.org, linux-mm@kvack.org, akpm@linux-foundation.org, will@kernel.org, linux-arm-kernel@lists.infradead.org, osalvador@suse.de, yang.zhang.wz@gmail.com, pagupta@redhat.com, konrad.wilk@oracle.com, nitesh@redhat.com, riel@surriel.com, lcapitulino@redhat.com, wei.w.wang@intel.com, aarcange@redhat.com, ying.huang@intel.com, pbonzini@redhat.com, dan.j.williams@intel.com, fengguang.wu@intel.com, alexander.h.duyck@linux.intel.com, kirill.shutemov@linux.intel.com Subject: Re: [PATCH v9 2/8] mm: Adjust shuffle code to allow for future coalescing Date: Tue, 10 Sep 2019 14:20:30 +0200 [thread overview] Message-ID: <20190910122030.GV2063@dhcp22.suse.cz> (raw) In-Reply-To: <20190907172520.10910.83100.stgit@localhost.localdomain> On Sat 07-09-19 10:25:20, Alexander Duyck wrote: > From: Alexander Duyck <alexander.h.duyck@linux.intel.com> > > Move the head/tail adding logic out of the shuffle code and into the > __free_one_page function since ultimately that is where it is really > needed anyway. By doing this we should be able to reduce the overhead > and can consolidate all of the list addition bits in one spot. This changelog doesn't really explain why we want this. You are reshuffling the code, allright, but why do we want to reshuffle? Is the result readability a better code reuse or something else? Where does the claimed reduced overhead coming from? From a quick look buddy_merge_likely looks nicer than the code splat we have. Good. But then > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com> [...] > - if (is_shuffle_order(order)) > - add_to_free_area_random(page, &zone->free_area[order], > - migratetype); > + area = &zone->free_area[order]; > + if (is_shuffle_order(order) ? shuffle_pick_tail() : > + buddy_merge_likely(pfn, buddy_pfn, page, order)) Ouch this is just awful don't you think? -- Michal Hocko SUSE Labs
WARNING: multiple messages have this Message-ID (diff)
From: Michal Hocko <mhocko@kernel.org> To: Alexander Duyck <alexander.duyck@gmail.com> Cc: yang.zhang.wz@gmail.com, pagupta@redhat.com, kvm@vger.kernel.org, david@redhat.com, catalin.marinas@arm.com, lcapitulino@redhat.com, linux-mm@kvack.org, alexander.h.duyck@linux.intel.com, will@kernel.org, aarcange@redhat.com, virtio-dev@lists.oasis-open.org, mst@redhat.com, willy@infradead.org, wei.w.wang@intel.com, ying.huang@intel.com, riel@surriel.com, konrad.wilk@oracle.com, dan.j.williams@intel.com, linux-arm-kernel@lists.infradead.org, osalvador@suse.de, nitesh@redhat.com, dave.hansen@intel.com, linux-kernel@vger.kernel.org, pbonzini@redhat.com, akpm@linux-foundation.org, fengguang.wu@intel.com, kirill.shutemov@linux.intel.com Subject: Re: [PATCH v9 2/8] mm: Adjust shuffle code to allow for future coalescing Date: Tue, 10 Sep 2019 14:20:30 +0200 [thread overview] Message-ID: <20190910122030.GV2063@dhcp22.suse.cz> (raw) In-Reply-To: <20190907172520.10910.83100.stgit@localhost.localdomain> On Sat 07-09-19 10:25:20, Alexander Duyck wrote: > From: Alexander Duyck <alexander.h.duyck@linux.intel.com> > > Move the head/tail adding logic out of the shuffle code and into the > __free_one_page function since ultimately that is where it is really > needed anyway. By doing this we should be able to reduce the overhead > and can consolidate all of the list addition bits in one spot. This changelog doesn't really explain why we want this. You are reshuffling the code, allright, but why do we want to reshuffle? Is the result readability a better code reuse or something else? Where does the claimed reduced overhead coming from? From a quick look buddy_merge_likely looks nicer than the code splat we have. Good. But then > Reviewed-by: Dan Williams <dan.j.williams@intel.com> > Signed-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com> [...] > - if (is_shuffle_order(order)) > - add_to_free_area_random(page, &zone->free_area[order], > - migratetype); > + area = &zone->free_area[order]; > + if (is_shuffle_order(order) ? shuffle_pick_tail() : > + buddy_merge_likely(pfn, buddy_pfn, page, order)) Ouch this is just awful don't you think? -- Michal Hocko SUSE Labs _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-09-10 12:20 UTC|newest] Thread overview: 241+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-07 17:25 [PATCH v9 0/8] stg mail -e --version=v9 \ Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-07 17:25 ` [PATCH v9 1/8] mm: Add per-cpu logic to page shuffling Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-09 8:14 ` David Hildenbrand 2019-09-09 8:14 ` [virtio-dev] " David Hildenbrand 2019-09-09 8:14 ` David Hildenbrand 2019-09-09 15:11 ` Alexander Duyck 2019-09-09 15:11 ` [virtio-dev] " Alexander Duyck 2019-09-09 15:11 ` Alexander Duyck 2019-09-09 15:11 ` Alexander Duyck 2019-09-10 12:11 ` Michal Hocko 2019-09-10 12:11 ` Michal Hocko 2019-09-10 22:14 ` Alexander Duyck 2019-09-10 22:14 ` [virtio-dev] " Alexander Duyck 2019-09-10 22:14 ` Alexander Duyck 2019-09-10 22:14 ` Alexander Duyck 2019-09-10 22:11 ` Alexander Duyck 2019-09-10 22:11 ` [virtio-dev] " Alexander Duyck 2019-09-10 22:11 ` Alexander Duyck 2019-09-10 22:11 ` Alexander Duyck 2019-09-09 9:07 ` Kirill A. Shutemov 2019-09-09 9:07 ` Kirill A. Shutemov 2019-09-09 15:12 ` Alexander Duyck 2019-09-09 15:12 ` [virtio-dev] " Alexander Duyck 2019-09-09 15:12 ` Alexander Duyck 2019-09-09 15:12 ` Alexander Duyck 2019-09-07 17:25 ` [PATCH v9 2/8] mm: Adjust shuffle code to allow for future coalescing Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-09 8:19 ` David Hildenbrand 2019-09-09 8:19 ` [virtio-dev] " David Hildenbrand 2019-09-09 8:19 ` David Hildenbrand 2019-09-09 9:47 ` Kirill A. Shutemov 2019-09-09 9:47 ` Kirill A. Shutemov 2019-09-09 15:22 ` Alexander Duyck 2019-09-09 15:22 ` [virtio-dev] " Alexander Duyck 2019-09-09 15:22 ` Alexander Duyck 2019-09-09 15:22 ` Alexander Duyck 2019-09-09 15:35 ` Kirill A. Shutemov 2019-09-09 15:35 ` Kirill A. Shutemov 2019-09-09 15:37 ` Alexander Duyck 2019-09-09 15:37 ` [virtio-dev] " Alexander Duyck 2019-09-09 15:37 ` Alexander Duyck 2019-09-09 15:37 ` Alexander Duyck 2019-09-09 16:43 ` Alexander Duyck 2019-09-09 16:43 ` [virtio-dev] " Alexander Duyck 2019-09-09 16:43 ` Alexander Duyck 2019-09-09 16:43 ` Alexander Duyck 2019-09-09 17:00 ` Kirill A. Shutemov 2019-09-09 17:00 ` Kirill A. Shutemov 2019-09-10 12:20 ` Michal Hocko [this message] 2019-09-10 12:20 ` Michal Hocko 2019-09-10 14:48 ` Alexander Duyck 2019-09-10 14:48 ` [virtio-dev] " Alexander Duyck 2019-09-10 14:48 ` Alexander Duyck 2019-09-10 14:48 ` Alexander Duyck 2019-09-07 17:25 ` [PATCH v9 3/8] mm: Move set/get_pcppage_migratetype to mmzone.h Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-09 8:22 ` David Hildenbrand 2019-09-09 8:22 ` [virtio-dev] " David Hildenbrand 2019-09-09 8:22 ` David Hildenbrand 2019-09-09 9:56 ` Kirill A. Shutemov 2019-09-09 9:56 ` Kirill A. Shutemov 2019-09-09 18:01 ` Alexander Duyck 2019-09-09 18:01 ` [virtio-dev] " Alexander Duyck 2019-09-09 18:01 ` Alexander Duyck 2019-09-09 18:01 ` Alexander Duyck 2019-09-09 18:12 ` Alexander Duyck 2019-09-09 18:12 ` [virtio-dev] " Alexander Duyck 2019-09-09 18:12 ` Alexander Duyck 2019-09-09 18:12 ` Alexander Duyck 2019-09-10 12:23 ` Michal Hocko 2019-09-10 12:23 ` Michal Hocko 2019-09-10 14:46 ` Alexander Duyck 2019-09-10 14:46 ` [virtio-dev] " Alexander Duyck 2019-09-10 14:46 ` Alexander Duyck 2019-09-10 14:46 ` Alexander Duyck 2019-09-10 17:45 ` Michal Hocko 2019-09-10 17:45 ` Michal Hocko 2019-09-10 20:26 ` Alexander Duyck 2019-09-10 20:26 ` [virtio-dev] " Alexander Duyck 2019-09-10 20:26 ` Alexander Duyck 2019-09-10 20:26 ` Alexander Duyck 2019-09-07 17:25 ` [PATCH v9 4/8] mm: Use zone and order instead of free area in free_list manipulators Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-10 12:27 ` Michal Hocko 2019-09-10 12:27 ` Michal Hocko 2019-09-07 17:25 ` [PATCH v9 5/8] arm64: Move hugetlb related definitions out of pgtable.h to page-defs.h Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-09 8:52 ` David Hildenbrand 2019-09-09 8:52 ` [virtio-dev] " David Hildenbrand 2019-09-09 8:52 ` David Hildenbrand 2019-09-09 15:27 ` Alexander Duyck 2019-09-09 15:27 ` [virtio-dev] " Alexander Duyck 2019-09-09 15:27 ` Alexander Duyck 2019-09-09 15:27 ` Alexander Duyck 2019-09-17 17:48 ` Will Deacon 2019-09-17 17:48 ` Will Deacon 2019-09-17 20:07 ` Alexander Duyck 2019-09-17 20:07 ` [virtio-dev] " Alexander Duyck 2019-09-17 20:07 ` Alexander Duyck 2019-09-17 20:07 ` Alexander Duyck 2019-09-07 17:25 ` [PATCH v9 6/8] mm: Introduce Reported pages Alexander Duyck 2019-09-07 17:25 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:25 ` Alexander Duyck 2019-09-09 14:42 ` Kirill A. Shutemov 2019-09-09 14:42 ` Kirill A. Shutemov 2019-09-09 16:25 ` Alexander Duyck 2019-09-09 16:25 ` [virtio-dev] " Alexander Duyck 2019-09-09 16:25 ` Alexander Duyck 2019-09-09 16:25 ` Alexander Duyck 2019-09-09 16:33 ` Kirill A. Shutemov 2019-09-09 16:33 ` Kirill A. Shutemov 2019-09-07 17:26 ` [PATCH v9 7/8] virtio-balloon: Pull page poisoning config out of free page hinting Alexander Duyck 2019-09-07 17:26 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:26 ` Alexander Duyck 2019-09-09 8:59 ` David Hildenbrand 2019-09-09 8:59 ` [virtio-dev] " David Hildenbrand 2019-09-09 8:59 ` David Hildenbrand 2019-09-09 15:31 ` Alexander Duyck 2019-09-09 15:31 ` [virtio-dev] " Alexander Duyck 2019-09-09 15:31 ` Alexander Duyck 2019-09-09 15:31 ` Alexander Duyck 2019-09-07 17:26 ` [PATCH v9 8/8] virtio-balloon: Add support for providing unused page reports to host Alexander Duyck 2019-09-07 17:26 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:26 ` Alexander Duyck 2019-09-07 17:34 ` [PATCH v9 0/8] mm / virtio: Provide support for unused page reporting Alexander Duyck 2019-09-07 17:34 ` [virtio-dev] " Alexander Duyck 2019-09-07 17:34 ` Alexander Duyck 2019-09-07 17:34 ` Alexander Duyck 2019-09-10 12:42 ` [PATCH v9 0/8] stg mail -e --version=v9 \ Michal Hocko 2019-09-10 12:42 ` Michal Hocko 2019-09-10 14:42 ` Alexander Duyck 2019-09-10 14:42 ` [virtio-dev] " Alexander Duyck 2019-09-10 14:42 ` Alexander Duyck 2019-09-10 14:42 ` Alexander Duyck 2019-09-10 14:47 ` Michal Hocko 2019-09-10 14:47 ` Michal Hocko 2019-09-10 16:05 ` Alexander Duyck 2019-09-10 16:05 ` [virtio-dev] " Alexander Duyck 2019-09-10 16:05 ` Alexander Duyck 2019-09-10 16:05 ` Alexander Duyck 2019-09-10 16:18 ` [virtio-dev] " Dr. David Alan Gilbert 2019-09-10 16:18 ` Dr. David Alan Gilbert 2019-09-10 16:18 ` Dr. David Alan Gilbert 2019-09-10 16:22 ` David Hildenbrand 2019-09-10 16:22 ` David Hildenbrand 2019-09-10 16:22 ` David Hildenbrand 2019-09-11 9:23 ` Michael S. Tsirkin 2019-09-11 9:23 ` Michael S. Tsirkin 2019-09-11 9:23 ` Michael S. Tsirkin 2019-09-11 9:50 ` David Hildenbrand 2019-09-11 9:50 ` David Hildenbrand 2019-09-11 9:50 ` David Hildenbrand 2019-09-10 17:52 ` Michal Hocko 2019-09-10 17:52 ` Michal Hocko 2019-09-10 18:00 ` Michal Hocko 2019-09-10 18:00 ` Michal Hocko 2019-09-10 20:37 ` Alexander Duyck 2019-09-10 20:37 ` [virtio-dev] " Alexander Duyck 2019-09-10 20:37 ` Alexander Duyck 2019-09-10 20:37 ` Alexander Duyck 2019-09-10 21:23 ` Alexander Duyck 2019-09-10 21:23 ` [virtio-dev] " Alexander Duyck 2019-09-10 21:23 ` Alexander Duyck 2019-09-10 21:23 ` Alexander Duyck 2019-09-11 11:36 ` Michal Hocko 2019-09-11 11:36 ` Michal Hocko 2019-09-11 11:47 ` David Hildenbrand 2019-09-11 11:47 ` [virtio-dev] " David Hildenbrand 2019-09-11 11:47 ` David Hildenbrand 2019-09-11 12:08 ` Michael S. Tsirkin 2019-09-11 12:08 ` [virtio-dev] " Michael S. Tsirkin 2019-09-11 12:08 ` Michael S. Tsirkin 2019-09-11 12:19 ` Michal Hocko 2019-09-11 12:19 ` Michal Hocko 2019-09-11 12:25 ` Michal Hocko 2019-09-11 12:25 ` Michal Hocko 2019-09-11 12:42 ` David Hildenbrand 2019-09-11 12:42 ` [virtio-dev] " David Hildenbrand 2019-09-11 12:42 ` David Hildenbrand 2019-09-11 12:54 ` Michal Hocko 2019-09-11 12:54 ` Michal Hocko 2019-09-11 13:03 ` David Hildenbrand 2019-09-11 13:03 ` [virtio-dev] " David Hildenbrand 2019-09-11 13:03 ` David Hildenbrand 2019-09-11 13:20 ` Michal Hocko 2019-09-11 13:20 ` Michal Hocko 2019-09-11 13:51 ` Michal Hocko 2019-09-11 13:51 ` Michal Hocko 2019-09-11 16:09 ` David Hildenbrand 2019-09-11 16:09 ` [virtio-dev] " David Hildenbrand 2019-09-11 16:09 ` David Hildenbrand 2019-09-12 7:16 ` Michal Hocko 2019-09-12 7:16 ` Michal Hocko 2019-09-12 7:47 ` David Hildenbrand 2019-09-12 7:47 ` [virtio-dev] " David Hildenbrand 2019-09-12 7:47 ` David Hildenbrand 2019-09-12 9:26 ` Michal Hocko 2019-09-12 9:26 ` Michal Hocko 2019-09-12 12:00 ` Nitesh Narayan Lal 2019-09-12 12:00 ` [virtio-dev] " Nitesh Narayan Lal 2019-09-12 12:00 ` Nitesh Narayan Lal 2019-09-11 14:03 ` Nitesh Narayan Lal 2019-09-11 14:03 ` [virtio-dev] " Nitesh Narayan Lal 2019-09-11 14:03 ` Nitesh Narayan Lal 2019-09-11 16:02 ` David Hildenbrand 2019-09-11 16:02 ` [virtio-dev] " David Hildenbrand 2019-09-11 16:02 ` David Hildenbrand 2019-09-11 13:19 ` Nitesh Narayan Lal 2019-09-11 13:19 ` [virtio-dev] " Nitesh Narayan Lal 2019-09-11 13:19 ` Nitesh Narayan Lal 2019-09-11 12:55 ` Nitesh Narayan Lal 2019-09-11 12:55 ` [virtio-dev] " Nitesh Narayan Lal 2019-09-11 12:55 ` Nitesh Narayan Lal 2019-09-11 15:12 ` Alexander Duyck 2019-09-11 15:12 ` [virtio-dev] " Alexander Duyck 2019-09-11 15:12 ` Alexander Duyck 2019-09-11 15:12 ` Alexander Duyck 2019-09-12 9:19 ` Michal Hocko 2019-09-12 9:19 ` Michal Hocko 2019-09-12 10:24 ` Kirill A. Shutemov 2019-09-12 10:24 ` Kirill A. Shutemov 2019-09-12 11:11 ` Michal Hocko 2019-09-12 11:11 ` Michal Hocko 2019-09-12 15:42 ` Alexander Duyck 2019-09-12 15:42 ` [virtio-dev] " Alexander Duyck 2019-09-12 15:42 ` Alexander Duyck 2019-09-12 15:42 ` Alexander Duyck 2019-09-12 16:35 ` Mel Gorman 2019-09-12 16:35 ` Mel Gorman 2019-09-12 17:48 ` Alexander Duyck 2019-09-12 17:48 ` [virtio-dev] " Alexander Duyck 2019-09-12 17:48 ` Alexander Duyck 2019-09-12 17:48 ` Alexander Duyck
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190910122030.GV2063@dhcp22.suse.cz \ --to=mhocko@kernel.org \ --cc=aarcange@redhat.com \ --cc=akpm@linux-foundation.org \ --cc=alexander.duyck@gmail.com \ --cc=alexander.h.duyck@linux.intel.com \ --cc=catalin.marinas@arm.com \ --cc=dan.j.williams@intel.com \ --cc=dave.hansen@intel.com \ --cc=david@redhat.com \ --cc=fengguang.wu@intel.com \ --cc=kirill.shutemov@linux.intel.com \ --cc=konrad.wilk@oracle.com \ --cc=kvm@vger.kernel.org \ --cc=lcapitulino@redhat.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mst@redhat.com \ --cc=nitesh@redhat.com \ --cc=osalvador@suse.de \ --cc=pagupta@redhat.com \ --cc=pbonzini@redhat.com \ --cc=riel@surriel.com \ --cc=virtio-dev@lists.oasis-open.org \ --cc=wei.w.wang@intel.com \ --cc=will@kernel.org \ --cc=willy@infradead.org \ --cc=yang.zhang.wz@gmail.com \ --cc=ying.huang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.