All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
	Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
	"H. Peter Anvin" <hpa@zytor.com>, Jacob Shin <jacob.shin@amd.com>,
	Tejun Heo <tj@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 06/19] x86, mm: setup page table in top-down
Date: Mon, 22 Oct 2012 14:19:24 +0100	[thread overview]
Message-ID: <alpine.DEB.2.02.1210221405010.2689@kaball.uk.xensource.com> (raw)
In-Reply-To: <CAE9FiQX-JBHvjqLyjutKfBUp2DQKEwVMGEkj7Wi6yijAERhP6w@mail.gmail.com>

On Fri, 19 Oct 2012, Yinghai Lu wrote:
> On Fri, Oct 19, 2012 at 9:24 AM, Stefano Stabellini
> <stefano.stabellini@eu.citrix.com> wrote:
> > On Thu, 18 Oct 2012, Yinghai Lu wrote:
> >> Get pgt_buf early from BRK, and use it to map PMD_SIZE from top at first.
> >> then use mapped pages to map more range below, and keep looping until
> >> all pages get mapped.
> >>
> >> alloc_low_page will use page from BRK at first, after that buff is used up,
> >> will use memblock to find and reserve page for page table usage.
> >>
> >> At last we could get rid of calculation and find early pgt related code.
> >>
> >> -v2: update to after fix_xen change,
> >>      also use MACRO for initial pgt_buf size and add comments with it.
> >> -v3: skip big reserved range in memblock.reserved near end.
> >> -v4: don't need fix_xen change now.
> >>
> >> Suggested-by: "H. Peter Anvin" <hpa@zytor.com>
> >> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> >
> > The series is starting to get in good shape!
> > I tested it on a 2G and an 8G VM and it seems to be working fine.
> 
> domU on 32bit and 64bit?

domU 64bit


> > The most important thing to do now is testing it on different machines
> > (with and without xen) and writing better commit messages.
> > We can help you with the testing but you really need to write better
> > docs.
> 
> I tested on native one on 32bit, and 64bit.
> 
> Also xen dom0 32bit and 64bit.

Good, thanks!


> Changelog is always problem now. Looks like everyone is complaining about that.
> 
> Actually I already tried my best on that, really don't know what to do next.
> 
> >
> > In particular you should state in clear letters that alloc_low_page is
> > always going to return a page that is already mapped. You should write
> > it both in the commit message and in the code as a comment.
> > This is particularly important because it is going to become part of the
> > interface between the common x86 code and the other x86 subsystems like
> > Xen.
> 
> alloc_low_page() is used in arch/x86/mm/init*.c. How come it becomes
> interface to
> other subsystem?

I chose the wrong words.

I meant that always allocating pages from areas that are already mapped,
will become an assumption for other x86 subsystems like Xen.
One shouldn't just go ahead and change this assumption without changing
the subsystems too.


> I'm not sure if we really need that comment in code for that:
> ---
> the page that alloc_low_page return is directed mapped already, could
> use virtual address
> to access it.
> ---

I just want to make sure that 3 years from now, when somebody comes up
with a new great idea to improve the intial pagetable allocation, he
doesn't forget that changing alloc_low_page might break other subsystems.

So I think that a comment is required here and should explicitly
mention why it is important that alloc_low_page returns a mapped page.


> > Also, it wouldn't hurt to explain the overall design at the beginning of
> > the series: I shouldn't have to read your code to understand what you
> > are doing. I should read the description of the patch, understand what
> > you are doing, then go and check if the code actually does what you say
> > it does.
> 
> Actually I really don't like to read too long change log in commit.
> Changelog should be concise and precise.
> code change is more straightforward to me.

