summaryrefslogtreecommitdiffstats
path: root/mailinglist/output_launchpad/1915327
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-05-30 14:51:13 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-05-30 14:51:13 +0000
commit225caa38269323af1bfc2daadff5ec8bd930747f (patch)
treee0a5fefde9ee100ba6f32fb36de6707490e4164e /mailinglist/output_launchpad/1915327
parent904141bfb8d5385b75eb3b7afec1dcda89af65a7 (diff)
downloademulator-bug-study-225caa38269323af1bfc2daadff5ec8bd930747f.tar.gz
emulator-bug-study-225caa38269323af1bfc2daadff5ec8bd930747f.zip
add mailinglist scraper results
Diffstat (limited to 'mailinglist/output_launchpad/1915327')
-rw-r--r--mailinglist/output_launchpad/191532767
1 files changed, 67 insertions, 0 deletions
diff --git a/mailinglist/output_launchpad/1915327 b/mailinglist/output_launchpad/1915327
new file mode 100644
index 00000000..58485415
--- /dev/null
+++ b/mailinglist/output_launchpad/1915327
@@ -0,0 +1,67 @@
+x86_64 cmpxchg behavior in qemu tcg does not match the real CPU
+
+QEMU version:
+1214d55d1c (HEAD, origin/master, origin/HEAD) Merge remote-tracking branch 'remotes/nvme/tags/nvme-next-pull-request' into staging
+
+Consider the following little program:
+
+$ cat 1.c
+#include <stdio.h>
+int main() {
+ int mem = 0x12345678;
+ register long rax asm("rax") = 0x1234567812345678;
+ register int edi asm("edi") = 0x77777777;
+ asm("cmpxchg %[edi],%[mem]"
+ : [ mem ] "+m"(mem), [ rax ] "+r"(rax)
+ : [ edi ] "r"(edi));
+ long rax2 = rax;
+ printf("rax2 = %lx\n", rax2);
+}
+
+According to the Intel Manual, cmpxchg should not touch the accumulator in case the values are equal, which is indeed the case on the real CPU:
+
+$ gcc 1.c
+$ ./a.out
+rax2 = 1234567812345678
+
+However, QEMU appears to zero extend EAX to RAX:
+
+$ qemu-x86_64 ./a.out
+rax2 = 12345678
+
+This is also the case for lock cmpxchg.
+
+Found in BPF development context: https://lore<email address hidden>
+
+The QEMU project is currently moving its bug tracking to another system.
+For this we need to know which bugs are still valid and which could be
+closed already. Thus we are setting the bug state to "Incomplete" now.
+
+If the bug has already been fixed in the latest upstream version of QEMU,
+then please close this ticket as "Fix released".
+
+If it is not fixed yet and you think that this bug report here is still
+valid, then you have two options:
+
+1) If you already have an account on gitlab.com, please open a new ticket
+for this problem in our new tracker here:
+
+ https://gitlab.com/qemu-project/qemu/-/issues
+
+and then close this ticket here on Launchpad (or let it expire auto-
+matically after 60 days). Please mention the URL of this bug ticket on
+Launchpad in the new ticket on GitLab.
+
+2) If you don't have an account on gitlab.com and don't intend to get
+one, but still would like to keep this ticket opened, then please switch
+the state back to "New" or "Confirmed" within the next 60 days (other-
+wise it will get closed as "Expired"). We will then eventually migrate
+the ticket automatically to the new system (but you won't be the reporter
+of the bug in the new system and thus you won't get notified on changes
+anymore).
+
+Thank you and sorry for the inconvenience.
+
+
+[Expired for QEMU because there has been no activity for 60 days.]
+