All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] Summary MTTCG related patch sets
@ 2015-07-20 16:17 Alex Bennée
  2015-07-20 16:36 ` Mark Burton
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Alex Bennée @ 2015-07-20 16:17 UTC (permalink / raw)
  To: mttcg, Alvise Rigo, pbonzini, Frederic Konrad, Jan Kiszka
  Cc: Mark Burton, claudio.fontana, qemu-devel

Hi,

Following this afternoons call I thought I'd summarise the state of the
various patch series and their relative dependencies. We re-stated the
aim should be to get what is up-streamable through the review process
and heading for merge so the delta for a full working MTTCG can be as
low as possible. There was some concern about the practicality of
submitting patches where the full benefit will not be seen until MTTCG
is finally merged.

On the patch submission note could I encourage posting public git trees
along with the patches for ease of review?

BQL lock breaking patches, Paolo/Jan
  - required for working virt-io in MTTCG
  - supersedes some of Fred's patches
  - merged upstream as of -rc0

TCG async_safe_work, Fred
  - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
  - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
  - split from earlier MTTCG patch series
  - needed for cross-cpu sync mechanism for main series and slow-path
  - candidate for upstreaming, but only MTTCG uses for now?

Slow-path for atomic instruction translation, Alvise
  - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
  - Needs re-basing to use TCG async_safe_work
  - Earlier part of series (pre MTTCG) could be upstreamed as is
  - Concern about performance impact in non-MTTCG scenarios
  - Single CPU thread impact may be minimal with latest version, needs
  benchmarking
  - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
  acceptable to maintainers while support added by more knowledgable
  backend people for non-x86/arm backends?
  
Multi-threaded TCG V6, Fred
  - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
  - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
  - Needs re-basing on top of latest -rc (BQL breaking)
  - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
  - Currently target-arm only, other builds broken

As far as balancing the desire to get things upstreamed versus having a
stable base for testing I suggest we try an approach like this:

  - select the current upstream -rc as the common base point
  - create a branch from -rc with:
    - stuff submitted for upstream (reviewed, not nacked)
    - doesn't break any tree
    - has minimal performance impact 

Then both Fred and Alvise could base their trees of this point and we
aim to rebase onto a new branch each time the patches get merged into a
new upstream RC. The question then become how to deal with any
cross-dependencies between the slow-path and the main MTTCG branches?

I suspect the initial common branch point would just be
2.4.0-rc1+safe_async.

Does that sound workable?

-- 
Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-20 16:17 [Qemu-devel] Summary MTTCG related patch sets Alex Bennée
@ 2015-07-20 16:36 ` Mark Burton
  2015-07-20 17:41 ` alvise rigo
  2015-07-20 17:48 ` Frederic Konrad
  2 siblings, 0 replies; 8+ messages in thread
From: Mark Burton @ 2015-07-20 16:36 UTC (permalink / raw)
  To: Alex Bennée
  Cc: mttcg, Jan Kiszka, claudio.fontana, Alvise Rigo, qemu-devel,
	Paolo Bonzini, KONRAD Frédéric

Huge thanks Alex, really good summary
Cheers
Mark.

