mbox

[PULL] tcg/interpreter: Add TCG + interpreter for bytecode

Message ID 4EAF13A8.5020303@weilnetz.de
State Accepted
Headers show

Pull-request

git://qemu.weilnetz.de/qemu.git tci

Message

Stefan Weil Oct. 31, 2011, 9:31 p.m. UTC
Hi,

this is a 3rd version of the patch series which adds support for
QEMU on any host by using a TCG interpreter (TCI).

Version 2 was sent to the list and is available here:
http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02504.html

The new version removed the TRACE macros which I used during development.
They are no longer needed. This fixes malc's feedback.

Patches 1, 2, 5 and 6 are only rebased.

Patch 1 is useful even without TCI and improves the handling of a
special case needed for PPC hosts.

Please tell me if I should send the complete patches to qemu-devel.

I'd appreciate if the series could be pulled before QEMU 1.0 to form
a base for further development of TCI.

Regards,
Stefan Weil


The following changes since commit ff74c5a9a91c6dbf1017195462aa4176f7381240:

   Merge remote-tracking branch 'riku/linux-user-for-upstream' into 
staging (2011-10-31 15:05:40 -0500)

are available in the git repository at:

   git://qemu.weilnetz.de/qemu.git tci

Stefan Weil (6):
       tcg: TCG targets may define tcg_qemu_tb_exec
       tcg: Make ARRAY_SIZE(tcg_op_defs) globally available
       tcg: Add bytecode generator for tcg interpreter
       tcg: Add interpreter for bytecode
       tcg: Add tci disassembler
       tcg: Add tcg interpreter to configure / make

  Makefile.target      |    4 +
  configure            |   34 ++-
  dis-asm.h            |    1 +
  disas.c              |    4 +-
  dyngen-exec.h        |   12 +-
  exec-all.h           |   22 +-
  tcg/ppc/tcg-target.h |    4 +
  tcg/tcg.c            |    1 +
  tcg/tcg.h            |   12 +-
  tcg/tci/README       |  130 ++++++
  tcg/tci/tcg-target.c |  906 +++++++++++++++++++++++++++++++++++++
  tcg/tci/tcg-target.h |  160 +++++++
  tci-dis.c            |   59 +++
  tci.c                | 1208 
++++++++++++++++++++++++++++++++++++++++++++++++++
  14 files changed, 2545 insertions(+), 12 deletions(-)
  create mode 100644 tcg/tci/README
  create mode 100644 tcg/tci/tcg-target.c
  create mode 100644 tcg/tci/tcg-target.h
  create mode 100644 tci-dis.c
  create mode 100644 tci.c

Comments

Anthony Liguori Oct. 31, 2011, 9:38 p.m. UTC | #1
On 10/31/2011 04:31 PM, Stefan Weil wrote:
> Hi,
>
> this is a 3rd version of the patch series which adds support for
> QEMU on any host by using a TCG interpreter (TCI).
>
> Version 2 was sent to the list and is available here:
> http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02504.html
>
> The new version removed the TRACE macros which I used during development.
> They are no longer needed. This fixes malc's feedback.
>
> Patches 1, 2, 5 and 6 are only rebased.
>
> Patch 1 is useful even without TCI and improves the handling of a
> special case needed for PPC hosts.
>
> Please tell me if I should send the complete patches to qemu-devel.
>
> I'd appreciate if the series could be pulled before QEMU 1.0 to form
> a base for further development of TCI.

I'll defer to Blue and/or Aurelien here as I don't know enough about TCG to 
really review this series.

But I'd recommend waiting to pull this until after 1.1 opens up.  This is the 
sort of thing that 1) people are likely to actually use and 2) could use a full 
development cycle of testing to get hardened before showing up in a release.

I'd feel better about pulling this into 1.0 if it was guarded by a configure 
option and disabled by default just to enforce that it's an experimental feature.

Regards,

Anthony Liguori

