>>> On 14.08.15 at 13:52, <daniel.ki...@oracle.com> wrote: > On Tue, Aug 11, 2015 at 12:48:06PM -0400, Konrad Rzeszutek Wilk wrote: >> On Mon, Jul 20, 2015 at 04:29:17PM +0200, Daniel Kiper wrote: >> > diff --git a/xen/include/asm-x86/page.h b/xen/include/asm-x86/page.h >> > index 87b3341..27481ac 100644 >> > --- a/xen/include/asm-x86/page.h >> > +++ b/xen/include/asm-x86/page.h >> > @@ -283,7 +283,7 @@ extern root_pgentry_t >> > idle_pg_table[ROOT_PAGETABLE_ENTRIES]; >> > extern l2_pgentry_t *compat_idle_pg_table_l2; >> > extern unsigned int m2p_compat_vstart; >> > extern l2_pgentry_t l2_xenmap[L2_PAGETABLE_ENTRIES], >> > - l2_bootmap[L2_PAGETABLE_ENTRIES]; >> > + l2_bootmap[4*L2_PAGETABLE_ENTRIES]; >> >> ? Why do we need to expand this to be 16kB? > > TBH, we need 8 KiB in the worst case. The worst case is when > next GiB starts (e.g. 1 GiB ends and 2 GiB starts) in the middle > of Xen image. In this situation we must hook up lower l2_bootmap > table with lower l3_bootmap entry, higher l2_bootmap table with > higher l3_bootmap entry and finally fill l2_bootmap relevant > tables in proper way. Sadly, this method requires more calculations. > To avoid that I have added 3 l2_bootmap tables and simply hook up > one after another with relevant l3_bootmap entries. However, if > you wish we can reduce number of l2_bootmap tables to two. This > way code will be more complicated but we will save about 8 KiB.
Wouldn't it be better (simpler) to enforce, say, 16Mb alignment in the PE32+ header (which the EFI loader would then honor)? Jan _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel