diff options
Diffstat (limited to 'results/classifier/zero-shot/108/other/1868527')
| -rw-r--r-- | results/classifier/zero-shot/108/other/1868527 | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/results/classifier/zero-shot/108/other/1868527 b/results/classifier/zero-shot/108/other/1868527 new file mode 100644 index 000000000..4866b240b --- /dev/null +++ b/results/classifier/zero-shot/108/other/1868527 @@ -0,0 +1,46 @@ +debug: 0.649 +semantic: 0.608 +graphic: 0.596 +performance: 0.547 +device: 0.527 +other: 0.411 +PID: 0.310 +permissions: 0.268 +vnc: 0.262 +socket: 0.207 +network: 0.174 +boot: 0.152 +KVM: 0.086 +files: 0.071 + +alignment may overlap the TLB flags + +Hi, +In QEMU-4.2.0, or git-9b26a610936deaf436af9b7e39e4b7f0a35e4409, alignment may overlap the TLB flags. +For example, the alignment: MO_ALIGN_32, + MO_ALIGN_32 = 5 << MO_ASHIFT, +and the TLB flag: TLB_DISCARD_WRITE +#define TLB_DISCARD_WRITE (1 << (TARGET_PAGE_BITS_MIN - 6)) + +then, in the function "get_alignment_bits", the assert may fail: + +#if defined(CONFIG_SOFTMMU) + /* The requested alignment cannot overlap the TLB flags. */ + tcg_debug_assert((TLB_FLAGS_MASK & ((1 << a) - 1)) == 0); +#endif + +However, the alignment of MO_ALIGN_32 is not used for now, so the assert cannot be triggered in current version. Anyway it seems like a potential conflict. + +That is of course completely dependent on the target page size. So, yes, a target with a very small page size cannot use large alignments. The assert makes sure. + +Is this comment simply by inspection, or did you have an actual bug to report? + +This is an inspection yet. +For ARM SMMU simulation, TARGET_PAGE_BITS_MIN is 10. All low bits of the TLB virtual address are used up by TLB flags and alignment flags. It's a little crowded. +/* + * ARMv7 and later CPUs have 4K pages minimum, but ARMv5 and v6 + * have to support 1K tiny pages. + */ +# define TARGET_PAGE_BITS_VARY +# define TARGET_PAGE_BITS_MIN 10 + |