> On 20 Jul 2015, at 18:17, Alex Bennée <alex.bennee@linaro.org> wrote:
> 
> Hi,
> 
> Following this afternoons call I thought I'd summarise the state of the
> various patch series and their relative dependencies. We re-stated the
> aim should be to get what is up-streamable through the review process
> and heading for merge so the delta for a full working MTTCG can be as
> low as possible. There was some concern about the practicality of
> submitting patches where the full benefit will not be seen until MTTCG
> is finally merged.
> 
> On the patch submission note could I encourage posting public git trees
> along with the patches for ease of review?
> 
> BQL lock breaking patches, Paolo/Jan
>  - required for working virt-io in MTTCG
>  - supersedes some of Fred's patches
>  - merged upstream as of -rc0
> 
> TCG async_safe_work, Fred
>  - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>  - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>  - split from earlier MTTCG patch series
>  - needed for cross-cpu sync mechanism for main series and slow-path
>  - candidate for upstreaming, but only MTTCG uses for now?
> 
> Slow-path for atomic instruction translation, Alvise
>  - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>  - Needs re-basing to use TCG async_safe_work
>  - Earlier part of series (pre MTTCG) could be upstreamed as is
>  - Concern about performance impact in non-MTTCG scenarios
>  - Single CPU thread impact may be minimal with latest version, needs
>  benchmarking
>  - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>  acceptable to maintainers while support added by more knowledgable
>  backend people for non-x86/arm backends?
> 
> Multi-threaded TCG V6, Fred
>  - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>  - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>  - Needs re-basing on top of latest -rc (BQL breaking)
>  - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>  - Currently target-arm only, other builds broken
> 
> As far as balancing the desire to get things upstreamed versus having a
> stable base for testing I suggest we try an approach like this:
> 
>  - select the current upstream -rc as the common base point
>  - create a branch from -rc with:
>    - stuff submitted for upstream (reviewed, not nacked)
>    - doesn't break any tree
>    - has minimal performance impact 
> 
> Then both Fred and Alvise could base their trees of this point and we
> aim to rebase onto a new branch each time the patches get merged into a
> new upstream RC. The question then become how to deal with any
> cross-dependencies between the slow-path and the main MTTCG branches?
> 
> I suspect the initial common branch point would just be
> 2.4.0-rc1+safe_async.
> 
> Does that sound workable?
> 
> -- 
> Alex Bennée


	 +44 (0)20 7100 3485 x 210
 +33 (0)5 33 52 01 77x 210

	+33 (0)603762104
	mark.burton

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-20 16:17 [Qemu-devel] Summary MTTCG related patch sets Alex Bennée
  2015-07-20 16:36 ` Mark Burton
@ 2015-07-20 17:41 ` alvise rigo
  2015-07-20 18:01   ` Frederic Konrad
  2015-07-20 17:48 ` Frederic Konrad
  2 siblings, 1 reply; 8+ messages in thread
From: alvise rigo @ 2015-07-20 17:41 UTC (permalink / raw)
  To: Alex Bennée
  Cc: mttcg, Claudio Fontana, Jan Kiszka, Mark Burton, QEMU Developers,
	Paolo Bonzini, Frederic Konrad

Hi Alex,

Thank you for this summary.
Some comments below.

On Mon, Jul 20, 2015 at 6:17 PM, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> Hi,
>
> Following this afternoons call I thought I'd summarise the state of the
> various patch series and their relative dependencies. We re-stated the
> aim should be to get what is up-streamable through the review process
> and heading for merge so the delta for a full working MTTCG can be as
> low as possible. There was some concern about the practicality of
> submitting patches where the full benefit will not be seen until MTTCG
> is finally merged.
>
> On the patch submission note could I encourage posting public git trees
> along with the patches for ease of review?
>
> BQL lock breaking patches, Paolo/Jan
>   - required for working virt-io in MTTCG
>   - supersedes some of Fred's patches
>   - merged upstream as of -rc0
>
> TCG async_safe_work, Fred
>   - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>   - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>   - split from earlier MTTCG patch series
>   - needed for cross-cpu sync mechanism for main series and slow-path
>   - candidate for upstreaming, but only MTTCG uses for now?
>
> Slow-path for atomic instruction translation, Alvise
>   - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>   - Needs re-basing to use TCG async_safe_work
>   - Earlier part of series (pre MTTCG) could be upstreamed as is

I will create a branch for upstreaming (pre MTTCG) and another one
based on MTTCG.

