lkml.org 
[lkml]   [2010]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 01/10] xen: Make all reserved pages for the balloon be INVALID_P2M_ENTRY.
    On Tue, Dec 21, 2010 at 02:19:40PM -0800, Jeremy Fitzhardinge wrote:
    > On 12/21/2010 01:37 PM, Konrad Rzeszutek Wilk wrote:
    > > This patch prepares ourselves for the case where void entries in the P2M
    > > tree structure do not necessarily imply that the pages are missing.
    > > With this, we diligently set regions that will be used by the
    > > balloon driver to be INVALID_P2M_ENTRY and under the ownership
    > > of the balloon driver.
    > >
    > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    > > ---
    > > arch/x86/xen/setup.c | 8 ++++++++
    > > drivers/xen/balloon.c | 1 +
    > > 2 files changed, 9 insertions(+), 0 deletions(-)
    > >
    > > diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
    > > index b5a7f92..d984d36 100644
    > > --- a/arch/x86/xen/setup.c
    > > +++ b/arch/x86/xen/setup.c
    > > @@ -52,6 +52,8 @@ phys_addr_t xen_extra_mem_start, xen_extra_mem_size;
    > >
    > > static __init void xen_add_extra_mem(unsigned long pages)
    > > {
    > > + unsigned long pfn;
    > > +
    > > u64 size = (u64)pages * PAGE_SIZE;
    > > u64 extra_start = xen_extra_mem_start + xen_extra_mem_size;
    > >
    > > @@ -66,6 +68,11 @@ static __init void xen_add_extra_mem(unsigned long pages)
    > > xen_extra_mem_size += size;
    > >
    > > xen_max_p2m_pfn = PFN_DOWN(extra_start + size);
    > > +
    > > + for (pfn = PFN_DOWN(extra_start); pfn <= xen_max_p2m_pfn; pfn++) {
    > > + BUG_ON(!set_phys_to_machine(pfn, INVALID_P2M_ENTRY));
    >
    > Use __set_phys_to_machine where you don't expect (or can't allow) any
    > allocation.

    Are you OK with me moving then this check:

    if (unlikely(xen_feature(XENFEAT_auto_translated_physmap))) {
    BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
    return true;
    }
    from set_phys_to_machine to __set_phys_to_machine?

    >
    > Also, I'm not a fan of hiding real side-effectful code in a BUG_ON
    > predicate.

    Ok. Will expunge these.


    \
     
     \ /
      Last update: 2010-12-22 15:55    [W:0.053 / U:0.288 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site