mbox series

[RFC,0/3] Move notdirty handling to cputlb

Message ID 20190918052641.21300-1-richard.henderson@linaro.org
Headers show
Series Move notdirty handling to cputlb | expand

Message

Richard Henderson Sept. 18, 2019, 5:26 a.m. UTC
RFC because this doesn't work, and I don't quite understand why.
The only failing test is {i386,x86_64} pxe-test -- the other
migration tests that use notdirty all pass.

Note that if you try to reproduce this on x86, you'll likely
have to --disable-kvm, as otherwise the pxe-test will skip tcg.

Anyone who knows how this works willing to have a look?


r~


Richard Henderson (3):
  exec: Adjust notdirty tracing
  cputlb: Move NOTDIRTY handling from I/O path to TLB path
  cputlb: Remove ATOMIC_MMU_DECLS

 accel/tcg/atomic_template.h    | 12 -----
 include/exec/cpu-common.h      |  1 -
 include/exec/memory-internal.h | 53 +++----------------
 accel/tcg/cputlb.c             | 65 +++++++++++++----------
 accel/tcg/user-exec.c          |  1 -
 exec.c                         | 97 +++++++---------------------------
 memory.c                       | 20 -------
 trace-events                   |  4 +-
 8 files changed, 63 insertions(+), 190 deletions(-)

-- 
2.17.1

Comments

Paolo Bonzini Sept. 18, 2019, 8:13 a.m. UTC | #1
On 18/09/19 07:26, Richard Henderson wrote:
> RFC because this doesn't work, and I don't quite understand why.

> The only failing test is {i386,x86_64} pxe-test -- the other

> migration tests that use notdirty all pass.

> 

> Note that if you try to reproduce this on x86, you'll likely

> have to --disable-kvm, as otherwise the pxe-test will skip tcg.

> 

> Anyone who knows how this works willing to have a look?


I think patch 2 is doing too much.  Why don't you keep
memory_notdirty_write_prepare and memory_notdirty_write_complete at
first (so that the atomic path is completely unchanged wrt MMU lookup),
and then simplify that separately?  Maybe that shows what's going on.

Paolo
David Hildenbrand Sept. 18, 2019, 8:30 a.m. UTC | #2
On 18.09.19 07:26, Richard Henderson wrote:
> RFC because this doesn't work, and I don't quite understand why.

> The only failing test is {i386,x86_64} pxe-test -- the other

> migration tests that use notdirty all pass.

> 

> Note that if you try to reproduce this on x86, you'll likely

> have to --disable-kvm, as otherwise the pxe-test will skip tcg.

> 

> Anyone who knows how this works willing to have a look?

> 

> 

> r~

> 

> 

> Richard Henderson (3):

>   exec: Adjust notdirty tracing

>   cputlb: Move NOTDIRTY handling from I/O path to TLB path

>   cputlb: Remove ATOMIC_MMU_DECLS

> 

>  accel/tcg/atomic_template.h    | 12 -----

>  include/exec/cpu-common.h      |  1 -

>  include/exec/memory-internal.h | 53 +++----------------

>  accel/tcg/cputlb.c             | 65 +++++++++++++----------

>  accel/tcg/user-exec.c          |  1 -

>  exec.c                         | 97 +++++++---------------------------

>  memory.c                       | 20 -------

>  trace-events                   |  4 +-

>  8 files changed, 63 insertions(+), 190 deletions(-)

> 


Cool, this might speed up some accesses - and will definetly cleanup
quite some code.

Can you CC me on further iterations, so I can test on s390x? Thanks!

-- 

Thanks,

David / dhildenb