[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 11/25] x86/hvm: Introduce a emulated VTD for HVM
On 2017年08月24日 16:49, Roger Pau Monné wrote: > On Thu, Aug 24, 2017 at 10:16:32AM +0800, Lan Tianyu wrote: >> On 2017年08月23日 15:58, Roger Pau Monné wrote: >>> On Wed, Aug 09, 2017 at 04:34:12PM -0400, Lan Tianyu wrote: >>>> From: Chao Gao <chao.gao@xxxxxxxxx> >>>> +} >>>> + >>>> +#define vvtd_get_reg_quad(vvtd, reg, val) do { \ >>>> + (val) = vvtd_get_reg(vvtd, (reg) + 4 ); \ >>>> + (val) = (val) << 32; \ >>>> + (val) += vvtd_get_reg(vvtd, reg); \ >>>> +} while(0) >>>> +#define vvtd_set_reg_quad(vvtd, reg, val) do { \ >>>> + vvtd_set_reg(vvtd, reg, (val)); \ >>>> + vvtd_set_reg(vvtd, (reg) + 4, (val) >> 32); \ >>>> +} while(0) >>> >>> You seem to need to access hvm_hw_vvtd_regs using different sizes, why >>> not do: >>> >>> union hvm_hw_vvtd_regs { >>> uint8_t data8[1024]; >>> uint16_t data16[512]; >>> uint32_t data32[256]; >>> uint64_t data64[128]; >>> }; >>> >>> Then the access is much more straightforward and you don't need the >>> complicated helpers that you have above. >> >> Yes, that will be simpler. > > Keep in mind (as said in another patch) that this approach will only > work correctly as long as you force accesses to be size aligned, which > you where not doing now. > > I've looked at the VT-d spec, but I cannot find any section that > explains the restrictions on access sizes and alignments. > 10.2 Software Access to Registers? -- Best regards Tianyu Lan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |