tech-net archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Introduce curlwp_bind and curlwp_unbind for psref(9)
> On Jun 13, 2016, at 5:53 PM, Ryota Ozaki <ozaki-r%netbsd.org@localhost> wrote:
>
> On Mon, Jun 13, 2016 at 11:21 PM, Taylor R Campbell
> <campbell+netbsd-tech-kern%mumble.net@localhost> wrote:
>> Date: Mon, 13 Jun 2016 14:00:16 +0200
>> From: Joerg Sonnenberger <joerg%bec.de@localhost>
>>
>> On Mon, Jun 13, 2016 at 07:36:31PM +0900, Ryota Ozaki wrote:
>>> Currently we do it by open-coding in each place,
>>> but we should provide some API to simplify codes.
>>> riastradh@ suggested curlwp_bind and curlwp_unbind
>>> some time ago (*1) and this patch (*2) just follows
>>> the idea.
>>
>> The primary question for me is whether nesting should be allowed or not.
>> That would mean a reference count behind the flag.
>>
>> This `reference count' gets stored on the stack. The caller does:
>>
>> int bound = curlwp_bind();
>>
>> ... psref_wotsit ...
>>
>> curlwp_unbind(bound);
>>
>> If it was already bound, bound = 1 and curlwp_unbind does nothing; if
>> it was not already bound, bound = 0 and curlwp_unbind unbinds it.
>>
>> Perhaps the name should be `curlwp_bound_restore' or something else to
>> emphasize this, but I haven't come up with one that I like better on
>> aesthetic grounds.
>
> - curlwp_bind and curlwp_unbind
> - curlwp_bound_set and curlwp_bound_restore
> - curlwp_bound and curlwp_boundx
>
> Any other ideas? :)
Since we already use preempt_disable() to force an lwp to stick to a cpu,
doesn't that solve the problem? If need be, we can enforce nonpreemptable
lwp's don't migrate.
Home |
Main Index |
Thread Index |
Old Index