From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5d1C-00027I-Cr for qemu-devel@nongnu.org; Mon, 19 Sep 2011 08:32:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R5d15-0006ag-64 for qemu-devel@nongnu.org; Mon, 19 Sep 2011 08:32:14 -0400 Received: from fmmailgate03.web.de ([217.72.192.234]:41296) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R5d14-0006aZ-Rl for qemu-devel@nongnu.org; Mon, 19 Sep 2011 08:32:07 -0400 Message-ID: <4E773644.8020005@web.de> Date: Mon, 19 Sep 2011 14:32:04 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4E75E7A4.50702@web.de> <4E75E96E.90101@web.de> <4E761051.9000204@redhat.com> <4E76119F.5040004@web.de> <4E761220.3080707@redhat.com> <4E761C20.4040609@web.de> <4E76212A.20000@redhat.com> <4E764185.8020500@web.de> <4E773365.9010008@redhat.com> In-Reply-To: <4E773365.9010008@redhat.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig8BAD7EB06458F0B3DE775063" Sender: jan.kiszka@web.de Subject: Re: [Qemu-devel] [PATCH v2 1/2] memory: Fix old portio word accesses 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) --------------enig8BAD7EB06458F0B3DE775063 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable On 2011-09-19 14:19, Avi Kivity wrote: > On 09/18/2011 10:07 PM, Jan Kiszka wrote: >> On 2011-09-18 18:49, Avi Kivity wrote: >> > On 09/18/2011 07:28 PM, Jan Kiszka wrote: >> >> >> >> >> >> This is PIO, limited by the x86 address space to 16 bit. Will= >> add a >> >> >> comment. >> >> > >> >> > x86 PIO is not limited to 16 bits, just ISA, which memory.c kn= ows >> >> > nothing about. >> >> >> >> Confused address and data, the former is limited 16, the latter >> can be >> >> 32 as well. But I guess only ISA models made use of the core's >> split up >> >> service, and that's why QEMU limited itself accordingly. >> > >> > Let's not bury such details in the core. >> >> It's already in the core (ioport), and would refrain from changing it = in >> this fix. >=20 > That's the bad old core we're trying to get away from. We overcome it at the point the last portio user was converted and that legacy is removed. >=20 >> > >> > I don't think this holds for pci; there the bus always generates >> 32-bit >> > writes with separate byte enables for each lane. The device need n= ot >> > even be aware of a sub-word access, for reads. >> >> The problem is that once we "enhance" the core with such a support to >> potentially help one use case, we need to validate all users again if >> they depend on the old behavior. That's tricky as breakage may only sh= ow >> up with odd guests that issue invalid but so far harmless requests. >=20 > It's opt-in. If a device sets > MemoryRegionOps::impl.{min,max}_access_size =3D 1, it will only be fed > byte accesses (the core will take care of breaking apart larger > writes). If it sets MemoryRegionOps::impl.{min,max}_access_size =3D 4,= it > will only get long accesses (and the core will/should shift/mask or > RMW). Refusing illegal access sizes is done using > MemoryRegionOps::valid. Most of this is unimplemented unfortunately. That makes sense (for non-old_portio users). Jan --------------enig8BAD7EB06458F0B3DE775063 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/ iEYEARECAAYFAk53NkQACgkQitSsb3rl5xStxgCcCD8O7QJspHvhSUv40V5VmGkB UH4AoO4HZtCSSfSX01UJqeG5mE9HOVET =yQ/j -----END PGP SIGNATURE----- --------------enig8BAD7EB06458F0B3DE775063--