>
> Regards,
> Stefan Weil
>
>
> The following changes since commit ff74c5a9a91c6dbf1017195462aa4176f7381240:
>
> Merge remote-tracking branch 'riku/linux-user-for-upstream' into staging
> (2011-10-31 15:05:40 -0500)
>
> are available in the git repository at:
>
> git://qemu.weilnetz.de/qemu.git tci
>
> Stefan Weil (6):
> tcg: TCG targets may define tcg_qemu_tb_exec
> tcg: Make ARRAY_SIZE(tcg_op_defs) globally available
> tcg: Add bytecode generator for tcg interpreter
> tcg: Add interpreter for bytecode
> tcg: Add tci disassembler
> tcg: Add tcg interpreter to configure / make
>
> Makefile.target | 4 +
> configure | 34 ++-
> dis-asm.h | 1 +
> disas.c | 4 +-
> dyngen-exec.h | 12 +-
> exec-all.h | 22 +-
> tcg/ppc/tcg-target.h | 4 +
> tcg/tcg.c | 1 +
> tcg/tcg.h | 12 +-
> tcg/tci/README | 130 ++++++
> tcg/tci/tcg-target.c | 906 +++++++++++++++++++++++++++++++++++++
> tcg/tci/tcg-target.h | 160 +++++++
> tci-dis.c | 59 +++
> tci.c | 1208 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 14 files changed, 2545 insertions(+), 12 deletions(-)
> create mode 100644 tcg/tci/README
> create mode 100644 tcg/tci/tcg-target.c
> create mode 100644 tcg/tci/tcg-target.h
> create mode 100644 tci-dis.c
> create mode 100644 tci.c
>
>
>
Stefan Weil Oct. 31, 2011, 10:02 p.m. UTC | #2
Am 31.10.2011 22:38, schrieb Anthony Liguori:
> On 10/31/2011 04:31 PM, Stefan Weil wrote:
>> Hi,
>>
>> this is a 3rd version of the patch series which adds support for
>> QEMU on any host by using a TCG interpreter (TCI).
>>
>> Version 2 was sent to the list and is available here:
>> http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02504.html
>>
>> The new version removed the TRACE macros which I used during 
>> development.
>> They are no longer needed. This fixes malc's feedback.
>>
>> Patches 1, 2, 5 and 6 are only rebased.
>>
>> Patch 1 is useful even without TCI and improves the handling of a
>> special case needed for PPC hosts.
>>
>> Please tell me if I should send the complete patches to qemu-devel.
>>
>> I'd appreciate if the series could be pulled before QEMU 1.0 to form
>> a base for further development of TCI.
>
> I'll defer to Blue and/or Aurelien here as I don't know enough about 
> TCG to really review this series.
>
> But I'd recommend waiting to pull this until after 1.1 opens up.  This 
> is the sort of thing that 1) people are likely to actually use and 2) 
> could use a full development cycle of testing to get hardened before 
> showing up in a release.
>
> I'd feel better about pulling this into 1.0 if it was guarded by a 
> configure option and disabled by default just to enforce that it's an 
> experimental feature.
>
> Regards,
>
> Anthony Liguori 


The current version of TCI is only activated with configure 
--enable-tcg-interpreter
(see http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02509.html),
so this should be safe for 1.0. And yes, it's still an experimental feature.

It's up to the maintainers of (Linux) distributions when they will add 
QEMU with TCI
for new hosts which were unsupported by native TCG. It won't work 
automatically -
they have to add the configure option for it. I have no access to such 
hosts for testing,
but offer any help I can give.

Regards,

Stefan Weil
Anthony Liguori Oct. 31, 2011, 10:06 p.m. UTC | #3
On 10/31/2011 05:02 PM, Stefan Weil wrote:
> Am 31.10.2011 22:38, schrieb Anthony Liguori:
>>
>> I'll defer to Blue and/or Aurelien here as I don't know enough about TCG to
>> really review this series.
>>
>> But I'd recommend waiting to pull this until after 1.1 opens up. This is the
>> sort of thing that 1) people are likely to actually use and 2) could use a
>> full development cycle of testing to get hardened before showing up in a release.
>>
>> I'd feel better about pulling this into 1.0 if it was guarded by a configure
>> option and disabled by default just to enforce that it's an experimental feature.
>>
>> Regards,
>>
>> Anthony Liguori
>
>
> The current version of TCI is only activated with configure
> --enable-tcg-interpreter
> (see http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02509.html),
> so this should be safe for 1.0. And yes, it's still an experimental feature.

Okay, then I really don't have an objection, but would still prefer Blue or 
Aurel to Ack it explicitly.

> It's up to the maintainers of (Linux) distributions when they will add QEMU with
> TCI
> for new hosts which were unsupported by native TCG. It won't work automatically -
> they have to add the configure option for it. I have no access to such hosts for
> testing,
> but offer any help I can give.

Indeed.  It's a good feature to have.  Just thinking about release stability.  I 
don't want to ship a brand new feature as part of the 1.0 release and have 
people have a bad experience due to it.

Regards,

Anthony Liguori

