Bug 435662
Summary: | lockup in shrink_zone when node out of memory | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | Qian Cai <qcai> | ||||
Component: | kernel | Assignee: | Larry Woodman <lwoodman> | ||||
Status: | CLOSED DEFERRED | QA Contact: | Martin Jenner <mjenner> | ||||
Severity: | high | Docs Contact: | |||||
Priority: | urgent | ||||||
Version: | 4.6.z | CC: | clalance, ddomingo, dhoward, herbert.van.den.bergh, jbaron, jplans, jrfuller, nobody+bjmason, poelstra, tao, vmayatsk | ||||
Target Milestone: | rc | Keywords: | OtherQA, ZStream | ||||
Target Release: | --- | ||||||
Hardware: | All | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2008-03-15 14:17:00 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: | |||||||
Bug Depends On: | 205722 | ||||||
Bug Blocks: | |||||||
Attachments: |
|
Comment 5
Larry Woodman
2008-03-05 19:32:22 UTC
Cai, just to be clear here, are you saying that the z-stream RHEL4U6 kernel with the pagecache patch is worse than the standard RHEL4U6 kernel as far as hanging and panic()'ng is concerned when running that repro-oom program or ar you saying that it still acts th same ??? Larry I'd say it is not a regression from standard RHEL4U6 kernel to Z-stream RHEL4U6. As far as I remember, in standard RHEL4U6 kernel, the test case did hang the machine, but did not panic, because of NMI watchdog is not working there. In Z-stream RHEL4U6 kernel, as the NMI watchdog bug has been fixed, panic has been seen. Based on the comment #5, I am going to close this bug as DEFERRED. Use this program: #include <stdlib.h> #include <unistd.h> #include <sys/mman.h> #include <errno.h> #include <stdio.h> main(int argc,char *argv[]) { unsigned long siz; char *ptr1; char *i; int option; if ((argc <= 1)||(argc >3)) { printf("bad args, usage: memory <Log2 of memsize> <loop otion: 0=exit,1=loop,2=spin>\n"); exit(-1); } siz = ((long)1<<atol(argv[1])); ptr1 = (char *)malloc(siz); if (!ptr1){ printf("Unable to malloc\n"); exit(-1); } option = atoi(argv[2]); printf("option=%d\n", option); printf("mmaping %ld anonymous bytes\n", siz); ptr1 = (char *)mmap((void *)0,siz,PROT_READ|PROT_WRITE,MAP_ANONYMOUS|MAP_PRIVATE,-1,0); if (ptr1 == (char *)-1) { printf("ptr1 = %lx\n", ptr1); perror(""); } printf("touching %d pages\n", siz/4096); loop: for (i=ptr1; i<ptr1+siz-1; i+=4096) { *i=(char)'i'; } if (option==1) goto loop; else if (option==2) while(1); else printf("exiting\n"); } |