Re: Spinlock performance improvement proposal
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: mlw <markw@mohawksoft.com>
Cc: "D. Hageman" <dhageman@dracken.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2001-09-29T03:41:18Z
Lists: pgsql-hackers
> Bruce Momjian wrote: > > > > > Save for the fact that the kernel can switch between threads faster then > > > it can switch processes considering threads share the same address space, > > > stack, code, etc. If need be sharing the data between threads is much > > > easier then sharing between processes. > > > > Just a clarification but because we fork each backend, don't they share > > the same code space? Data/stack is still separate. > > In Linux and many modern UNIX programs, you share everything at fork time. The > data and stack pages are marked "copy on write" which means that if you touch > it, the processor traps and drops into the memory manager code. A new page is > created and replaced into your address space where the page, to which you were > going to write, was. Yes, very true. My point was that backends already share code space and non-modified data space. It is just modified data and stack that is non-shared, but then again, they would have to be non-shared in a threaded backend too. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026