Re: [Qemu-devel] [RFC v7 05/16] softmmu: Add new TLB_EXCL flag
Alvise Rigowrites: > Add a new TLB flag to force all the accesses made to a page to follow > the slow-path. > > The TLB entries referring guest pages with the DIRTY_MEMORY_EXCLUSIVE > bit clean will have this flag set. > > Suggested-by: Jani Kokkonen > Suggested-by: Claudio Fontana > Signed-off-by: Alvise Rigo > --- > include/exec/cpu-all.h | 8 > 1 file changed, 8 insertions(+) > > diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h > index 83b1781..f8d8feb 100644 > --- a/include/exec/cpu-all.h > +++ b/include/exec/cpu-all.h > @@ -277,6 +277,14 @@ CPUArchState *cpu_copy(CPUArchState *env); > #define TLB_NOTDIRTY(1 << 4) > /* Set if TLB entry is an IO callback. */ > #define TLB_MMIO(1 << 5) > +/* Set if TLB entry references a page that requires exclusive access. */ > +#define TLB_EXCL(1 << 6) > + > +/* Do not allow a TARGET_PAGE_MASK which covers one or more bits defined > + * above. */ > +#if TLB_EXCL >= TARGET_PAGE_SIZE > +#error TARGET_PAGE_MASK covering the low bits of the TLB virtual address > +#endif > > void dump_exec_info(FILE *f, fprintf_function cpu_fprintf); > void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf); Reviewed-by: Alex Bennée -- Alex Bennée
[Qemu-devel] [RFC v7 05/16] softmmu: Add new TLB_EXCL flag
Add a new TLB flag to force all the accesses made to a page to follow the slow-path. The TLB entries referring guest pages with the DIRTY_MEMORY_EXCLUSIVE bit clean will have this flag set. Suggested-by: Jani KokkonenSuggested-by: Claudio Fontana Signed-off-by: Alvise Rigo --- include/exec/cpu-all.h | 8 1 file changed, 8 insertions(+) diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h index 83b1781..f8d8feb 100644 --- a/include/exec/cpu-all.h +++ b/include/exec/cpu-all.h @@ -277,6 +277,14 @@ CPUArchState *cpu_copy(CPUArchState *env); #define TLB_NOTDIRTY(1 << 4) /* Set if TLB entry is an IO callback. */ #define TLB_MMIO(1 << 5) +/* Set if TLB entry references a page that requires exclusive access. */ +#define TLB_EXCL(1 << 6) + +/* Do not allow a TARGET_PAGE_MASK which covers one or more bits defined + * above. */ +#if TLB_EXCL >= TARGET_PAGE_SIZE +#error TARGET_PAGE_MASK covering the low bits of the TLB virtual address +#endif void dump_exec_info(FILE *f, fprintf_function cpu_fprintf); void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf); -- 2.7.0