Many people don't think like that.
Of course you shouldn't document line by line changes in the commit
message but you should include a full explanation of your changes, like
I wrote before.

  reply	other threads:[~2012-10-22 13:19 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-18 20:50 [PATCH -v5 00/19] x86: Use BRK to pre mapping page table to make xen happy Yinghai Lu
2012-10-18 20:50 ` [PATCH 1/3] ACPI: Introduce a new acpi handle to determine HID match Yinghai Lu
2012-11-02 12:23   ` Rafael J. Wysocki
2012-11-02 15:03     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 01/19] x86, mm: Align start address to correct big page size Yinghai Lu
2012-10-22 14:16   ` Konrad Rzeszutek Wilk
2012-10-22 16:31     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 2/3] PCI: correctly detect ACPI PCI host bridge objects Yinghai Lu
2012-10-26  9:10   ` Bjorn Helgaas
2012-10-26 18:13     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 02/19] x86, mm: Use big page size for small memory range Yinghai Lu
2012-10-22 14:21   ` Konrad Rzeszutek Wilk
2012-10-22 16:33     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 3/3] PCI, ACPI: debug print for installation of acpi root bridge's notifier Yinghai Lu
2012-10-18 20:50 ` [PATCH 03/19] x86, mm: Don't clear page table if range is ram Yinghai Lu
2012-10-22 14:28   ` Konrad Rzeszutek Wilk
2012-10-22 16:56     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 04/19] x86, mm: only keep initial mapping for ram Yinghai Lu
2012-10-22 14:33   ` Konrad Rzeszutek Wilk
2012-10-22 17:43     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 05/19] x86, mm: Break down init_all_memory_mapping Yinghai Lu
2012-10-18 20:50 ` [PATCH 06/19] x86, mm: setup page table in top-down Yinghai Lu
2012-10-19 16:24   ` Stefano Stabellini
2012-10-19 16:41     ` Yinghai Lu
2012-10-22 13:19       ` Stefano Stabellini [this message]
2012-10-22 18:17         ` Yinghai Lu
2012-10-22 18:22           ` Yinghai Lu
2012-10-23 12:16             ` Stefano Stabellini
2012-10-23 18:47               ` Yinghai Lu
2012-10-23 12:22           ` Stefano Stabellini
2012-10-23 18:37             ` Yinghai Lu
2012-10-24 10:55               ` Stefano Stabellini
2012-10-22 14:14       ` Konrad Rzeszutek Wilk
2012-10-22 15:06   ` Konrad Rzeszutek Wilk
2012-10-22 18:56     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 07/19] x86, mm: Remove early_memremap workaround for page table accessing on 64bit Yinghai Lu
2012-10-22 15:07   ` Konrad Rzeszutek Wilk
2012-10-22 19:08     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 08/19] x86, mm: Remove parameter in alloc_low_page for 64bit Yinghai Lu
2012-10-22 15:09   ` Konrad Rzeszutek Wilk
2012-10-22 19:09     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 09/19] x86, mm: Merge alloc_low_page between 64bit and 32bit Yinghai Lu
2012-10-22 15:11   ` Konrad Rzeszutek Wilk
2012-10-22 19:14     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 10/19] x86, mm: Move min_pfn_mapped back to mm/init.c Yinghai Lu
2012-10-18 20:50 ` [PATCH 11/19] x86, mm, xen: Remove mapping_pagatable_reserve Yinghai Lu
2012-10-22 15:14   ` Konrad Rzeszutek Wilk
2012-10-22 19:18     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 12/19] x86, mm: Add alloc_low_pages(num) Yinghai Lu
2012-10-22 15:17   ` Konrad Rzeszutek Wilk
2012-10-22 19:24     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 13/19] x86, mm: only call early_ioremap_page_table_range_init() once Yinghai Lu
2012-10-22 15:24   ` Konrad Rzeszutek Wilk
2012-10-22 19:40     ` Yinghai Lu
2012-10-23  0:01       ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 14/19] x86, mm: Move back pgt_buf_* to mm/init.c Yinghai Lu
2012-10-18 20:50 ` [PATCH 15/19] x86, mm: Move init_gbpages() out of setup.c Yinghai Lu
2012-10-18 20:50 ` [PATCH 16/19] x86, mm: change low/hignmem_pfn_init to static on 32bit Yinghai Lu
2012-10-18 20:50 ` [PATCH 17/19] x86, mm: Move function declaration into mm_internal.h Yinghai Lu
2012-10-18 20:50 ` [PATCH 18/19] x86, mm: Let "memmap=" take more entries one time Yinghai Lu
2012-10-22 15:19   ` Konrad Rzeszutek Wilk
2012-10-22 19:26     ` Yinghai Lu
2012-10-18 20:50 ` [PATCH 19/19] x86, mm: Add check before clear pte above max_low_pfn on 32bit Yinghai Lu

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=alpine.DEB.2.02.1210221405010.2689@kaball.uk.xensource.com \
    --to=stefano.stabellini@eu.citrix.com \
    --cc=hpa@zytor.com \
    --cc=jacob.shin@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=yinghai@kernel.org \
    /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.