Bug 196658
Summary: | bus error happens with memset | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | William Bai <snowingbear> |
Component: | kernel | Assignee: | Luming Yu <luyu> |
Status: | CLOSED WORKSFORME | QA Contact: | Brian Brock <bbrock> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 4.0 | CC: | jbaron, peterm |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ia64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2007-08-07 14:24:14 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
William Bai
2006-06-26 10:01:44 UTC
*** Bug 196659 has been marked as a duplicate of this bug. *** (In reply to comment #0) > Description of problem: > Bus error in memset when used with shmat(hugetlb), memcpy. It's OK on > x86_64(hugetlb's pagesize 2MB), but wrong on ia64(hugetlb's pagesize 256MB) > How reproducible: > Steps to Reproduce: > The following program can duplicate the bus error. > #include <stdio.h> > #include <sys/types.h> > #include <sys/shm.h> > > int main() > { > int i = 0; > int shmid[3]; > void *addr[3]; > for (i=0; i<3; i++) { > shmid[i] = shmget(IPC_PRIVATE, 256*1024*1024ULL, > SHM_HUGETLB|IPC_CREAT|SHM_R|SHM_W); > if (shmid[i] < 0) { > perror("shmget"); > break; > } > } > > addr[0] = shmat(shmid[0], NULL, SHM_RND | SHM_UNLOCK); > printf("addr0 is %lx\n", addr[0]); > addr[1] = shmat(shmid[1], (void *)addr[0]+256 * 1024 *1024ULL, SHM_RND | > SHM_UNLOCK); > printf("addr1 is %lx\n", addr[1]); > memcpy((void *)addr[1], (void *)addr[0], 256*1024*1024ULL); > addr[2] = shmat(shmid[2], NULL, SHM_RND | SHM_UNLOCK); > printf("addr2 is %lx\n", addr[2]); > memset((void *)addr[2], 0, 256*1024*1024ULL); > } To add up, it's not caused by shmget(). I have added the following in /etc/sysctl.conf. vm.nr_hugepages = 24 kernel.shmmax = 684354560 kernel.shmmni = 24 kernel.shmall = 268435456 I didn't add shmdt and shmctl, because it has been interrupted. Is it reproducible with upstream kernel? This problem happens on RHEL4U2, but it seems ok on RHEL4U4.(In reply to comment #3) > Is it reproducible with upstream kernel? thanks for the update, closing it.. |