[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_tran
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate |
Date: |
Fri, 6 Oct 2017 14:31:50 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 06/10/2017 13:46, Maxime Coquelin wrote:
> + hwaddr page_mask = ~TARGET_PAGE_MASK;
> + hwaddr plen = (hwaddr)(-1);
> +
> + if (plen_out) {
> + plen = *plen_out;
> + }
>
> for (;;) {
> section = address_space_translate_internal(
> flatview_to_dispatch(fv), addr, &addr,
> - plen, is_mmio);
> + &plen, is_mmio);
>
> iommu_mr = memory_region_get_iommu(section->mr);
> if (!iommu_mr) {
> @@ -496,7 +520,8 @@ static MemoryRegionSection flatview_do_translate(FlatView
> *fv,
> IOMMU_WO : IOMMU_RO);
> addr = ((iotlb.translated_addr & ~iotlb.addr_mask)
> | (addr & iotlb.addr_mask));
> - *plen = MIN(*plen, (addr | iotlb.addr_mask) - addr + 1);
> + page_mask = iotlb.addr_mask;
Should this be "page_mask &= iotlb.addr_mask"?
If you have multiple IOMMUs on top of each other (yeah, I know...) I
think the smallest size should win. This is also consistent with the
MIN in the line below.
Otherwise looks good.
Paolo
> + plen = MIN(plen, (addr | iotlb.addr_mask) - addr + 1);
> if (!(iotlb.perm & (1 << is_write))) {
> goto translate_fail;
- [Qemu-devel] [PATCH v2 0/2] exec: further refine address_space_get_iotlb_entry(), Maxime Coquelin, 2017/10/06
- [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Maxime Coquelin, 2017/10/06
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Maxime Coquelin, 2017/10/06
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Paolo Bonzini, 2017/10/06
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Maxime Coquelin, 2017/10/06
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Peter Xu, 2017/10/09
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Maxime Coquelin, 2017/10/09
- Re: [Qemu-devel] [PATCH v2 1/2] exec: add page_mask for flatview_do_translate, Peter Xu, 2017/10/09
[Qemu-devel] [PATCH v2 2/2] exec: simplify address_space_get_iotlb_entry, Maxime Coquelin, 2017/10/06