Re: light weight user level semaphores

George Talbot
2001-04-19T14:00:13Z

[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

On Tue, 17 Apr 2001 12:48:48 -0700 (PDT) Linus Torvalds wrote:

[deletia]

> /*
> * a fast semaphore is a 128-byte opaque thing,
> * aligned on a 128-byte boundary. This is partly
> * to minimize false sharing in the L1 (we assume
> * that 128-byte cache-lines are going to be fairly
> * common), but also to allow the kernel to hide
> * data there
> */
> struct fast_semaphore {
> unsigned int opaque[32];
> } __attribute__((aligned, 64));
>
> struct fast_semaphore *FS_create(char *ID);
> int FS_down(struct fast_semaphore *, unsigned long timeout);
> void FS_up(struct fast_semaphore *);

[deletia]

These are counting semaphores, right? If so, would this make sense?

struct fast_semaphore *FS_create(char *ID, int initial_count);

[FS_down/FS_up the same]

int FS_get_count(struct fast_semaphore *);

The FS_get_count() is less useful, but being able to pass the initial
count to the semaphore is pretty important.

--George

[-- Attachment #2: Card for George Talbot --]
[-- Type: text/x-vcard, Size: 316 bytes --]

begin:vcard
n:Talbot;George
tel;fax:732-615-4526
tel;work:732-615-5099
x-mozilla-html:FALSE
org:Lucent, Inc.;Inter-Networking Systems
adr:;;480 Red Hill Road, Building 1;Middletown;NJ;07748;USA
version:2.1
email;internet:gtalbot@lucent.com
title:Senior Software Engineer
x-mozilla-cpt:;0
fn:George Talbot
end:vcard