From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
To: wei.w.wang@intel.com, willy@infradead.org
Cc: virtio-dev@lists.oasis-open.org, linux-kernel@vger.kernel.org,
qemu-devel@nongnu.org, virtualization@lists.linux-foundation.org,
kvm@vger.kernel.org, linux-mm@kvack.org, mst@redhat.com,
mhocko@kernel.org, akpm@linux-foundation.org,
mawilcox@microsoft.com, david@redhat.com,
cornelia.huck@de.ibm.com, mgorman@techsingularity.net,
aarcange@redhat.com, amit.shah@redhat.com, pbonzini@redhat.com,
liliang.opensource@gmail.com, yang.zhang.wz@gmail.com,
quan.xu0@gmail.com, nilal@redhat.com, riel@redhat.com
Subject: Re: [PATCH v20 4/7] virtio-balloon: VIRTIO_BALLOON_F_SG
Date: Mon, 25 Dec 2017 23:51:30 +0900 [thread overview]
Message-ID: <201712252351.FBE81721.HFOtFOJQSOFLVM@I-love.SAKURA.ne.jp> (raw)
In-Reply-To: <5A3F6254.7070306@intel.com>
Wei Wang wrote:
> >>>> @@ -173,8 +292,15 @@ static unsigned fill_balloon(struct
> >>>> virtio_balloon *vb, size_t num)
> >>>> while ((page = balloon_page_pop(&pages))) {
> >>>> balloon_page_enqueue(&vb->vb_dev_info, page);
> >>>> + if (use_sg) {
> >>>> + if (xb_set_page(vb, page, &pfn_min, &pfn_max) < 0) {
> >>>> + __free_page(page);
> >>>> + continue;
> >>>> + }
> >>>> + } else {
> >>>> + set_page_pfns(vb, vb->pfns + vb->num_pfns, page);
> >>>> + }
> >>> Is this the right behaviour?
> >> I don't think so. In the worst case, we can set no bit using
> >> xb_set_page().
> >
> >>
> >>> If we can't record the page in the xb,
> >>> wouldn't we rather send it across as a single page?
> >>>
> >> I think that we need to be able to fallback to !use_sg path when OOM.
> >
> > I also have different thoughts:
> >
> > 1) For OOM, we have leak_balloon_sg_oom (oom has nothing to do with
> > fill_balloon), which does not use xbitmap to record pages, thus no
> > memory allocation.
> >
> > 2) If the memory is already under pressure, it is pointless to
> > continue inflating memory to the host. We need to give thanks to the
> > memory allocation failure reported by xbitmap, which gets us a chance
> > to release the inflated pages that have been demonstrated to cause the
> > memory pressure of the guest.
> >
>
> Forgot to add my conclusion: I think the above behavior is correct.
>
What is the desired behavior when hitting OOM path during inflate/deflate?
Once inflation started, the inflation logic is called again and again
until the balloon inflates to the requested size. Such situation will
continue wasting CPU resource between inflate-due-to-host's-request versus
deflate-due-to-guest's-OOM. It is pointless but cannot stop doing pointless
thing.
Also, as of Linux 4.15, only up to VIRTIO_BALLOON_ARRAY_PFNS_MAX pages (i.e.
1MB) are invisible from deflate request. That amount would be an acceptable
error. But your patch makes more pages being invisible, for pages allocated
by balloon_page_alloc() without holding balloon_lock are stored into a local
variable "LIST_HEAD(pages)" (which means that balloon_page_dequeue() with
balloon_lock held won't be able to find pages not yet queued by
balloon_page_enqueue()), doesn't it? What if all memory pages were held in
"LIST_HEAD(pages)" and balloon_page_dequeue() was called before
balloon_page_enqueue() is called?
So, I think we need to consider how to handle such situation.
--
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>
next prev parent reply other threads:[~2017-12-25 14:52 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-19 12:17 [PATCH v20 0/7] Virtio-balloon Enhancement Wei Wang
2017-12-19 12:17 ` [PATCH v20 1/7] xbitmap: Introduce xbitmap Wei Wang
2017-12-19 15:58 ` Philippe Ombredanne
2017-12-19 12:17 ` [PATCH v20 2/7] xbitmap: potential improvement Wei Wang
2017-12-19 12:17 ` [PATCH v20 3/7] xbitmap: add more operations Wei Wang
2017-12-19 12:17 ` [PATCH v20 4/7] virtio-balloon: VIRTIO_BALLOON_F_SG Wei Wang
2017-12-24 3:21 ` Matthew Wilcox
2017-12-24 4:45 ` Tetsuo Handa
2017-12-24 7:42 ` Wei Wang
2017-12-24 8:16 ` [virtio-dev] " Wei Wang
2017-12-25 14:51 ` Tetsuo Handa [this message]
2017-12-26 3:06 ` Wei Wang
2017-12-26 10:38 ` Tetsuo Handa
2017-12-26 11:36 ` Wei Wang
2017-12-26 13:40 ` Tetsuo Handa
2018-01-02 13:24 ` Matthew Wilcox
2018-01-03 2:29 ` Tetsuo Handa
2018-01-03 9:00 ` Wei Wang
2018-01-03 10:19 ` Tetsuo Handa
2017-12-19 12:17 ` [PATCH v20 5/7] mm: support reporting free page blocks Wei Wang
2017-12-19 12:17 ` [PATCH v20 6/7] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_VQ Wei Wang
2017-12-19 12:17 ` [PATCH v20 7/7] virtio-balloon: don't report free pages when page poisoning is enabled Wei Wang
2017-12-19 14:05 ` [PATCH v20 0/7] Virtio-balloon Enhancement Tetsuo Handa
2017-12-19 14:40 ` Matthew Wilcox
2017-12-20 2:33 ` Tetsuo Handa
2017-12-19 18:08 ` Michael S. Tsirkin
2017-12-20 10:34 ` Wei Wang
2017-12-20 12:25 ` Matthew Wilcox
2017-12-20 16:13 ` Wang, Wei W
2017-12-20 17:10 ` Matthew Wilcox
2017-12-21 2:49 ` Wei Wang
2017-12-21 12:14 ` Matthew Wilcox
2017-12-21 12:56 ` Tetsuo Handa
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=201712252351.FBE81721.HFOtFOJQSOFLVM@I-love.SAKURA.ne.jp \
--to=penguin-kernel@i-love.sakura.ne.jp \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=amit.shah@redhat.com \
--cc=cornelia.huck@de.ibm.com \
--cc=david@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=liliang.opensource@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mawilcox@microsoft.com \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=mst@redhat.com \
--cc=nilal@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quan.xu0@gmail.com \
--cc=riel@redhat.com \
--cc=virtio-dev@lists.oasis-open.org \
--cc=virtualization@lists.linux-foundation.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox