Subject: Re: kern/18789: amap_lookups panic after uvm_map changes
To: enami tsugutomo <firstname.lastname@example.org>
From: Andrew Brown <email@example.com>
Date: 10/24/2002 12:07:21
>>Suppose following case:
>>prev_entry wi/ amap | gap will be filled by new entry | next_entry w/o amap
>> A B C
>>The resulting entry covers A+B+C but amap only covers A+B, doesn't it?
>an excellent idea! let me try it out...
wonderful. this program:
#define BASE ((void*)0x80000000)
#define PAGE 4096
main(int argc, char *argv)
int *a, *b, *c;
/* allocate the "first" page */
a = mmap(BASE + 0 * PAGE, PAGE, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
/* cause it to be backed by an amap */
a = 1;
/* allocate the "last" page */
c = mmap(BASE + 2 * PAGE, PAGE, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
/* allocate the "middle" page, which gets bimerged */
b = mmap(BASE + 1 * PAGE, PAGE, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
/* die, you gravy sucking pig dog */
c = 1;
will cause the same problem. patch forthcoming. thanks. :)
|-----< "CODE WARRIOR" >-----|
firstname.lastname@example.org * "ah! i see you have the internet
email@example.com (Andrew Brown) that goes *ping*!"
firstname.lastname@example.org * "information is power -- share the wealth."