From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57777) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5tQV-0003RC-1q for qemu-devel@nongnu.org; Mon, 07 Dec 2015 05:53:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a5tQR-0001GX-RO for qemu-devel@nongnu.org; Mon, 07 Dec 2015 05:53:50 -0500 Received: from mailout3.w1.samsung.com ([210.118.77.13]:17119) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a5tQR-0001Fm-La for qemu-devel@nongnu.org; Mon, 07 Dec 2015 05:53:47 -0500 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NYZ00LN9I9ISR80@mailout3.w1.samsung.com> for qemu-devel@nongnu.org; Mon, 07 Dec 2015 10:53:42 +0000 (GMT) From: Pavel Fedin References: <00fe01d1210c$1be12880$53a37980$@samsung.com> <1447884282.4697.111.camel@redhat.com> <013101d122b5$240ef500$6c2cdf00$@samsung.com> <1447976037.4697.205.camel@redhat.com> <013801d126cc$3efcbdf0$bcf639d0$@samsung.com> <1449085233.15753.101.camel@redhat.com> <008a01d12da9$67f816d0$37e84470$@samsung.com> <1449159960.15753.160.camel@redhat.com> <1449163144.15753.203.camel@redhat.com> <1449165536.15753.214.camel@redhat.com> In-reply-to: <1449165536.15753.214.camel@redhat.com> Date: Mon, 07 Dec 2015 13:53:41 +0300 Message-id: <015101d130dd$8993b740$9cbb25c0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: quoted-printable Content-language: ru Subject: Re: [Qemu-devel] [PATCH] vfio: Align iova also to IOMMU page size List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: 'Alex Williamson' , 'Peter Maydell' Cc: 'QEMU Developers' Hello! > TAGET_PAGE_ALIGN tells us that it *could* be a valid DMA target = though. > The VM model is capable of using that as a page size, which means we > assume it is and want to generate a fault. We seem to have looped back. So... It is possible to fix this according to this assumption. In this case = we would need to make TARGET_PAGE_BITS a variable. If we are emulating = ancient armv5te, it will be set to 10. For modern targets, ARMv6 and = newer, it will be 12. Peter, would you ACK this approach? BTW, we even have a kind of hack in = target-arm/cpu.h: --- cut --- #if defined(CONFIG_USER_ONLY) #define TARGET_PAGE_BITS 12 #else /* The ARM MMU allows 1k pages. */ /* ??? Linux doesn't actually use these, and they're deprecated in = recent architecture revisions. Maybe a configure option to disable them. = */ #define TARGET_PAGE_BITS 10 #endif --- cut --- Kind regards, Pavel Fedin Expert Engineer Samsung Electronics Research center Russia