From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: Nadav Amit <nadav.amit@gmail.com>
Cc: KVM <kvm@vger.kernel.org>, Paolo Bonzini <pbonzini@redhat.com>,
Janosch Frank <frankja@linux.ibm.com>,
David Hildenbrand <david@redhat.com>,
Thomas Huth <thuth@redhat.com>,
cohuck@redhat.com, lvivier@redhat.com
Subject: Re: [kvm-unit-tests PATCH v2 4/7] lib/alloc_page: complete rewrite of the page allocator
Date: Tue, 8 Dec 2020 11:00:10 +0100 [thread overview]
Message-ID: <20201208110010.7d05bd3a@ibm-vm> (raw)
In-Reply-To: <A32A8A40-5581-4A3D-9DC8-4591C3A034C7@gmail.com>
On Tue, 8 Dec 2020 01:23:59 -0800
Nadav Amit <nadav.amit@gmail.com> wrote:
> > On Dec 8, 2020, at 1:15 AM, Claudio Imbrenda
> > <imbrenda@linux.ibm.com> wrote:
> >
> > On Mon, 7 Dec 2020 17:10:13 -0800
> > Nadav Amit <nadav.amit@gmail.com> wrote:
> >
> >>> On Dec 7, 2020, at 4:41 PM, Nadav Amit <nadav.amit@gmail.com>
> >>> wrote:
> >>>> On Oct 2, 2020, at 8:44 AM, Claudio Imbrenda
> >>>> <imbrenda@linux.ibm.com> wrote:
> >>>>
> >>>> This is a complete rewrite of the page allocator.
> >>>
> >>> This patch causes me crashes:
> >>>
> >>> lib/alloc_page.c:433: assert failed: !(areas_mask & BIT(n))
> >>>
> >>> It appears that two areas are registered on AREA_LOW_NUMBER, as
> >>> setup_vm() can call (and calls on my system)
> >>> page_alloc_init_area() twice.
> >>>
> >>> setup_vm() uses AREA_ANY_NUMBER as the area number argument but
> >>> eventually this means, according to the code, that
> >>> __page_alloc_init_area() would use AREA_LOW_NUMBER.
> >>>
> >>> I do not understand the rationale behind these areas well enough
> >>> to fix it.
> >>
> >> One more thing: I changed the previous allocator to zero any
> >> allocated page. Without it, I get strange failures when I do not
> >> run the tests on KVM, which are presumably caused by some
> >> intentional or unintentional hidden assumption of kvm-unit-tests
> >> that the memory is zeroed.
> >>
> >> Can you restore this behavior? I can also send this one-line fix,
> >> but I do not want to overstep on your (hopeful) fix for the
> >> previous problem that I mentioned (AREA_ANY_NUMBER).
> >
> > no. Some tests depend on the fact that the memory is being touched
> > for the first time.
> >
> > if your test depends on memory being zeroed on allocation, maybe you
> > can zero the memory yourself in the test?
> >
> > otherwise I can try adding a function to explicitly allocate a
> > zeroed page.
>
> To be fair, I do not know which non-zeroed memory causes the failure,
> and debugging these kind of failures is hard and sometimes
> non-deterministic. For instance, the failure I got this time was:
>
> Test suite: vmenter
> VM-Fail on vmlaunch: error number is 7. See Intel 30.4.
>
> And other VM-entry failures, which are not easy to debug, especially
> on bare-metal.
so you are running the test on bare metal?
that is something I had not tested
> Note that the failing test is not new, and unfortunately these kind of
> errors (wrong assumption that memory is zeroed) are not rare, since
> KVM indeed zeroes the memory (unlike other hypervisors and
> bare-metal).
>
> The previous allocator had the behavior of zeroing the memory to
I don't remember such behaviour, but I'll have a look
> avoid such problems. I would argue that zeroing should be the default
> behavior, and if someone wants to have the memory “untouched” for a
> specific test (which one?) he should use an alternative function for
> this matter.
probably we need some commandline switches to change the behaviour of
the allocator according to the specific needs of each testcase
I'll see what I can do
Claudio
next prev parent reply other threads:[~2020-12-08 10:01 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-02 15:44 [kvm-unit-tests PATCH v2 0/7] Rewrite the allocators Claudio Imbrenda
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 1/7] lib/list: Add double linked list management functions Claudio Imbrenda
2020-10-02 18:18 ` Andrew Jones
2020-10-05 6:57 ` Claudio Imbrenda
2020-11-06 11:29 ` Paolo Bonzini
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 2/7] lib/vmalloc: vmalloc support for handling allocation metadata Claudio Imbrenda
2020-10-03 8:46 ` Andrew Jones
2020-10-05 7:00 ` Claudio Imbrenda
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 3/7] lib/asm: Add definitions of memory areas Claudio Imbrenda
2020-10-03 9:23 ` Andrew Jones
2020-10-05 7:10 ` Claudio Imbrenda
2020-11-06 11:34 ` Paolo Bonzini
2020-11-06 12:58 ` Claudio Imbrenda
2020-11-06 13:04 ` Paolo Bonzini
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 4/7] lib/alloc_page: complete rewrite of the page allocator Claudio Imbrenda
2020-10-05 12:40 ` Andrew Jones
2020-10-05 15:56 ` Claudio Imbrenda
2020-10-05 16:53 ` Andrew Jones
2020-10-05 17:18 ` Claudio Imbrenda
2020-10-05 18:04 ` Andrew Jones
2020-12-08 0:41 ` Nadav Amit
2020-12-08 1:10 ` Nadav Amit
2020-12-08 9:15 ` Claudio Imbrenda
2020-12-08 9:23 ` Nadav Amit
2020-12-08 10:00 ` Claudio Imbrenda [this message]
2020-12-08 12:48 ` Nadav Amit
2020-12-08 13:41 ` Claudio Imbrenda
2020-12-08 14:26 ` Andrew Jones
2020-12-09 8:53 ` Claudio Imbrenda
2020-12-08 9:11 ` Claudio Imbrenda
2020-12-08 9:16 ` Nadav Amit
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 5/7] lib/alloc: simplify free and malloc Claudio Imbrenda
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 6/7] lib/alloc.h: remove align_min from struct alloc_ops Claudio Imbrenda
2020-11-06 11:35 ` Paolo Bonzini
2020-11-06 12:56 ` Claudio Imbrenda
2020-10-02 15:44 ` [kvm-unit-tests PATCH v2 7/7] lib/alloc_page: allow reserving arbitrary memory ranges Claudio Imbrenda
2020-10-05 11:54 ` [kvm-unit-tests PATCH v2 0/7] Rewrite the allocators Pierre Morel
2020-10-05 12:35 ` Claudio Imbrenda
2020-10-05 12:49 ` Andrew Jones
2020-10-05 12:57 ` Pierre Morel
2020-10-05 14:59 ` Claudio Imbrenda
2020-11-06 11:36 ` Paolo Bonzini
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=20201208110010.7d05bd3a@ibm-vm \
--to=imbrenda@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=lvivier@redhat.com \
--cc=nadav.amit@gmail.com \
--cc=pbonzini@redhat.com \
--cc=thuth@redhat.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;
as well as URLs for NNTP newsgroup(s).