diff options
Diffstat (limited to 'results/classifier/118/review/1868527')
| -rw-r--r-- | results/classifier/118/review/1868527 | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/results/classifier/118/review/1868527 b/results/classifier/118/review/1868527 new file mode 100644 index 00000000..519ccbc2 --- /dev/null +++ b/results/classifier/118/review/1868527 @@ -0,0 +1,91 @@ +architecture: 0.850 +debug: 0.649 +semantic: 0.608 +graphic: 0.596 +virtual: 0.550 +performance: 0.547 +device: 0.527 +arm: 0.404 +mistranslation: 0.403 +risc-v: 0.378 +PID: 0.310 +ppc: 0.305 +assembly: 0.296 +hypervisor: 0.288 +permissions: 0.268 +vnc: 0.262 +x86: 0.245 +register: 0.245 +user-level: 0.213 +socket: 0.207 +TCG: 0.196 +i386: 0.194 +peripherals: 0.185 +network: 0.174 +boot: 0.152 +kernel: 0.152 +VMM: 0.138 +KVM: 0.086 +files: 0.071 +-------------------- +arm: 0.952 +debug: 0.416 +TCG: 0.365 +virtual: 0.230 +architecture: 0.091 +user-level: 0.068 +files: 0.044 +kernel: 0.035 +register: 0.021 +semantic: 0.011 +performance: 0.011 +device: 0.010 +hypervisor: 0.009 +VMM: 0.009 +vnc: 0.008 +PID: 0.008 +socket: 0.004 +assembly: 0.003 +risc-v: 0.003 +network: 0.003 +peripherals: 0.002 +boot: 0.001 +permissions: 0.001 +x86: 0.001 +graphic: 0.001 +i386: 0.001 +KVM: 0.000 +mistranslation: 0.000 +ppc: 0.000 + +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 + |