>   - Concern about performance impact in non-MTTCG scenarios
>   - Single CPU thread impact may be minimal with latest version, needs
>   benchmarking
>   - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>   acceptable to maintainers while support added by more knowledgable
>   backend people for non-x86/arm backends?
>
> Multi-threaded TCG V6, Fred
>   - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>   - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>   - Needs re-basing on top of latest -rc (BQL breaking)
>   - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>   - Currently target-arm only, other builds broken
>
> As far as balancing the desire to get things upstreamed versus having a
> stable base for testing I suggest we try an approach like this:
>
>   - select the current upstream -rc as the common base point
>   - create a branch from -rc with:
>     - stuff submitted for upstream (reviewed, not nacked)
>     - doesn't break any tree
>     - has minimal performance impact
>
> Then both Fred and Alvise could base their trees of this point and we
> aim to rebase onto a new branch each time the patches get merged into a
> new upstream RC. The question then become how to deal with any
> cross-dependencies between the slow-path and the main MTTCG branches?

>From my side I will take care of rebasing my patch series on the
latest MTTCG branch as often as possible. Up to now, there are not so
many cross-dependencies, so I don't see it as a big issue. Is this a
workable solution?

Thank you,
alvise

>
>
> I suspect the initial common branch point would just be
> 2.4.0-rc1+safe_async.
>
> Does that sound workable?
>
> --
> Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-20 16:17 [Qemu-devel] Summary MTTCG related patch sets Alex Bennée
  2015-07-20 16:36 ` Mark Burton
  2015-07-20 17:41 ` alvise rigo
@ 2015-07-20 17:48 ` Frederic Konrad
  2 siblings, 0 replies; 8+ messages in thread
From: Frederic Konrad @ 2015-07-20 17:48 UTC (permalink / raw)
  To: Alex Bennée, mttcg, Alvise Rigo, pbonzini, Jan Kiszka
  Cc: Mark Burton, claudio.fontana, qemu-devel

On 20/07/2015 18:17, Alex Bennée wrote:
> Hi,
>
> Following this afternoons call I thought I'd summarise the state of the
> various patch series and their relative dependencies. We re-stated the
> aim should be to get what is up-streamable through the review process
> and heading for merge so the delta for a full working MTTCG can be as
> low as possible. There was some concern about the practicality of
> submitting patches where the full benefit will not be seen until MTTCG
> is finally merged.
>
> On the patch submission note could I encourage posting public git trees
> along with the patches for ease of review?
>
> BQL lock breaking patches, Paolo/Jan
>    - required for working virt-io in MTTCG
>    - supersedes some of Fred's patches
>    - merged upstream as of -rc0
>
> TCG async_safe_work, Fred
>    - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>    - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>    - split from earlier MTTCG patch series
>    - needed for cross-cpu sync mechanism for main series and slow-path
>    - candidate for upstreaming, but only MTTCG uses for now?
>
> Slow-path for atomic instruction translation, Alvise
>    - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>    - Needs re-basing to use TCG async_safe_work
>    - Earlier part of series (pre MTTCG) could be upstreamed as is
>    - Concern about performance impact in non-MTTCG scenarios
>    - Single CPU thread impact may be minimal with latest version, needs
>    benchmarking
>    - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>    acceptable to maintainers while support added by more knowledgable
>    backend people for non-x86/arm backends?
>    
> Multi-threaded TCG V6, Fred
>    - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>    - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>    - Needs re-basing on top of latest -rc (BQL breaking)
>    - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>    - Currently target-arm only, other builds broken
>
> As far as balancing the desire to get things upstreamed versus having a
> stable base for testing I suggest we try an approach like this:
>
>    - select the current upstream -rc as the common base point
>    - create a branch from -rc with:
>      - stuff submitted for upstream (reviewed, not nacked)
>      - doesn't break any tree
>      - has minimal performance impact
>
> Then both Fred and Alvise could base their trees of this point and we
> aim to rebase onto a new branch each time the patches get merged into a
> new upstream RC. The question then become how to deal with any
> cross-dependencies between the slow-path and the main MTTCG branches?
>
> I suspect the initial common branch point would just be
> 2.4.0-rc1+safe_async.
>
> Does that sound workable?
>
Yes it seems a good idea.
Which commit do you want to rebase on? Can you provide any hashtag?

Thanks,
Fred

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-20 17:41 ` alvise rigo
@ 2015-07-20 18:01   ` Frederic Konrad
  2015-07-20 18:29     ` alvise rigo
  0 siblings, 1 reply; 8+ messages in thread
