[PATCH 00/11] KVM: PPC: reconstruct mmio emulation with analyse_instr()

Paul Mackerras paulus at ozlabs.org
Thu May 3 15:31:17 AEST 2018


On Wed, Apr 25, 2018 at 07:54:33PM +0800, wei.guo.simon at gmail.com wrote:
> From: Simon Guo <wei.guo.simon at gmail.com>
> 
> We already have analyse_instr() which analyzes instructions for the instruction
> type, size, addtional flags, etc. What kvmppc_emulate_loadstore() did is somehow
> duplicated and it will be good to utilize analyse_instr() to reconstruct the
> code. The advantage is that the code logic will be shared and more clean to be 
> maintained.
> 
> This patch series reconstructs kvmppc_emulate_loadstore() for various load/store
> instructions. 
> 
> The testcase locates at:
> https://github.com/justdoitqd/publicFiles/blob/master/test_mmio.c
> 
> - Tested at both PR/HV KVM. 
> - Also tested with little endian host & big endian guest.
> 
> Tested instruction list: 
> 	lbz lbzu lbzx ld ldbrx
> 	ldu ldx lfd lfdu lfdx
> 	lfiwax lfiwzx lfs lfsu lfsx
> 	lha lhau lhax lhbrx lhz
> 	lhzu lhzx lvx lwax lwbrx
> 	lwz lwzu lwzx lxsdx lxsiwax
> 	lxsiwzx lxsspx lxvd2x lxvdsx lxvw4x
> 	stb stbu stbx std stdbrx
> 	stdu stdx stfd stfdu stfdx
> 	stfiwx stfs stfsx sth sthbrx
> 	sthu sthx stvx stw stwbrx
> 	stwu stwx stxsdx stxsiwx stxsspx
> 	stxvd2x stxvw4x

Thanks for doing this.  It's nice to see that this makes the code 260
lines smaller.

I have some comments on the individual patches, which I will give in
replies to those patches.

Paul.


More information about the Linuxppc-dev mailing list