> Regards,
>
> Stefan Weil
>
>
Blue Swirl Nov. 1, 2011, 7:30 p.m. UTC | #4
On Mon, Oct 31, 2011 at 22:06, Anthony Liguori <anthony@codemonkey.ws> wrote:
> On 10/31/2011 05:02 PM, Stefan Weil wrote:
>>
>> Am 31.10.2011 22:38, schrieb Anthony Liguori:
>>>
>>> I'll defer to Blue and/or Aurelien here as I don't know enough about TCG
>>> to
>>> really review this series.
>>>
>>> But I'd recommend waiting to pull this until after 1.1 opens up. This is
>>> the
>>> sort of thing that 1) people are likely to actually use and 2) could use
>>> a
>>> full development cycle of testing to get hardened before showing up in a
>>> release.
>>>
>>> I'd feel better about pulling this into 1.0 if it was guarded by a
>>> configure
>>> option and disabled by default just to enforce that it's an experimental
>>> feature.
>>>
>>> Regards,
>>>
>>> Anthony Liguori
>>
>>
>> The current version of TCI is only activated with configure
>> --enable-tcg-interpreter
>> (see http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02509.html),
>> so this should be safe for 1.0. And yes, it's still an experimental
>> feature.
>
> Okay, then I really don't have an objection, but would still prefer Blue or
> Aurel to Ack it explicitly.

I think it's fine, so: Ack

>> It's up to the maintainers of (Linux) distributions when they will add
>> QEMU with
>> TCI
>> for new hosts which were unsupported by native TCG. It won't work
>> automatically -
>> they have to add the configure option for it. I have no access to such
>> hosts for
>> testing,
>> but offer any help I can give.
>
> Indeed.  It's a good feature to have.  Just thinking about release
> stability.  I don't want to ship a brand new feature as part of the 1.0
> release and have people have a bad experience due to it.
>
> Regards,
>
> Anthony Liguori
>
>> Regards,
>>
>> Stefan Weil
>>
>>
>
>
Blue Swirl Nov. 2, 2011, 8:55 p.m. UTC | #5
On Mon, Oct 31, 2011 at 21:31, Stefan Weil <sw@weilnetz.de> wrote:
> Hi,
>
> this is a 3rd version of the patch series which adds support for
> QEMU on any host by using a TCG interpreter (TCI).
>
> Version 2 was sent to the list and is available here:
> http://lists.gnu.org/archive/html/qemu-devel/2011-10/msg02504.html
>
> The new version removed the TRACE macros which I used during development.
> They are no longer needed. This fixes malc's feedback.
>
> Patches 1, 2, 5 and 6 are only rebased.
>
> Patch 1 is useful even without TCI and improves the handling of a
> special case needed for PPC hosts.
>
> Please tell me if I should send the complete patches to qemu-devel.
>
> I'd appreciate if the series could be pulled before QEMU 1.0 to form
> a base for further development of TCI.

Thanks, pulled.

> Regards,
> Stefan Weil
>
>
> The following changes since commit ff74c5a9a91c6dbf1017195462aa4176f7381240:
>
>  Merge remote-tracking branch 'riku/linux-user-for-upstream' into staging
> (2011-10-31 15:05:40 -0500)
>
> are available in the git repository at:
>
>  git://qemu.weilnetz.de/qemu.git tci
>
> Stefan Weil (6):
>      tcg: TCG targets may define tcg_qemu_tb_exec
>      tcg: Make ARRAY_SIZE(tcg_op_defs) globally available
>      tcg: Add bytecode generator for tcg interpreter
>      tcg: Add interpreter for bytecode
>      tcg: Add tci disassembler
>      tcg: Add tcg interpreter to configure / make
>
>  Makefile.target      |    4 +
>  configure            |   34 ++-
>  dis-asm.h            |    1 +
>  disas.c              |    4 +-
>  dyngen-exec.h        |   12 +-
>  exec-all.h           |   22 +-
>  tcg/ppc/tcg-target.h |    4 +
>  tcg/tcg.c            |    1 +
>  tcg/tcg.h            |   12 +-
>  tcg/tci/README       |  130 ++++++
>  tcg/tci/tcg-target.c |  906 +++++++++++++++++++++++++++++++++++++
>  tcg/tci/tcg-target.h |  160 +++++++
>  tci-dis.c            |   59 +++
>  tci.c                | 1208
> ++++++++++++++++++++++++++++++++++++++++++++++++++
>  14 files changed, 2545 insertions(+), 12 deletions(-)
>  create mode 100644 tcg/tci/README
>  create mode 100644 tcg/tci/tcg-target.c
>  create mode 100644 tcg/tci/tcg-target.h
>  create mode 100644 tci-dis.c
>  create mode 100644 tci.c
>
>
>