From: Frederic Konrad @ 2015-07-20 18:01 UTC (permalink / raw)
  To: alvise rigo, Alex Bennée
  Cc: mttcg, Mark Burton, Claudio Fontana, QEMU Developers, Jan Kiszka,
	Paolo Bonzini

On 20/07/2015 19:41, alvise rigo wrote:
> Hi Alex,
>
> Thank you for this summary.
> Some comments below.
>
> On Mon, Jul 20, 2015 at 6:17 PM, Alex Bennée <alex.bennee@linaro.org> wrote:
>> Hi,
>>
>> Following this afternoons call I thought I'd summarise the state of the
>> various patch series and their relative dependencies. We re-stated the
>> aim should be to get what is up-streamable through the review process
>> and heading for merge so the delta for a full working MTTCG can be as
>> low as possible. There was some concern about the practicality of
>> submitting patches where the full benefit will not be seen until MTTCG
>> is finally merged.
>>
>> On the patch submission note could I encourage posting public git trees
>> along with the patches for ease of review?
>>
>> BQL lock breaking patches, Paolo/Jan
>>    - required for working virt-io in MTTCG
>>    - supersedes some of Fred's patches
>>    - merged upstream as of -rc0
>>
>> TCG async_safe_work, Fred
>>    - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>>    - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>>    - split from earlier MTTCG patch series
>>    - needed for cross-cpu sync mechanism for main series and slow-path
>>    - candidate for upstreaming, but only MTTCG uses for now?
>>
>> Slow-path for atomic instruction translation, Alvise
>>    - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>>    - Needs re-basing to use TCG async_safe_work
>>    - Earlier part of series (pre MTTCG) could be upstreamed as is
> I will create a branch for upstreaming (pre MTTCG) and another one
> based on MTTCG.
>
>>    - Concern about performance impact in non-MTTCG scenarios
>>    - Single CPU thread impact may be minimal with latest version, needs
>>    benchmarking
>>    - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>>    acceptable to maintainers while support added by more knowledgable
>>    backend people for non-x86/arm backends?
>>
>> Multi-threaded TCG V6, Fred
>>    - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>>    - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>>    - Needs re-basing on top of latest -rc (BQL breaking)
>>    - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>>    - Currently target-arm only, other builds broken
>>
>> As far as balancing the desire to get things upstreamed versus having a
>> stable base for testing I suggest we try an approach like this:
>>
>>    - select the current upstream -rc as the common base point
>>    - create a branch from -rc with:
>>      - stuff submitted for upstream (reviewed, not nacked)
>>      - doesn't break any tree
>>      - has minimal performance impact
>>
>> Then both Fred and Alvise could base their trees of this point and we
>> aim to rebase onto a new branch each time the patches get merged into a
>> new upstream RC. The question then become how to deal with any
>> cross-dependencies between the slow-path and the main MTTCG branches?
>  From my side I will take care of rebasing my patch series on the
> latest MTTCG branch as often as possible. Up to now, there are not so
> many cross-dependencies, so I don't see it as a big issue. Is this a
> workable solution?
>
> Thank you,
> alvise
The RFC V3 you sent is based on MTTCG if I remember right.
That's why you introduced this rendez-vous right?

And the point was to use async_safe_work for this as I need it actually for
tb_flush and tb_invalidate (if we don't find any other solution for 
tb_invalidate).

So this is the cross-dependency which we are talking of.
But maybe and probably this is not needed with upstream as there is only 
one TCG
thread.

