diff options
Diffstat (limited to 'results/classifier/118/x86/796480')
| -rw-r--r-- | results/classifier/118/x86/796480 | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/results/classifier/118/x86/796480 b/results/classifier/118/x86/796480 new file mode 100644 index 000000000..ea8a51789 --- /dev/null +++ b/results/classifier/118/x86/796480 @@ -0,0 +1,80 @@ +x86: 0.835 +architecture: 0.777 +performance: 0.722 +graphic: 0.704 +kernel: 0.680 +device: 0.655 +user-level: 0.638 +assembly: 0.454 +permissions: 0.448 +ppc: 0.399 +mistranslation: 0.398 +semantic: 0.373 +PID: 0.346 +vnc: 0.337 +debug: 0.269 +arm: 0.263 +register: 0.223 +hypervisor: 0.214 +socket: 0.200 +VMM: 0.181 +files: 0.170 +virtual: 0.158 +risc-v: 0.147 +peripherals: 0.144 +TCG: 0.132 +boot: 0.116 +i386: 0.113 +network: 0.110 +KVM: 0.093 + +Addresses with 4GB differences are consider as one single address in QEMU + +THIS IS THE ISSUE OF USER MODE EMULATION +Information about guest and host +********************************** +guest: 64 bit x86 user mode binary +host: 32 bit Linux OS +uname -a :Linux KICS-HPCNL-32blue 2.6.33.3-85.fc13.i686.PAE #1 SMP +architecture: intel64 +Bug Description +**************** +for memory reference instructions, suppose I have two addresses in guest address space(64 bit) +0x220000000 +0x320000000 +as lower 32 bit part of both addresses are same, when particular instructions are translated into host code(32 bit) +in both above cases the value is loaded from same memory and we get same value. where actual behaviour was to get two different values. +here is the program which i used to test: +#include <stdio.h> +#include <stdlib.h> +#include <limits.h> +#define SIZE 4294967298 /* 4Gib*/ + +int main() { + char *array; + unsigned int i; + + array = malloc(sizeof(char) * SIZE); + if(array == NULL) { + fprintf(stderr, "Could not allocate that much memory"); + return 1; } + array[0] = 'a'; + array[SIZE-2] = 'z'; + printf("array[SIZE-2] = %c array[0] = %c\n",array[SIZE-2], array[0]); + return 0; +} +I have 8 gib RAM +I compiled this program on 64 bit linux and run this on 32 bit linux with qemu +QEMU command line and output +********************************** +$x86_64-linux-user/qemu-x86_64 ~/ar_x86 +output: array[SIZE-1] = z,array[0] = z +Release information +******************** +x86_64 binary is tested with latest release : qemu-0.14.1 +and with current development tree as well( live code of QEMU using git) + +Can you still reproduce this problem with the latest version of QEMU (currently version 2.9.0)? + +[Expired for QEMU because there has been no activity for 60 days.] + |