[Crash-utility] [PATCH v2 0/6] Second phase of future support for x86_64 5-level page tables

Dave Anderson anderson at redhat.com
Tue Jan 16 20:37:39 UTC 2018



----- Original Message -----
> Hi Dave,
> 
> At 01/13/2018 04:56 AM, Dave Anderson wrote:
> > 
> > Hi Dou,
> > 
> > This v2 version tests OK on my sample set of dumpfiles.  I didn't
> > get a chance to fully review the patchset, and I will be out of the
> > office until next Tuesday.  I'll try to review the patches then.
> 
> Thank you for telling me that.
> 
> I also test this patchset with *sadump* file with my colleagues. it is
> OK too.
> 
> And I am trying to make the 5-level page tables support for Xen.
> 
> Thanks,
> 	dou.


Hello Dou,

Completing my review may take me longer than expected due to other tasks
I have to take care of first.  Please excuse my delay.

However, I did notice one problem w/respect to your changes to defs.h.
When modifying any exported data structure in defs.h, be aware that the
change may break extension modules that have been previously compiled
against older versions of defs.h.
  
For example, the following changes to the x86_64 machine_specific data
structure would break extension modules that have been previously compiled
against earlier versions of defs.h -- if the extension module uses fields in
the machine_specific data structure that come after the members that you
have removed:

@@ -5747,10 +5735,6 @@ struct machine_specific {
        ulong modules_vaddr;
        ulong modules_end;
        ulong phys_base;
-        char *pml4;
-       char *upml;
-       ulong last_upml_read;
-       ulong last_pml4_read;
        char *irqstack;
        ulong irq_eframe_link;
        struct x86_64_pt_regs_offsets pto;
@@ -5765,6 +5749,7 @@ struct machine_specific {
        ulong kernel_image_size;
        ulong physical_mask_shift;
        ulong pgdir_shift;
+       ulong ptrs_per_pgd;
         char *p4d;
        ulong last_p4d_read;
        struct ORC_data orc;

So in the situation above:

 (1) Please do not remove the pml4, upml, last_upml_read and last_pml4_read members.
     (You could add an "/* obsolete */" comment after them if you'd like.)
 (2) When adding a new member such as ptrs_per_pgd above, please place it at the
     end of the machine_specific data structure.  

That way, the member offsets of the original structure members would not change
and previously compiled extension modules would be unaffected.

Thanks,
  Dave




More information about the Crash-utility mailing list