[patch 8/9] Add support for filtering out user pages under Xen4

Petr Tesarik ptesarik at suse.cz
Thu Aug 23 11:49:44 EDT 2012


Dne Čt 23. srpna 2012 14:10:21 jste napsal(a):
> Dne Čt 23. srpna 2012 12:00:41 jste napsal(a):
> > Hello Petr,
> > 
> > Actually we didn't need to patch the crash utility for the SLES11 SP1
> > version we use. When I call the crash utility with the vmcore.d0 argument
> > 
> > that your current  makedumpfile version produces, I see:
> > 	WARNING: crashing_cpu not found.
> > 	crash: invalid kernel virtual address: 0  type: "opt_sched,"
> > 	
> > 	crash: cannot read opt_sched,.

Hello Norbert once again,

I've investigated the logic once more, and we should probably rethink what 
we're filtering out for "-X". The manual page says:

-X  Exclude  all  the user domain pages from Xen kdump's VMCORE, and
    extracts the part of xen and domain-0.

So, depending on how I read it, it should either:

 a. throw away anything but dom_xen, dom_io and dom0, or
 b. keep everything except domU

I vote for a, because it should give the smallest dump. Now, all such pages 
will have:

1. PGC_allocated (it is allocated to a domain)
2. one of the 3 known values for _domain

All else only adds unnecessary complexity. But even that does not cover all 
cases. For example the "opt_sched" (actually ops.opt_name) is stored at 
physical address 0x3fa38b28 (PFN 0x3fa38), but frame_table[0x3fa38] is:

struct page_info {
  {
    list = {
      next = 0, 
      prev = 0
    }, 
    up = 0, 
    shr_handle = 0
  }, 
  count_info = 0, 
  u = {
    inuse = {
      type_info = 0
    }, 
    sh = {
      type = 0, 
      pinned = 0, 
      count = 0
    }, 
    free = {
      need_tlbflush = 0 '\000'
    }
  }, 
  v = {
    inuse = {
      _domain = 0
    }, 
    sh = {
      back = 0
    }, 
    free = {
      order = 0
    }
  }, 
  {
    tlbflush_timestamp = 0, 
    {
      nr_validated_ptes = 0, 
      partial_pte = 0 '\000'
    }, 
    shadow_flags = 0, 
    next_shadow = 0
  }
}

This looks pretty uninitialized to me. Your patch keeps this page, because you 
don't filter out anything that has PGC_allocated==0 and PGC_state_inuse 
(numerically 0), but I'm not sure that's right.

I'll try asking on the Xen mailing list about the intended hierarchy of the 
various PGC_xxx flags.

Petr Tesarik
SUSE Linux



More information about the kexec mailing list