xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: konrad@darnok.org, xen-devel <xen-devel@lists.xen.org>
Subject: Re: [PATCH] Boot PV guests with more than 128GB (v2) for 3.7
Date: Wed, 28 Aug 2013 10:44:19 -0400	[thread overview]
Message-ID: <20130828144419.GA16368@phenom.dumpdata.com> (raw)
In-Reply-To: <521DC91B02000078000EEFD9@nat28.tlf.novell.com>

On Wed, Aug 28, 2013 at 08:55:39AM +0100, Jan Beulich wrote:
> >>> On 27.08.13 at 22:34, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> > On Mon, Aug 13, 2012 at 08:54:47AM +0100, Jan Beulich wrote:
> >> >>> On 03.08.12 at 16:46, Konrad Rzeszutek Wilk <konrad@darnok.org> wrote:
> >> > Didn't get to it yet. Sorry for top posting. If you have a patch ready I
> >> > can test it on Monday - travelling now.
> >> 
> >> So here's what I was thinking of (compile tested only).
> > 
> > Wow. It took me a whole year to get back to this.
> > 
> > Anyhow I did test it and it worked rather nicely for 64-bit guests. I didn't
> > even try to boot 32-bit guests as the pvops changes I did were only for 64-bit
> > guests. But if you have a specific kernel for a 32-bit guest I still have
> > the 1TB machine for a week and can boot it up there.
> 
> Considering that you had also attached a debug patch - did it
> work without that, i.e. just with the patch that I had handed
> you? If so, I'd then finally be in the position to submit this,
> putting your Tested-by (and perhaps Reported-by) underneath.

Yes it did with the 'memory=440000' guest config. I developed the
debug patch just to make sure I could see the failing case (fix=0) and
working case (fix=1) without having to reboot this monster machine.


Interestingly enough if I boot with a 486GB guest I end up with:

[root@ca-test111 konrad]# xl dmesg | tail -300
(XEN) d8:v0: unhandled page fault (ec=0000)
(XEN) Pagetable walk from ffff880043e75070:
(XEN)  L4[0x110] = 00000080ba854067 0000000000001a0d
(XEN)  L3[0x001] = 0000000000000000 ffffffffffffffff
(XEN) domain_crash_sync called from entry.S
(XEN) Domain 8 (vcpu#0) crashed on cpu#16:
(XEN) ----[ Xen-4.4-unstable  x86_64  debug=y  Not tainted ]----
(XEN) CPU:    16
(XEN) RIP:    e033:[<ffffffff81acd29e>]
(XEN) RFLAGS: 0000000000000246   EM: 1   CONTEXT: pv guest
(XEN) rax: 0000000000000000   rbx: 0000000000000000   rcx: ffffffff8219e000
(XEN) rdx: 0000000000000000   rsi: ffff880043e75000   rdi: 00000000deadbeef
(XEN) rbp: ffffffff81a01ff8   rsp: ffffffff81a01f00   r8:  0000000043e7a000
(XEN) r9:  0000000043e7b000   r10: 0000000000223000   r11: 000000a0a66b6067
(XEN) r12: 0000000000000000   r13: 0000000000000000   r14: 0000000000000000
(XEN) r15: 0000000000000000   cr0: 000000008005003b   cr4: 00000000000026f0
(XEN) cr3: 000000400fcb6000   cr2: ffff880043e75070
(XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
(XEN) Guest stack trace from rsp=ffffffff81a01f00:
(XEN)    ffffffff8219e000 000000a0a66b6067 0000000000000000 ffffffff81acd29e
(XEN)    000000010000e030 0000000000010046 ffffffff81a01f48 000000000000e02b
(XEN)    ffffffff81acd267 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 0000000000000000
(XEN)    0000000000000000 0000000000000000 0000000000000000 809822011f898975
(XEN)    000206e501200800 0000000000000001 0000000000000000 0000000000000000
(XEN)    0f00000060c0c748 ccccccccccccc305 cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc
(XEN)    cccccccccccccccc cccccccccccccccc cccccccccccccccc cccccccccccccccc

(this is with the debug patch and the guest having 'fix=1' enabled, meaning
it uses the new code path).

Thought looking at the stack more, I see:

ffffffff81acd29e is:

   0xffffffff81acd280 <xen_start_kernel+935>:   mov    $0xffffffff81931558,%rdi
   0xffffffff81acd287 <xen_start_kernel+942>:   xor    %eax,%eax
   0xffffffff81acd289 <xen_start_kernel+944>:   callq  0xffffffff813f5340 <xen_raw_printk>
   0xffffffff81acd28e <xen_start_kernel+949>:   mov    0x1a6f53(%rip),%rsi        # 0xffffffff81c741e8 <xen_start_info>
   0xffffffff81acd295 <xen_start_kernel+956>:   movb   $0x90,0x1aa454(%rip)        # 0xffffffff81c776f0 <boot_params+528>
   0xffffffff81acd29c <xen_start_kernel+963>:   xor    %edx,%edx
   0xffffffff81acd29e <xen_start_kernel+965>:   mov    0x70(%rsi),%rax

which implies that we copied from the 

  xen_start_info something (pt_base? mod_start?) which has the __va

address instead of the __kva one. So the bootup pagetables creation
I think we are OK with and indeed you can put 'Tested-by' tag on it.

I will dig in this a bit more.
> 
> And no, I'm not really concerned about the 32-bit case. The
> analogy with the 64-bit code is sufficient to tell that the change
> (even if just cosmetic) should also be done to the 32-bit variant.

Right.
> 
> Jan
> 

  reply	other threads:[~2013-08-28 14:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-31 14:43 [PATCH] Boot PV guests with more than 128GB (v2) for 3.7 Konrad Rzeszutek Wilk
2012-07-31 14:43 ` [PATCH 1/6] xen/mmu: use copy_page instead of memcpy Konrad Rzeszutek Wilk
2012-07-31 14:43 ` [PATCH 2/6] xen/mmu: For 64-bit do not call xen_map_identity_early Konrad Rzeszutek Wilk
2012-07-31 14:43 ` [PATCH 3/6] xen/mmu: Recycle the Xen provided L4, L3, and L2 pages Konrad Rzeszutek Wilk
2012-07-31 14:43 ` [PATCH 4/6] xen/p2m: Add logic to revector a P2M tree to use __va leafs Konrad Rzeszutek Wilk
2012-07-31 14:43 ` [PATCH 5/6] xen/mmu: Copy and revector the P2M tree Konrad Rzeszutek Wilk
2012-07-31 14:43 ` [PATCH 6/6] xen/mmu: Remove from __ka space PMD entries for pagetables Konrad Rzeszutek Wilk
2012-08-01 15:50 ` [PATCH] Boot PV guests with more than 128GB (v2) for 3.7 Konrad Rzeszutek Wilk
2012-08-02  9:05   ` Jan Beulich
2012-08-02 14:17     ` Konrad Rzeszutek Wilk
2012-08-02 23:04       ` Mukesh Rathor
2012-08-03 13:30         ` Konrad Rzeszutek Wilk
2012-08-03 13:54           ` Jan Beulich
     [not found]             ` <CAPbh3rsXaqQS9WQQmJ2uQ46LZdyFzkbSodUabGDAyFS+qTEwUg@mail.gmail.com>
2012-08-13  7:54               ` Jan Beulich
2012-09-03  6:33                 ` Ping: " Jan Beulich
2012-09-06 21:03                   ` Konrad Rzeszutek Wilk
2012-09-07  9:01                     ` Jan Beulich
2012-09-07 13:39                       ` Konrad Rzeszutek Wilk
2012-09-07 14:09                         ` Jan Beulich
2012-09-07 14:11                           ` Konrad Rzeszutek Wilk
2013-08-27 20:34                 ` Konrad Rzeszutek Wilk
2013-08-28  7:55                   ` Jan Beulich
2013-08-28 14:44                     ` Konrad Rzeszutek Wilk [this message]
2013-08-28 14:58                       ` [PATCH] libxc/x86: fix page table creation for huge guests Jan Beulich
2013-09-09  8:37                         ` Ping: " Jan Beulich
2013-09-12 15:38                           ` Ian Jackson
2012-08-03 18:37           ` [PATCH] Boot PV guests with more than 128GB (v2) for 3.7 Mukesh Rathor

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=20130828144419.GA16368@phenom.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=JBeulich@suse.com \
    --cc=konrad@darnok.org \
    --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).