Thanks,
Fred
>>
>> I suspect the initial common branch point would just be
>> 2.4.0-rc1+safe_async.
>>
>> Does that sound workable?
>>
>> --
>> Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-20 18:01   ` Frederic Konrad
@ 2015-07-20 18:29     ` alvise rigo
  2015-07-22 13:56       ` Alex Bennée
  0 siblings, 1 reply; 8+ messages in thread
From: alvise rigo @ 2015-07-20 18:29 UTC (permalink / raw)
  To: Frederic Konrad
  Cc: mttcg, Claudio Fontana, Mark Burton, QEMU Developers, Jan Kiszka,
	Paolo Bonzini, Alex Bennée

On Mon, Jul 20, 2015 at 8:01 PM, Frederic Konrad
<fred.konrad@greensocs.com> wrote:
> On 20/07/2015 19:41, alvise rigo wrote:
>>
>> Hi Alex,
>>
>> Thank you for this summary.
>> Some comments below.
>>
>> On Mon, Jul 20, 2015 at 6:17 PM, Alex Bennée <alex.bennee@linaro.org>
>> wrote:
>>>
>>> Hi,
>>>
>>> Following this afternoons call I thought I'd summarise the state of the
>>> various patch series and their relative dependencies. We re-stated the
>>> aim should be to get what is up-streamable through the review process
>>> and heading for merge so the delta for a full working MTTCG can be as
>>> low as possible. There was some concern about the practicality of
>>> submitting patches where the full benefit will not be seen until MTTCG
>>> is finally merged.
>>>
>>> On the patch submission note could I encourage posting public git trees
>>> along with the patches for ease of review?
>>>
>>> BQL lock breaking patches, Paolo/Jan
>>>    - required for working virt-io in MTTCG
>>>    - supersedes some of Fred's patches
>>>    - merged upstream as of -rc0
>>>
>>> TCG async_safe_work, Fred
>>>    - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>>>    - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>>>    - split from earlier MTTCG patch series
>>>    - needed for cross-cpu sync mechanism for main series and slow-path
>>>    - candidate for upstreaming, but only MTTCG uses for now?
>>>
>>> Slow-path for atomic instruction translation, Alvise
>>>    - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>>>    - Needs re-basing to use TCG async_safe_work
>>>    - Earlier part of series (pre MTTCG) could be upstreamed as is
>>
>> I will create a branch for upstreaming (pre MTTCG) and another one
>> based on MTTCG.
>>
>>>    - Concern about performance impact in non-MTTCG scenarios
>>>    - Single CPU thread impact may be minimal with latest version, needs
>>>    benchmarking
>>>    - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>>>    acceptable to maintainers while support added by more knowledgable
>>>    backend people for non-x86/arm backends?
>>>
>>> Multi-threaded TCG V6, Fred
>>>    - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>>>    - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>>>    - Needs re-basing on top of latest -rc (BQL breaking)
>>>    - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>>>    - Currently target-arm only, other builds broken
>>>
>>> As far as balancing the desire to get things upstreamed versus having a
>>> stable base for testing I suggest we try an approach like this:
>>>
>>>    - select the current upstream -rc as the common base point
>>>    - create a branch from -rc with:
>>>      - stuff submitted for upstream (reviewed, not nacked)
>>>      - doesn't break any tree
>>>      - has minimal performance impact
>>>
>>> Then both Fred and Alvise could base their trees of this point and we
>>> aim to rebase onto a new branch each time the patches get merged into a
>>> new upstream RC. The question then become how to deal with any
>>> cross-dependencies between the slow-path and the main MTTCG branches?
>>
>>  From my side I will take care of rebasing my patch series on the
>> latest MTTCG branch as often as possible. Up to now, there are not so
>> many cross-dependencies, so I don't see it as a big issue. Is this a
>> workable solution?
>>
>> Thank you,
>> alvise
>
> The RFC V3 you sent is based on MTTCG if I remember right.
> That's why you introduced this rendez-vous right?

Right.

>
> And the point was to use async_safe_work for this as I need it actually for
> tb_flush and tb_invalidate (if we don't find any other solution for
> tb_invalidate).
>
> So this is the cross-dependency which we are talking of.
> But maybe and probably this is not needed with upstream as there is only one
> TCG
> thread.

Exactly. I've also managed to use the plain async_run_on_cpu for the
slow-path, so I don't really think there will be problems of
cross-dependencies.

Regards,
alvise

>
> Thanks,
> Fred
>
>>>
>>> I suspect the initial common branch point would just be
>>> 2.4.0-rc1+safe_async.
>>>
>>> Does that sound workable?
>>>
>>> --
>>> Alex Bennée
>
>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-20 18:29     ` alvise rigo
@ 2015-07-22 13:56       ` Alex Bennée
  2015-07-22 14:10         ` alvise rigo
  0 siblings, 1 reply; 8+ messages in thread
