On Wed, Dec 21, 2022 at 10:15:28PM +0000, Peter Maydell wrote: > On Wed, 21 Dec 2022 at 16:03, Cédric Le Goater <c...@kaod.org> wrote: > > > > On 12/21/22 13:33, Peter Maydell wrote: > > > On Wed, 21 Dec 2022 at 01:35, David Gibson <da...@gibson.dropbear.id.au> > > > wrote: > > >> On Mon, Dec 19, 2022 at 10:39:40AM +0000, Peter Maydell wrote: > > >>> OK. I still think we should consistently change all the places that are > > >>> accessing this data structure, though, not just half of them. > > >> > > >> Yes, that makes sense. Although what exactly constitutes "this data > > >> structure" is a bit complex here. If we mean just the spapr specific > > >> "external HPT", then there are only a few more references to it. If > > >> we mean all instances of a powerpc hashed page table, then there are a > > >> bunch more in the cpu target code. > > > > > > I had in mind "places where we write this specific array of bytes > > > spapr->htab".
Seems a reasonable amount to tackle for now. > > spapr_store_hpte() seems to be the most annoying part. It is used > > by hcalls h_enter, h_remove, h_protect. Reworking the interface > > to present pte0/pte1 as BE variables means reworking the whole > > hw/ppc/spapr_softmmu.c file. That's feasible but not a small task > > since the changes will root down in the target hash mmu code which > > is shared by all platforms ... :/ > > Don't you just need to change spapr_store_hpte() to use stq_be_p() > instead of stq_p() ? I think Peter is right. The values passed to the function are "host endian" (really, they don't have an endianness since they'll be in registers). > > spapr_hpte_set_c() are spapr_hpte_set_r() are of a different kind. > > That code seems to suggest we already implicitly assume that > spapr->htab fields have a given endianness... Yes, we absolutely do. We rely on the HPTE always being big-endian. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature