[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 1/4] xen/riscv: add VM space layout



On Mon, 2023-04-24 at 11:33 +0200, Jan Beulich wrote:
> On 21.04.2023 16:41, Oleksii wrote:
> > On Thu, 2023-04-20 at 14:58 +0200, Jan Beulich wrote:
> > > On 19.04.2023 17:42, Oleksii Kurochko wrote:
> > > > + *
> > > > ===============================================================
> > > > ====
> > > > =========
> > > > + *    Start addr    |   End addr        |  Size  | VM area
> > > > description
> > > > + *
> > > > ===============================================================
> > > > ====
> > > > =========
> > > > + * FFFFFFFFC0000000 |  FFFFFFFFC0200000 |  2 MB  | Xen
> > > > + * FFFFFFFFC0200000 |  FFFFFFFFC0600000 |  4 MB  | FDT
> > > > + * FFFFFFFFC0600000 |  FFFFFFFFC0800000 |  2 MB  | Fixmap
> > > 
> > > These are all L2 slot 511 aiui, which may be worth mentioning
> > > especially since
> > > the top bits don't match the top bits further down in the table
> > > (because of the
> > > aliasing).
> > 
> > Than I'll add one more column where I'll put slot number
> > 
> > > 
> > > > + *     .................. unused ..................
> > > 
> > > This is covering slot 510, which again may be worth mentioning.
> > > 
> > > > + * 0000003200000000 |  0000007f40000000 | 331 GB | Direct
> > > > map(L2
> > > > slot: 200-509)
> > > > + * 0000003100000000 |  0000003140000000 |  1 GB  |
> > > > Frametable(L2
> > > > slot: 196-197)
> > > 
> > > 1Gb is, if I'm not mistaken, a single L2 slot.
> > Yeah, it can be misunderstood. I meant [196, 197), so 197 isn't
> > included. I'll update the table.
> > 
> > > 
> > > Also assuming a 32-byte struct page_info (I don't think you'll
> > > get
> > > away with
> > > less than that, when even Arm32 requires this much), there's a
> > > mismatch
> > > between direct map and frame table size: With 4k pages, the
> > > scaling
> > > factor
> > > would be 128 if I'm not mistaken. So perhaps you really mean 3Gb
> > > here
> > > to
> > > cover for (slightly more than) the 331Gb of memory you mean to be
> > > able to
> > > map?
> > For RV64 page_info size will be 56-byte and 32-byte for RV32 but
> > you
> > are right it should 3 Gb in that case what will be enough ( taking
> > into
> > account both available sizes of page_info structure ).
> 
> As to the plan to it being 56 bytes (i.e. like on Arm): Arm forever
> has
> had a 64-bit padding field at the end. My best guess is that the
> field
> was introduced to have a 32-byte struct on Arm32. But then why
> artificially increase the struct from 48 to 56 bytes on Arm64? And
> hence
> why have the same oddity on RV64?
I didn't think about that. I just re-used page_info structure from ARM.
I'll think about your comment. Thanks.

~ Oleksii



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.