From: Alex Bennée @ 2015-07-22 13:56 UTC (permalink / raw)
  To: alvise rigo
  Cc: mttcg, Claudio Fontana, Jan Kiszka, Mark Burton, QEMU Developers,
	Paolo Bonzini, Frederic Konrad


alvise rigo <a.rigo@virtualopensystems.com> writes:

> On Mon, Jul 20, 2015 at 8:01 PM, Frederic Konrad
> <fred.konrad@greensocs.com> wrote:
>> On 20/07/2015 19:41, alvise rigo wrote:
>>>
>>> Hi Alex,
>>>
>>> Thank you for this summary.
>>> Some comments below.
>>>
>>> On Mon, Jul 20, 2015 at 6:17 PM, Alex Bennée <alex.bennee@linaro.org>
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> Following this afternoons call I thought I'd summarise the state of the
>>>> various patch series and their relative dependencies. We re-stated the
>>>> aim should be to get what is up-streamable through the review process
>>>> and heading for merge so the delta for a full working MTTCG can be as
>>>> low as possible. There was some concern about the practicality of
>>>> submitting patches where the full benefit will not be seen until MTTCG
>>>> is finally merged.
>>>>
>>>> On the patch submission note could I encourage posting public git trees
>>>> along with the patches for ease of review?
>>>>
>>>> BQL lock breaking patches, Paolo/Jan
>>>>    - required for working virt-io in MTTCG
>>>>    - supersedes some of Fred's patches
>>>>    - merged upstream as of -rc0
>>>>
>>>> TCG async_safe_work, Fred
>>>>    - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>>>>    - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>>>>    - split from earlier MTTCG patch series
>>>>    - needed for cross-cpu sync mechanism for main series and slow-path
>>>>    - candidate for upstreaming, but only MTTCG uses for now?
>>>>
>>>> Slow-path for atomic instruction translation, Alvise
>>>>    - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>>>>    - Needs re-basing to use TCG async_safe_work
>>>>    - Earlier part of series (pre MTTCG) could be upstreamed as is
>>>
>>> I will create a branch for upstreaming (pre MTTCG) and another one
>>> based on MTTCG.
>>>
>>>>    - Concern about performance impact in non-MTTCG scenarios
>>>>    - Single CPU thread impact may be minimal with latest version, needs
>>>>    benchmarking
>>>>    - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>>>>    acceptable to maintainers while support added by more knowledgable
>>>>    backend people for non-x86/arm backends?
>>>>
>>>> Multi-threaded TCG V6, Fred
>>>>    - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>>>>    - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>>>>    - Needs re-basing on top of latest -rc (BQL breaking)
>>>>    - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>>>>    - Currently target-arm only, other builds broken
>>>>
>>>> As far as balancing the desire to get things upstreamed versus having a
>>>> stable base for testing I suggest we try an approach like this:
>>>>
>>>>    - select the current upstream -rc as the common base point
>>>>    - create a branch from -rc with:
>>>>      - stuff submitted for upstream (reviewed, not nacked)
>>>>      - doesn't break any tree
>>>>      - has minimal performance impact
>>>>
>>>> Then both Fred and Alvise could base their trees of this point and we
>>>> aim to rebase onto a new branch each time the patches get merged into a
>>>> new upstream RC. The question then become how to deal with any
>>>> cross-dependencies between the slow-path and the main MTTCG branches?
>>>
>>>  From my side I will take care of rebasing my patch series on the
>>> latest MTTCG branch as often as possible. Up to now, there are not so
>>> many cross-dependencies, so I don't see it as a big issue. Is this a
>>> workable solution?
>>>
>>> Thank you,
>>> alvise
>>
>> The RFC V3 you sent is based on MTTCG if I remember right.
>> That's why you introduced this rendez-vous right?
>
> Right.
>
>>
>> And the point was to use async_safe_work for this as I need it actually for
>> tb_flush and tb_invalidate (if we don't find any other solution for
>> tb_invalidate).
>>
>> So this is the cross-dependency which we are talking of.
>> But maybe and probably this is not needed with upstream as there is only one
>> TCG
>> thread.
>
> Exactly. I've also managed to use the plain async_run_on_cpu for the
> slow-path, so I don't really think there will be problems of
> cross-dependencies.

