Summary: | Some fixes for the faultstatus testcase | ||
---|---|---|---|
Product: | [Developer tools] valgrind | Reporter: | Christian Borntraeger <borntraeger> |
Component: | general | Assignee: | Julian Seward <jseward> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version First Reported In: | 3.6 SVN | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Bug Depends on: | |||
Bug Blocks: | 243404 | ||
Attachments: |
patch that changes two things in faultstatus
new verson |
Created attachment 52650 [details] new verson The problem fault address vs. reported fault address also happens for test3. Due to a kernel bug on s390 (si_code=128 instead of 2) this was not visible. The kernel bug will be fixed in the next merge window (http://git390.marist.edu/cgi-bin/gitweb.cgi?p=linux-2.6.git;a=commit;h=1ca39725f9f241493fc2735152f00dc64a6b2c16) but we need the generalise the modifications of the fault address. Here is an improved patch. Committed, r11644. |
Created attachment 52212 [details] patch that changes two things in faultstatus Version: 3.6 SVN OS: Linux The faultstatus testcase fails on s390, even without valgrind. Two things I would like to change in the testcase: 1. The testcase opens the file without O_RDWR, resulting in the truncate below to (unnoticeably) fail: [...] open("faultstatus.tmp", O_RDONLY|O_CREAT|O_EXCL|O_TRUNC, 0600) = 3 unlink("faultstatus.tmp") = 0 ftruncate(3, 16384) = -1 EINVAL (Invalid argument) [...] The access now triggers two faults: 1. beyond defined memory (SIGBUS), write on read-only-mapping (SIGSEGV), whatever comes first. On x86 this causes SIGBUS, but on s390 this causes SIGSEGV. This patch uses O_RDWR to make the truncate succeed. 2. On s390 a page fault only gives us the page address, but not the address within a page. 0x1234 becomes 0x1000. There might be other architectures with the same problem. Reproducible: Always Question: Should that patch go in via the s390x patch or shall we add this fix directly (at least the failing trucate should be fixed)