From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Juergen Gross <jgross@suse.com>,
xen-devel@lists.xen.org, Ian.Campbell@citrix.com,
ian.jackson@eu.citrix.com, stefano.stabellini@eu.citrix.com,
wei.liu2@citrix.com
Cc: Tim Deegan <tim@xen.org>, Keir Fraser <keir@xen.org>,
Jan Beulich <jbeulich@suse.com>
Subject: Re: [PATCH v2 2/5] xen: add generic flag to elf_dom_parms indicating support of unmapped initrd
Date: Fri, 2 Oct 2015 10:53:23 +0100 [thread overview]
Message-ID: <560E5413.30709@citrix.com> (raw)
In-Reply-To: <560E5210.9050904@suse.com>
On 02/10/15 10:44, Juergen Gross wrote:
> On 10/02/2015 11:37 AM, Andrew Cooper wrote:
>> On 02/10/15 06:49, Juergen Gross wrote:
>>> Support of an unmapped initrd is indicated by the kernel of the domain
>>> via elf notes. In order not to have to use raw elf data in the tools
>>> for support of an unmapped initrd add a flag to the parsed data area
>>> to indicate the kernel supporting this feature.
>>>
>>> Switch using this flag in the hypervisor domain builder.
>>>
>>> Cc: Keir Fraser <keir@xen.org>
>>> Cc: Jan Beulich <jbeulich@suse.com>
>>> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Cc: Tim Deegan <tim@xen.org>
>>> Suggested-by: Ian Campbell <ian.campbell@citrix.com>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>> xen/arch/x86/domain_build.c | 4 ++--
>>> xen/common/libelf/libelf-dominfo.c | 3 +++
>>> xen/include/xen/libelf.h | 1 +
>>> 3 files changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c
>>> index c2ef87a..a02c9fb 100644
>>> --- a/xen/arch/x86/domain_build.c
>>> +++ b/xen/arch/x86/domain_build.c
>>> @@ -353,7 +353,7 @@ static unsigned long __init compute_dom0_nr_pages(
>>>
>>> vstart = parms->virt_base;
>>> vend = round_pgup(parms->virt_kend);
>>> - if ( !parms->elf_notes[XEN_ELFNOTE_MOD_START_PFN].data.num )
>>> + if ( !parms->mod_start_pfn )
>>> vend += round_pgup(initrd_len);
>>> end = vend + nr_pages * sizeof_long;
>>>
>>> @@ -1037,7 +1037,7 @@ int __init construct_dom0(
>>> v_start = parms.virt_base;
>>> vkern_start = parms.virt_kstart;
>>> vkern_end = parms.virt_kend;
>>> - if ( parms.elf_notes[XEN_ELFNOTE_MOD_START_PFN].data.num )
>>> + if ( parms.mod_start_pfn )
>>> {
>>> vinitrd_start = vinitrd_end = 0;
>>> vphysmap_start = round_pgup(vkern_end);
>>> diff --git a/xen/common/libelf/libelf-dominfo.c
>>> b/xen/common/libelf/libelf-dominfo.c
>>> index 3de1c23..31d8436 100644
>>> --- a/xen/common/libelf/libelf-dominfo.c
>>> +++ b/xen/common/libelf/libelf-dominfo.c
>>> @@ -190,6 +190,9 @@ elf_errorstatus elf_xen_parse_note(struct
>>> elf_binary *elf,
>>> case XEN_ELFNOTE_INIT_P2M:
>>> parms->p2m_base = val;
>>> break;
>>> + case XEN_ELFNOTE_MOD_START_PFN:
>>> + parms->mod_start_pfn = !!val;
>>> + break;
>>> case XEN_ELFNOTE_PADDR_OFFSET:
>>> parms->elf_paddr_offset = val;
>>> break;
>>> diff --git a/xen/include/xen/libelf.h b/xen/include/xen/libelf.h
>>> index d7045f6..07b96a3 100644
>>> --- a/xen/include/xen/libelf.h
>>> +++ b/xen/include/xen/libelf.h
>>> @@ -423,6 +423,7 @@ struct elf_dom_parms {
>>> char loader[16];
>>> enum xen_pae_type pae;
>>> bool bsd_symtab;
>>> + bool mod_start_pfn;
>>
>> The _pfn suffix here is confusing given the type of bool.
>>
>> Perhaps "has_initrd" is a better choice of name? The rest of the patch
>> looks fine.
>
> Hmm, I just followed the naming of the note index in the raw data:
> XEN_ELFNOTE_MOD_START_PFN. "has_initrd" would be completely misleading:
> the flag doesn't indicate the support of an initrd, but the support of
> an initrd (or more general: module as understood by grub) not covered by
> the initial kernel mapping and due to this specified by it's starting
> pfn instead it's virtual address.
It would appear that a lot of the naming around there is confusing.
Would "unmapped_initrd" be a better name then?
If not, I am not too fussed, seeing as it matches the (questionably
named) ELF note.
~Andrew
next prev parent reply other threads:[~2015-10-02 9:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-02 5:49 [PATCH v2 0/5] libxc: support building large pv-domains Juergen Gross
2015-10-02 5:49 ` [PATCH v2 1/5] libxc: remove allocate member from struct xc_dom_image Juergen Gross
2015-10-02 13:01 ` Ian Campbell
2015-10-02 14:25 ` Juergen Gross
2015-10-02 14:47 ` Ian Campbell
2015-10-02 15:00 ` Juergen Gross
2015-10-02 5:49 ` [PATCH v2 2/5] xen: add generic flag to elf_dom_parms indicating support of unmapped initrd Juergen Gross
2015-10-02 9:37 ` Andrew Cooper
2015-10-02 9:41 ` Jan Beulich
2015-10-02 9:44 ` Juergen Gross
2015-10-02 9:53 ` Andrew Cooper [this message]
2015-10-02 10:01 ` Juergen Gross
2015-10-02 10:22 ` Ian Campbell
2015-10-02 5:49 ` [PATCH v2 3/5] libxc: create unmapped initrd in domain builder if supported Juergen Gross
2015-10-02 12:59 ` Ian Campbell
2015-10-02 14:46 ` Juergen Gross
2015-10-02 14:56 ` Ian Campbell
2015-10-02 15:13 ` Juergen Gross
2015-10-02 15:21 ` Ian Campbell
2015-10-02 16:28 ` Juergen Gross
2015-10-02 5:49 ` [PATCH v2 4/5] libxc: split p2m allocation in domain builder from other magic pages Juergen Gross
2015-10-02 9:29 ` Ian Campbell
2015-10-02 5:49 ` [PATCH v2 5/5] libxc: create p2m list outside of kernel mapping if supported Juergen Gross
2015-10-02 13:16 ` Ian Campbell
2015-10-02 14:37 ` Juergen Gross
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=560E5413.30709@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=jgross@suse.com \
--cc=keir@xen.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.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 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).