Re: [patch 0/6] lightweight robust futexes: -V4

From: Eric W. Biederman
Date: Thu Feb 23 2006 - 00:01:50 EST


Jakub Jelinek <jakub@xxxxxxxxxx> writes:

> On Tue, Feb 21, 2006 at 08:26:05AM -0800, Ulrich Drepper wrote:
>> > The `len' argument (or really revision of the structure if really needed)
>> > can be encoded in the structure, as in:
>> > struct robust_list_head {
>> > struct robust_list list;
>> > short robust_list_head_len; /* or robust_list_head_version ? */
>> > short futex_offset;
>> > struct robust_list __user *list_op_pending;
>> > };
>> > or with long futex_offset, but using say upper 8 bits of the field as
>> > version or length.
>>
>> I know you want to save SPARC but this kind of overloading I don't
>> really like. If you need special treatment of the futex value make
>> this explicit and arch-dependent.
>
> This had nothing to do with SPARC actually, I only wanted to avoid
> passing two extra arguments to clone rather than one. But if you think
> CLONE_CHILD_SETROBUST is unnecessary, so be it and the combined
> set_tid_robust_address call can have tidptr, robustptr and robustlen
> arguments.

Not to be dense. But can you actually measure the syscall overhead
you are trying to optimize out?

Especially where Ulrich was starting to ask for something that reminded
me of posix_spawn, I get a little nervous. My gut feel is that 2
simple cheap syscalls, are comparable to one very configurable syscall.

I don't count cycles regularly so I don't know for certain, but lets
at least look before we leap.

Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/