Does that mean (performance permitting) any of the patch set can go
upstream before the main MTTCG patch set? Or is it intimately tied to
Fred's set for now? 

>
> Regards,
> alvise
>
>>
>> Thanks,
>> Fred
>>
>>>>
>>>> I suspect the initial common branch point would just be
>>>> 2.4.0-rc1+safe_async.
>>>>
>>>> Does that sound workable?
>>>>
>>>> --
>>>> Alex Bennée
>>
>>

-- 
Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] Summary MTTCG related patch sets
  2015-07-22 13:56       ` Alex Bennée
@ 2015-07-22 14:10         ` alvise rigo
  0 siblings, 0 replies; 8+ messages in thread
From: alvise rigo @ 2015-07-22 14:10 UTC (permalink / raw)
  To: Alex Bennée
  Cc: mttcg, Claudio Fontana, Jan Kiszka, Mark Burton, QEMU Developers,
	Paolo Bonzini, Frederic Konrad

On Wed, Jul 22, 2015 at 3:56 PM, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> alvise rigo <a.rigo@virtualopensystems.com> writes:
>
>> On Mon, Jul 20, 2015 at 8:01 PM, Frederic Konrad
>> <fred.konrad@greensocs.com> wrote:
>>> On 20/07/2015 19:41, alvise rigo wrote:
>>>>
>>>> Hi Alex,
>>>>
>>>> Thank you for this summary.
>>>> Some comments below.
>>>>
>>>> On Mon, Jul 20, 2015 at 6:17 PM, Alex Bennée <alex.bennee@linaro.org>
>>>> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Following this afternoons call I thought I'd summarise the state of the
>>>>> various patch series and their relative dependencies. We re-stated the
>>>>> aim should be to get what is up-streamable through the review process
>>>>> and heading for merge so the delta for a full working MTTCG can be as
>>>>> low as possible. There was some concern about the practicality of
>>>>> submitting patches where the full benefit will not be seen until MTTCG
>>>>> is finally merged.
>>>>>
>>>>> On the patch submission note could I encourage posting public git trees
>>>>> along with the patches for ease of review?
>>>>>
>>>>> BQL lock breaking patches, Paolo/Jan
>>>>>    - required for working virt-io in MTTCG
>>>>>    - supersedes some of Fred's patches
>>>>>    - merged upstream as of -rc0
>>>>>
>>>>> TCG async_safe_work, Fred
>>>>>    - http://git.greensocs.com/fkonrad/mttcg.git async_work_v3
>>>>>    - [1437144337-21442-1-git-send-email-fred.konrad@greensocs.com]
>>>>>    - split from earlier MTTCG patch series
>>>>>    - needed for cross-cpu sync mechanism for main series and slow-path
>>>>>    - candidate for upstreaming, but only MTTCG uses for now?
>>>>>
>>>>> Slow-path for atomic instruction translation, Alvise
>>>>>    - [1436516626-8322-1-git-send-email-a.rigo@virtualopensystems.com]
>>>>>    - Needs re-basing to use TCG async_safe_work
>>>>>    - Earlier part of series (pre MTTCG) could be upstreamed as is
>>>>
>>>> I will create a branch for upstreaming (pre MTTCG) and another one
>>>> based on MTTCG.
>>>>
>>>>>    - Concern about performance impact in non-MTTCG scenarios
>>>>>    - Single CPU thread impact may be minimal with latest version, needs
>>>>>    benchmarking
>>>>>    - Also incomplete backend support, would BACKEND_HAS_LLSC_OPS be
>>>>>    acceptable to maintainers while support added by more knowledgable
>>>>>    backend people for non-x86/arm backends?
>>>>>
>>>>> Multi-threaded TCG V6, Fred
>>>>>    - git@git.greensocs.com:fkonrad/mttcg.git branch multi_tcg_v6
>>>>>    - [1435330053-18733-1-git-send-email-fred.konrad@greensocs.com]
>>>>>    - Needs re-basing on top of latest -rc (BQL breaking)
>>>>>    - Contains the rest of the MTTCG work (tb locking, tlb stuff etc)
>>>>>    - Currently target-arm only, other builds broken
>>>>>
>>>>> As far as balancing the desire to get things upstreamed versus having a
>>>>> stable base for testing I suggest we try an approach like this:
>>>>>
>>>>>    - select the current upstream -rc as the common base point
>>>>>    - create a branch from -rc with:
>>>>>      - stuff submitted for upstream (reviewed, not nacked)
>>>>>      - doesn't break any tree
>>>>>      - has minimal performance impact
>>>>>
>>>>> Then both Fred and Alvise could base their trees of this point and we
>>>>> aim to rebase onto a new branch each time the patches get merged into a
>>>>> new upstream RC. The question then become how to deal with any
>>>>> cross-dependencies between the slow-path and the main MTTCG branches?
>>>>
>>>>  From my side I will take care of rebasing my patch series on the
>>>> latest MTTCG branch as often as possible. Up to now, there are not so
>>>> many cross-dependencies, so I don't see it as a big issue. Is this a
>>>> workable solution?
>>>>
>>>> Thank you,
>>>> alvise
>>>
>>> The RFC V3 you sent is based on MTTCG if I remember right.
>>> That's why you introduced this rendez-vous right?
>>
>> Right.
>>
>>>
>>> And the point was to use async_safe_work for this as I need it actually for
>>> tb_flush and tb_invalidate (if we don't find any other solution for
>>> tb_invalidate).
>>>
>>> So this is the cross-dependency which we are talking of.
>>> But maybe and probably this is not needed with upstream as there is only one
>>> TCG
>>> thread.
>>
>> Exactly. I've also managed to use the plain async_run_on_cpu for the
>> slow-path, so I don't really think there will be problems of
>> cross-dependencies.
>
> Does that mean (performance permitting) any of the patch set can go
> upstream before the main MTTCG patch set?

Yes. A version of the patch series based on upstream QEMU (no
multithreading at all) does not require any of the patches introduced
by MTTCG.
On the contrary, a version made to work with MTTCG will have few
cross-dependencies.

Regards,
alvise

> Or is it intimately tied to
> Fred's set for now?
>
>>
>> Regards,
>> alvise
>>
>>>
>>> Thanks,
>>> Fred
>>>
>>>>>
>>>>> I suspect the initial common branch point would just be
>>>>> 2.4.0-rc1+safe_async.
>>>>>
>>>>> Does that sound workable?
>>>>>
>>>>> --
>>>>> Alex Bennée
>>>
>>>
>
> --
> Alex Bennée

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-07-22 14:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-20 16:17 [Qemu-devel] Summary MTTCG related patch sets Alex Bennée
2015-07-20 16:36 ` Mark Burton
2015-07-20 17:41 ` alvise rigo
2015-07-20 18:01   ` Frederic Konrad
2015-07-20 18:29     ` alvise rigo
2015-07-22 13:56       ` Alex Bennée
2015-07-22 14:10         ` alvise rigo
2015-07-20 17:48 ` Frederic Konrad

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.