linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Alexander Duyck <alexander.duyck@gmail.com>
Cc: virtio-dev@lists.oasis-open.org, kvm list <kvm@vger.kernel.org>,
	David Hildenbrand <david@redhat.com>,
	Dave Hansen <dave.hansen@intel.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Matthew Wilcox <willy@infradead.org>,
	Michal Hocko <mhocko@kernel.org>, linux-mm <linux-mm@kvack.org>,
	Vlastimil Babka <vbabka@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@techsingularity.net>,
	linux-arm-kernel@lists.infradead.org,
	Oscar Salvador <osalvador@suse.de>,
	Yang Zhang <yang.zhang.wz@gmail.com>,
	Pankaj Gupta <pagupta@redhat.com>,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	Nitesh Narayan Lal <nitesh@redhat.com>,
	Rik van Riel <riel@surriel.com>,
	lcapitulino@redhat.com, "Wang, Wei W" <wei.w.wang@intel.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Dan Williams <dan.j.williams@intel.com>,
	Alexander Duyck <alexander.h.duyck@linux.intel.com>
Subject: Re: [PATCH v10 3/6] mm: Introduce Reported pages
Date: Mon, 23 Sep 2019 11:00:23 -0400	[thread overview]
Message-ID: <20190923105746-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <CAKgT0UfFBO9h3heGSo+AaZgUNpy5uuOm3yh62bYwYJ5dq+t1gQ@mail.gmail.com>

On Mon, Sep 23, 2019 at 07:50:15AM -0700, Alexander Duyck wrote:
> > > +static inline void
> > > +page_reporting_reset_boundary(struct zone *zone, unsigned int order, int mt)
> > > +{
> > > +     int index;
> > > +
> > > +     if (order < PAGE_REPORTING_MIN_ORDER)
> > > +             return;
> > > +     if (!test_bit(ZONE_PAGE_REPORTING_ACTIVE, &zone->flags))
> > > +             return;
> > > +
> > > +     index = get_reporting_index(order, mt);
> > > +     reported_boundary[index] = &zone->free_area[order].free_list[mt];
> > > +}
> >
> > So this seems to be costly.
> > I'm guessing it's the access to flags:
> >
> >
> >         /* zone flags, see below */
> >         unsigned long           flags;
> >
> >         /* Primarily protects free_area */
> >         spinlock_t              lock;
> >
> >
> >
> > which is in the same cache line as the lock.
> 
> I'm not sure what you mean by this being costly?

I've just been wondering why does will it scale report a 1.5% regression
with this patch.

> Also, at least on my system, pahole seems to indicate they are in
> different cache lines.
> 
> /* --- cacheline 3 boundary (192 bytes) --- */
> struct zone_padding        _pad1_;               /*   192     0 */
> struct free_area           free_area[11];        /*   192  1144 */
> /* --- cacheline 20 boundary (1280 bytes) was 56 bytes ago --- */
> long unsigned int          flags;                /*  1336     8 */
> /* --- cacheline 21 boundary (1344 bytes) --- */
> spinlock_t                 lock;                 /*  1344     4 */
> 
> Basically these flags aren't supposed to be touched unless we are
> holding the lock anyway so I am not sure it would be all that costly
> for this setup. Basically we are holding the lock when the flag is set
> or cleared, and we only set it if it is not already set. If needed
> though I suppose I could look at moving the flags if you think that is
> an issue. However I would probably need to add some additional padding
> to prevent the lock from getting into the same cache line as the
> free_area values.

-- 
MST

  reply	other threads:[~2019-09-23 15:00 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-18 17:52 [PATCH v10 0/6] mm / virtio: Provide support for unused page reporting Alexander Duyck
2019-09-18 17:52 ` [PATCH v10 1/6] mm: Adjust shuffle code to allow for future coalescing Alexander Duyck
2019-09-18 17:52 ` [PATCH v10 2/6] mm: Use zone and order instead of free area in free_list manipulators Alexander Duyck
2019-09-18 17:52 ` [PATCH v10 3/6] mm: Introduce Reported pages Alexander Duyck
2019-09-21 15:25   ` [mm] 0f5b256b2c: will-it-scale.per_process_ops -1.2% regression kernel test robot
2019-09-23  8:15   ` [PATCH v10 3/6] mm: Introduce Reported pages Michael S. Tsirkin
2019-09-23 14:50     ` Alexander Duyck
2019-09-23 15:00       ` Michael S. Tsirkin [this message]
2019-09-23 15:28         ` Alexander Duyck
2019-09-23 15:37           ` Michael S. Tsirkin
2019-09-23 15:45             ` David Hildenbrand
2019-09-23 15:47               ` David Hildenbrand
2019-09-23 15:50                 ` Michael S. Tsirkin
2019-09-23 15:53                   ` David Hildenbrand
2019-09-23 15:49               ` Michael S. Tsirkin
2019-09-23 16:39               ` Alexander Duyck
2019-09-18 17:52 ` [PATCH v10 4/6] mm: Add device side and notifier for unused page reporting Alexander Duyck
2019-09-18 17:53 ` [PATCH v10 5/6] virtio-balloon: Pull page poisoning config out of free page hinting Alexander Duyck
2019-09-18 17:58   ` Michael S. Tsirkin
2019-09-18 18:05     ` Alexander Duyck
2019-09-18 17:53 ` [PATCH v10 6/6] virtio-balloon: Add support for providing unused page reports to host Alexander Duyck
2019-09-18 17:53 ` [PATCH v10 QEMU 1/3] virtio-ballon: Implement support for page poison tracking feature Alexander Duyck
2019-09-18 17:53 ` [PATCH v10 QEMU 2/3] virtio-balloon: Add bit to notify guest of unused page reporting Alexander Duyck
2019-09-18 17:53 ` [PATCH v10 QEMU 3/3] virtio-balloon: Provide a interface for " Alexander Duyck
2019-09-24 14:23 ` [PATCH v10 0/6] mm / virtio: Provide support " Michal Hocko
2019-09-24 15:20   ` Alexander Duyck
2019-09-26 12:22     ` Michal Hocko
2019-09-26 15:13       ` Alexander Duyck
2019-09-24 15:32   ` David Hildenbrand
2019-09-24 15:51     ` Nitesh Narayan Lal
2019-09-24 17:07     ` Alexander Duyck
2019-09-24 17:28       ` David Hildenbrand

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=20190923105746-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.duyck@gmail.com \
    --cc=alexander.h.duyck@linux.intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=david@redhat.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=mgorman@techsingularity.net \
    --cc=mhocko@kernel.org \
    --cc=nitesh@redhat.com \
    --cc=osalvador@suse.de \
    --cc=pagupta@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@surriel.com \
    --cc=vbabka@suse.cz \
    --cc=virtio-dev@lists.oasis-open.org \
    --cc=wei.w.wang@intel.com \
    --cc=willy@infradead.org \
    --cc=yang.zhang.wz@gmail.com \
    --subject='Re: [PATCH v10 3/6] mm: Introduce Reported pages' \
    /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: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).