[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [0/32] RFC: 64-bit hash mmu implementation clean up
From: |
Alexander Graf |
Subject: |
Re: [Qemu-ppc] [0/32] RFC: 64-bit hash mmu implementation clean up |
Date: |
Sat, 23 Feb 2013 14:46:07 +0100 |
On 15.02.2013, at 09:00, David Gibson wrote:
> The target-ppc code supports CPUs with a number of different MMU
> types: there's both the 32-bit and 64-bit versions of the "classic"
> hash page table based powerpc mmu and there's also the BookE and 40x
> MMUs.
>
> Currently handling of all these has a roughly shared path in
> mmu_helper.c. Although code sharing is usually a good idea, in this
> case the MMUs really aren't similar enough for this to be useful.
> Instead it results in checking and behaving differently at many, many
> different points in the path leading to an unreadable tangle of code.
>
> This patch series starts cleaning this up, moving to a model where we
> have a single switch on the MMU family at the top-level entry points,
> then have a simpler, clearer separate code path for each MMU type.
> More specifically, it disentangles the path for the 64-bit classic
> hash MMU into its own new file. The other MMU types keep the existing
> code (minus 64-bit hash specific conditionals) for now. Disentangling
> those as well would be a good idea, but would be best done by someone
> with more resources to test those other platforms than I have.
>
> In addition this series makes a substantial cleanup to the
> now-separated 64-bit has mmu code. Adding support for more recent MMU
> features should be much easier with the new code.
>
> This series will probably conflict with the CPU qom-ification series,
> but it should be relatively easy to fix up. I'm sending it now to get
> some extra review, but I'm not expecting it to merge until after the
> CPU qomification, after which I'll resolve conflicts as necessary.
Very nice patch set indeed. Please repost without RFC and CC on qemu-devel. I'd
really appreciate if you could do the hash32 conversion on top too. Since you
went through the hard work of working through a working abstraction of the mmu
lookup, it should be quite easy for you to do.
Also, please follow up with a QOM'ificiation patch. With individual functions
for translate we can make the translate function simply class callback, getting
rid of the initial switch even. Maybe in the long run we can even get rid of
the mmu enum completely.
Alex
- [Qemu-ppc] [PATCH 03/32] target-ppc: Move SLB handling into a mmu-hash64.c, (continued)
- [Qemu-ppc] [PATCH 03/32] target-ppc: Move SLB handling into a mmu-hash64.c, David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 26/32] mmu-hash64: Clean up ppc_hash64_htab_lookup(), David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 23/32] mmu-hash64: Separate PTEG searching from permissions checking, David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 22/32] mmu-hash64: Separate VA matching from permission checking in pte64_check(), David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 30/32] mmu-hash64: Correctly mask RPN from hash PTE, David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 25/32] mmu-hash64: Remove permission checking from find_pte64(), David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 28/32] mmu-hash64: Clean up PTE permission checking, David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 29/32] mmu-hash64: Clean up PTE flags update, David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 31/32] mmu-hash64: Don't use full ppc_hash64_translate() path for get_phys_page_debug(), David Gibson, 2013/02/15
- [Qemu-ppc] [PATCH 32/32] mmu-hash64: Merge translate and fault handling functions, David Gibson, 2013/02/15
- Re: [Qemu-ppc] [0/32] RFC: 64-bit hash mmu implementation clean up,
Alexander Graf <=