Message ID | 1454059965-23402-6-git-send-email-a.rigo@virtualopensystems.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Alvise Rigo <a.rigo@virtualopensystems.com> writes: > 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 <jani.kokkonen@huawei.com> > Suggested-by: Claudio Fontana <claudio.fontana@huawei.com> > Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com> > --- > 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.bennee@linaro.org> -- Alex Bennée
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);
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 <jani.kokkonen@huawei.com> Suggested-by: Claudio Fontana <claudio.fontana@huawei.com> Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com> --- include/exec/cpu-all.h | 8 ++++++++ 1 file changed, 8 insertions(+)