Re: [HACKERS] mmap and MAP_ANON
От | Göran Thyni |
---|---|
Тема | Re: [HACKERS] mmap and MAP_ANON |
Дата | |
Msg-id | 3557EA9F.F82979ED@bildbasen.se обсуждение исходный текст |
Ответ на | mmap and MAP_ANON (Bruce Momjian <maillist@candle.pha.pa.us>) |
Ответы |
Re: [HACKERS] mmap and MAP_ANON
|
Список | pgsql-hackers |
Göran Thyni wrote: > > Bruce Momjian wrote: > > > > Would people tell me what platforms do NOT support the MAP_ANON flag to > > the mmap() system call? You should find it in the mmap() manual page. > > > > *BSD has it, but I am not sure of the others. I am researching cache > > size issues and the use of mmap vs. SYSV shared memory. > > SVR4 (at least older ones) does not support MMAP_ANON, > but the recommended in W. Richards Stevens' > "Advanced programming in the Unix environment" (aka the Bible part 2) > is to use /dev/zero. > > This should be configurable with autoconf: > > <PSEUDO CODE> > > if (exists MAP_ANON) use it; else use /dev/zero > > ------------ > > flags = MAP_SHARED; > #ifdef HAS_MMAP_ANON > fd = -1; > flags |= MAP_ANON; > #else > fd = open('/dev/zero, O_RDWR); > #endif > area = mmap(0, size, PROT_READ|PROT_WRITE, flags, fd, 0); > > </PSEUDO CODE> Ouch, hate to say this but: I played around with this last night and I can't get either of the above technics to work with Linux 2.0.33 I will try it with the upcoming 2.2, but for now, we can't loose shmem without loosing a large part of the users (including some developers). flags = MAP_SHARED; <PSEUDO CODE> #ifdef HAS_WORKING_MMAP #ifdef HAS_MMAP_ANON fd = -1; flags |= MAP_ANON; #else fd = open('/dev/zero, O_RDWR); #endif area = mmap(0, size, PROT_READ|PROT_WRITE, flags, fd, 0); #else id = shget(...); area = shmat(...); #endif </PSEUDO CODE> not happy, -- --------------------------------------------- Göran Thyni, sysadm, JMS Bildbasen, Kiruna
В списке pgsql-hackers по дате отправления: