From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:51693) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5cyn-0001BG-WE for qemu-devel@nongnu.org; Mon, 19 Sep 2011 08:29:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R5cym-0006Ct-HF for qemu-devel@nongnu.org; Mon, 19 Sep 2011 08:29:45 -0400 Received: from fmmailgate03.web.de ([217.72.192.234]:38490) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5cym-0006Cp-4h for qemu-devel@nongnu.org; Mon, 19 Sep 2011 08:29:44 -0400 Message-ID: <4E7735B4.1030903@web.de> Date: Mon, 19 Sep 2011 14:29:40 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4E75EA08.4090809@web.de> <4E7614CC.4000206@redhat.com> <4E761C66.9010208@web.de> <4E762064.6010108@redhat.com> <4E7640C8.8040600@web.de> <4E77322B.2040008@redhat.com> In-Reply-To: <4E77322B.2040008@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig1881E3ACA920A0D93E720FF3" Sender: jan.kiszka@web.de Subject: Re: [Qemu-devel] [PATCH] isa: Avoid using obsolete memory_region_set_offset for old portio List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel , Richard Henderson This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig1881E3ACA920A0D93E720FF3 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable On 2011-09-19 14:14, Avi Kivity wrote: > On 09/18/2011 10:04 PM, Jan Kiszka wrote: >> > >> > If you make the core patch add both mr->offset and mrp->offset, the= n >> > change isa to drop memory_region_set_offset(), instead adding the >> delta >> > to mrp->offset, does that not work out? >> >> Nope. The old API accepted arbitrary portio lists per memory region, t= he >> new requires one region with a consistent offset per range. I should >> have documented it... >=20 > What does "a consistent offset per range" mean? You aren't actually > changing the caller's ranges. I'm changing the way isa_register_portio_1 registers portios with the core: only one per offset. The new commit log says: "This implies that MemoryRegionPortio::offset is no longer used as offset within the memory region but just as a correction value for the offset passed to legacy handlers that expect absolute port addresses." >=20 >=20 >> >> > >> >> > And I >> >> > don't want to remove memory_region_set_offset() until >> everything (that >> >> > can potentially use it, at least) has been converted. >> >> >> >> IMO it's easier to fix those potential users before converting >> them. You >> >> need to review them anyway to decide if an offset might be needed,= >> and >> >> which one precisely. >> >> >> >> Are you aware of any candidates? For PIO, there should be none now= =2E >> > >> > For pio, none, but mmio has some: >> > >> > hw/sh7750.c: cpu_register_physical_memory_offset(0x1f000000, >> 0x1000, >> > hw/sh7750.c: cpu_register_physical_memory_offset(0xff000000, >> 0x1000, >> > hw/sh7750.c: cpu_register_physical_memory_offset(0x1f800000, >> 0x1000, >> > hw/sh7750.c: cpu_register_physical_memory_offset(0xff800000, >> 0x1000, >> > hw/sh7750.c: cpu_register_physical_memory_offset(0x1fc00000, >> 0x1000, >> > hw/sh7750.c: cpu_register_physical_memory_offset(0xffc00000, >> 0x1000, >> > hw/sh_intc.c: >> > cpu_register_physical_memory_offset(P4ADDR(address), 4, >> > hw/sh_intc.c: >> > cpu_register_physical_memory_offset(A7ADDR(address), 4, >> >> Cool, that's all. Trivial to fix, just push the offset math into those= >> few handler. Then we can drop cpu_register_physical_memory_offset as >> well. >=20 > They all use the same handler, so you need to split e.g. > sh7750_io_memory into six MemoryRegionsOps. Or use tricks with aliases = - > have one giant 4G region with one handler, and map six 4k aliases into > the system address space. Looks more like 3 regions with one alias each. But we likely need to disentangle all that logic first. I would be surprised if there wasn't a more readable way to express it via the memory API. Jan --------------enig1881E3ACA920A0D93E720FF3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk53NbQACgkQitSsb3rl5xRlOACfQoYYeSMZQx5tcUxX8XHopblU UTgAniIRe89qaDXM/45ejwMVr+mQ4ITg =WYT+ -----END PGP SIGNATURE----- --------------enig1881E3ACA920A0D93E720FF3--