[Bikeshed] sigacts locking
John Baldwin
jhb at FreeBSD.org
Mon May 12 12:49:04 PDT 2003
On 10-May-2003 Jeff Roberson wrote:
> On Fri, 9 May 2003, John Baldwin wrote:
>
>> As part of the locking for the proc structure, I needed to lock
>> the procsig and sigacts stuctures so that kill(), killpg(),
>> sigaction() and a few other system calls can be pulled out from
>> under Giant. After talking with Peter some, I decided to
>> pull the sigacts structure out of the u-area and merge it with
>> the procsig structure under the sigacts name. I then added a
>> mutex to each sigacts and added locking where appropriate. With
>> this change, the aforementioned system calls are now MP safe
>> along with sendsig(), *signal(), cursig(), etc. The patch for
>> all this is at http://www.FreeBSD.org/~jhb/patches/sigacts.patch
>> I would appreciate comments, review, etc. that people may have.
>> If all goes well I hope to get this into 5.1. Thanks.
>>
>
> I'm all for this, but I have a few concerns. Right now the UAREA is
> mostly taken up by sigacts. Without it the page is quite empty. This
> means that we'll be allocating more storage elsewhere while leaving this
> for nothing.
>
> Have you given any thought to removing the other bits from uarea, or
> allocating uarea using a zone instead of a whole page? Alternatively, you
> could disable paging for the uarea and leave sigacts in it.
Leaving sigacts in the u-area is quite ugly because for rfork()
RFTHREAD processes we don't use the sigacts in the u-area, we use
a malloc'd one instead. Accomplishing that is quite ugly.
> I just hate to s ee the wasted space.
I don't have any future plans for the u-area specifically. Any of
your suggestions (using a zone, axeing it completely, etc.) sound
fine to me as to how to avoid wasting space.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
More information about the freebsd-arch
mailing list