All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nitesh Narayan Lal <nitesh@redhat.com>
To: Alexander Duyck <alexander.h.duyck@linux.intel.com>,
	Alexander Duyck <alexander.duyck@gmail.com>,
	kvm@vger.kernel.org, mst@redhat.com,
	linux-kernel@vger.kernel.org, willy@infradead.org,
	mhocko@kernel.org, linux-mm@kvack.org, akpm@linux-foundation.org,
	mgorman@techsingularity.net, vbabka@suse.cz
Cc: yang.zhang.wz@gmail.com, konrad.wilk@oracle.com,
	david@redhat.com, pagupta@redhat.com, riel@surriel.com,
	lcapitulino@redhat.com, dave.hansen@intel.com,
	wei.w.wang@intel.com, aarcange@redhat.com, pbonzini@redhat.com,
	dan.j.williams@intel.com, osalvador@suse.de
Subject: Re: [PATCH v15 4/7] mm: Introduce Reported pages
Date: Tue, 17 Dec 2019 03:55:49 -0500	[thread overview]
Message-ID: <06ca452e-90b3-c1b5-f2c0-e8da2444bcfe@redhat.com> (raw)
In-Reply-To: <537e970f062e0c7f89723f63fc1f3ec6e53614a5.camel@linux.intel.com>


On 12/16/19 11:28 AM, Alexander Duyck wrote:
> On Mon, 2019-12-16 at 05:17 -0500, Nitesh Narayan Lal wrote:
>> On 12/5/19 11:22 AM, Alexander Duyck wrote:
>>> From: Alexander Duyck <alexander.h.duyck@linux.intel.com>
>>>
>>> In order to pave the way for free page reporting in virtualized
>>> environments we will need a way to get pages out of the free lists and
>>> identify those pages after they have been returned. To accomplish this,
>>> this patch adds the concept of a Reported Buddy, which is essentially
>>> meant to just be the Uptodate flag used in conjunction with the Buddy
>>> page type.
>> [...]
>>
>>> +enum {
>>> +	PAGE_REPORTING_IDLE = 0,
>>> +	PAGE_REPORTING_REQUESTED,
>>> +	PAGE_REPORTING_ACTIVE
>>> +};
>>> +
>>> +/* request page reporting */
>>> +static void
>>> +__page_reporting_request(struct page_reporting_dev_info *prdev)
>>> +{
>>> +	unsigned int state;
>>> +
>>> +	/* Check to see if we are in desired state */
>>> +	state = atomic_read(&prdev->state);
>>> +	if (state == PAGE_REPORTING_REQUESTED)
>>> +		return;
>>> +
>>> +	/*
>>> +	 *  If reporting is already active there is nothing we need to do.
>>> +	 *  Test against 0 as that represents PAGE_REPORTING_IDLE.
>>> +	 */
>>> +	state = atomic_xchg(&prdev->state, PAGE_REPORTING_REQUESTED);
>>> +	if (state != PAGE_REPORTING_IDLE)
>>> +		return;
>>> +
>>> +	/*
>>> +	 * Delay the start of work to allow a sizable queue to build. For
>>> +	 * now we are limiting this to running no more than once every
>>> +	 * couple of seconds.
>>> +	 */
>>> +	schedule_delayed_work(&prdev->work, PAGE_REPORTING_DELAY);
>>> +}
>>> +
>> I think you recently switched to using an atomic variable for maintaining page
>> reporting status as I was doing in v12.
>> Which is good, as we will not have a disagreement on it now.
> There is still some differences between our approaches if I am not
> mistaken. Specifically I have code in place so that any requests to report
> while we are actively working on reporting will trigger another pass being
> scheduled after we completed. I still believe you were lacking any logic
> like that as I recall.
>

Yes, I was specifically referring to the atomic state variable.
Though I am wondering if having an atomic variable to track page reporting state
is better than having a page reporting specific unsigned long flag, which we can
manipulate via __set_bit() and __clear_bit().

>> On a side note, apologies for not getting involved actively in the
>> discussions/reviews as I am on PTO.
> No problem. I've been mostly looking for input from the core MM
> maintainers anyway as we sorted most of the virtualization pieces some
> time ago.
>
-- 
Thanks
Nitesh


  reply	other threads:[~2019-12-17  8:56 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-05 16:22 [PATCH v15 0/7] mm / virtio: Provide support for free page reporting Alexander Duyck
2019-12-05 16:22 ` [PATCH v15 1/7] mm: Adjust shuffle code to allow for future coalescing Alexander Duyck
2019-12-05 16:22 ` [PATCH v15 2/7] mm: Use zone and order instead of free area in free_list manipulators Alexander Duyck
2019-12-05 16:22 ` [PATCH v15 3/7] mm: Add function __putback_isolated_page Alexander Duyck
2019-12-16 11:36   ` David Hildenbrand
2019-12-16 16:22     ` Alexander Duyck
2019-12-16 16:22       ` Alexander Duyck
2019-12-17 10:58       ` David Hildenbrand
2019-12-17 16:26         ` Alexander Duyck
2019-12-17 16:26           ` Alexander Duyck
2019-12-17 17:24           ` David Hildenbrand
2019-12-17 18:24             ` Alexander Duyck
2019-12-17 18:24               ` Alexander Duyck
2019-12-17 18:46               ` David Hildenbrand
2019-12-17 21:50                 ` Alexander Duyck
2019-12-17 21:50                   ` Alexander Duyck
2019-12-05 16:22 ` [PATCH v15 4/7] mm: Introduce Reported pages Alexander Duyck
2019-12-16 10:17   ` Nitesh Narayan Lal
2019-12-16 16:28     ` Alexander Duyck
2019-12-16 16:28       ` Alexander Duyck
2019-12-17  8:55       ` Nitesh Narayan Lal [this message]
2019-12-17 16:31         ` Alexander Duyck
2019-12-17 16:31           ` Alexander Duyck
2019-12-18  7:31           ` Mel Gorman
2019-12-16 11:44   ` Nitesh Narayan Lal
2019-12-16 16:10     ` Alexander Duyck
2019-12-16 16:10       ` Alexander Duyck
2019-12-05 16:22 ` [PATCH v15 5/7] virtio-balloon: Pull page poisoning config out of free page hinting Alexander Duyck
2019-12-13  7:03   ` Michael S. Tsirkin
2019-12-05 16:22 ` [PATCH v15 6/7] virtio-balloon: Add support for providing free page reports to host Alexander Duyck
2019-12-13  7:08   ` Michael S. Tsirkin
2019-12-13 16:35     ` Alexander Duyck
2019-12-13 16:35       ` Alexander Duyck
2019-12-15  9:29       ` Michael S. Tsirkin
2019-12-13 10:15   ` David Hildenbrand
2019-12-13 16:37     ` Alexander Duyck
2019-12-13 16:37       ` Alexander Duyck
2019-12-05 16:23 ` [PATCH v15 7/7] mm: Add free page reporting documentation Alexander Duyck
2019-12-05 16:24 ` [PATCH v15 QEMU 1/3] virtio-ballon: Implement support for page poison tracking feature Alexander Duyck
2019-12-05 16:24   ` [virtio-dev] " Alexander Duyck
2019-12-05 16:24 ` [PATCH v15 QEMU 2/3] virtio-balloon: Add bit to notify guest of unused page reporting Alexander Duyck
2019-12-05 16:24   ` [virtio-dev] " Alexander Duyck
2019-12-05 16:24 ` [PATCH v15 QEMU 3/3] virtio-balloon: Provide a interface for " Alexander Duyck
2019-12-05 16:24   ` [virtio-dev] " Alexander Duyck
2019-12-05 16:26 ` [PATCH v15 QEMU 4/3 RFC] memory: Add support for MADV_FREE as mechanism to lazy discard pages Alexander Duyck
2019-12-05 16:26   ` [virtio-dev] " Alexander Duyck
2019-12-12 23:47 ` [PATCH v15 0/7] mm / virtio: Provide support for free page reporting Alexander Duyck
2019-12-12 23:47   ` Alexander Duyck
2019-12-13 10:00 ` David Hildenbrand
2019-12-13 11:08   ` Mel Gorman
2019-12-13 16:59     ` Alexander Duyck
2019-12-13 16:59       ` Alexander Duyck
2019-12-13 16:46   ` Alexander Duyck
2019-12-13 16:46     ` Alexander Duyck
2019-12-16 12:21     ` 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=06ca452e-90b3-c1b5-f2c0-e8da2444bcfe@redhat.com \
    --to=nitesh@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-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@kernel.org \
    --cc=mst@redhat.com \
    --cc=osalvador@suse.de \
    --cc=pagupta@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=riel@surriel.com \
    --cc=vbabka@suse.cz \
    --cc=wei.w.wang@intel.com \
    --cc=willy@infradead.org \
    --cc=yang.zhang.wz@gmail.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: link
Be 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.