Hi Dave,
[...]
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.
Aha, never mind! As you said, this patchset also has some problem,
I will do more test and resend a new version.
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.
Oops! I did not consider with this, really thank
you for your remind.
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.
Yes, Understood! I will check that.
Thanks,
dou