Re: Need help with phys backed shm segments (Postgresql+FreeBSD).
От | Oleg Bartunov |
---|---|
Тема | Re: Need help with phys backed shm segments (Postgresql+FreeBSD). |
Дата | |
Msg-id | Pine.GSO.3.96.SK.1001206001907.4327u-100000@ra обсуждение исходный текст |
Ответ на | Re: Need help with phys backed shm segments (Postgresql+FreeBSD). (Alfred Perlstein <bright@wintelcom.net>) |
Ответы |
Re: Need help with phys backed shm segments (Postgresql+FreeBSD).
|
Список | pgsql-hackers |
Alfred, do you have any numbers with and without your patch ? I mean performance. You may use pg_check utility. Oleg On Tue, 5 Dec 2000, Alfred Perlstein wrote: > Date: Tue, 5 Dec 2000 13:04:45 -0800 > From: Alfred Perlstein <bright@wintelcom.net> > To: Tom Lane <tgl@sss.pgh.pa.us> > Cc: pgsql-hackers@postgresql.org > Subject: Re: [HACKERS] Need help with phys backed shm segments (Postgresql+FreeBSD). > > * Alfred Perlstein <bright@wintelcom.net> [001205 12:30] wrote: > > * Tom Lane <tgl@sss.pgh.pa.us> [001205 08:37] wrote: > > > BTW, I just remembered that in 7.0.*, the SLocks that are managed by > > > SpinAcquire() all live in their own little shm segment. On a machine > > > where slock_t is char, it'd likely only amount to 128 bytes or so. > > > Maybe you are seeing some bug in FreeBSD's handling of tiny shm > > > segments? > > > > Good call, i think I found it! :) > > Here's the patch I'm using on FreeBSD, it seems to work, if any > other FreeBSD'ers want to try it out, just apply the patch: > cd /usr/src/sys/vm ; patch < patchfile > > and recompile and boot with a new kernel, then do this: > > sysctl -w kern.ipc.shm_use_phys=1 > > or add: > kern.ipc.shm_use_phys=1 > to /etc/sysctl.conf > > Let me know if it works. > > thanks, > -Alfred > > Index: phys_pager.c > =================================================================== > RCS file: /home/ncvs/src/sys/vm/phys_pager.c,v > retrieving revision 1.3.2.1 > diff -u -u -r1.3.2.1 phys_pager.c > --- phys_pager.c 2000/08/04 22:31:11 1.3.2.1 > +++ phys_pager.c 2000/12/05 20:13:25 > @@ -83,7 +83,7 @@ > * Allocate object and associate it with the pager. > */ > object = vm_object_allocate(OBJT_PHYS, > - OFF_TO_IDX(foff + size)); > + OFF_TO_IDX(foff + PAGE_MASK + size)); > object->handle = handle; > TAILQ_INSERT_TAIL(&phys_pager_object_list, object, > pager_object_list); > _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
В списке pgsql-hackers по дате отправления: