Hi Peter,
Às 06:02 de 16/02/21, Peter Zijlstra escreveu:
On Mon, Feb 15, 2021 at 12:23:52PM -0300, André Almeida wrote:
+static int __futex_wait(struct futexv_head *futexv, unsigned int nr_futexes,
+ struct hrtimer_sleeper *timeout)
+{
+ int ret;
+
+ while (1)
André Almeida writes:
>>> + if (unlikely(ret)) {
>>> + spin_unlock(&bucket->lock);
>>> +
>>> + bucket_dec_waiters(bucket);
>>> + __set_current_state(TASK_RUNNING);
>>> + *awakened = futex_dequeue_multiple(futexv, i)
Hi Gabriel,
Às 16:59 de 15/02/21, Gabriel Krisman Bertazi escreveu:
André Almeida writes:
+/**
+ * struct futexv_head - List of futexes to be waited
+ * @task:Task to be awaken
+ * @hint:Was someone on this list awakened?
+ * @objects: List of futexes
+ */
+struct futexv_head {
+
Peter Zijlstra writes:
> On Mon, Feb 15, 2021 at 12:23:52PM -0300, André Almeida wrote:
>> Create a new set of futex syscalls known as futex2. This new interface
>> is aimed to implement a more maintainable code, while removing obsolete
>> features and expanding it with new functionalities.
>>
>
On Tue, Feb 16, 2021 at 11:20:44AM +0100, Sebastian Andrzej Siewior wrote:
> On 2021-02-16 10:56:14 [+0100], Peter Zijlstra wrote:
> > So while I'm in favour of adding a new interface, I'm not sure I see
> > benefit of reimplementing the basics, sure it seems simpler now, but
> > that's because you
On 2021-02-16 10:56:14 [+0100], Peter Zijlstra wrote:
> So while I'm in favour of adding a new interface, I'm not sure I see
> benefit of reimplementing the basics, sure it seems simpler now, but
> that's because you've not implemented all the 'fun' stuff.
The last attempt tried to hide the update
On Mon, Feb 15, 2021 at 12:23:52PM -0300, André Almeida wrote:
> Create a new set of futex syscalls known as futex2. This new interface
> is aimed to implement a more maintainable code, while removing obsolete
> features and expanding it with new functionalities.
>
> Implements wait and wake seman
On Mon, Feb 15, 2021 at 12:23:52PM -0300, André Almeida wrote:
> +static int futex_dequeue_multiple(struct futexv_head *futexv, unsigned int
> nr)
> +{
> + int i, ret = -1;
> +
> + for (i = 0; i < nr; i++) {
> + spin_lock(&futexv->objects[i].bucket->lock);
> + if (
On Mon, Feb 15, 2021 at 12:23:52PM -0300, André Almeida wrote:
> +static int __futex_wait(struct futexv_head *futexv, unsigned int nr_futexes,
> + struct hrtimer_sleeper *timeout)
> +{
> + int ret;
> +
> + while (1) {
> + int awakened = -1;
> +
Might be easi
André Almeida writes:
> Create a new set of futex syscalls known as futex2. This new interface
> is aimed to implement a more maintainable code, while removing obsolete
> features and expanding it with new functionalities.
Hi André. Some comments below
> +/* kernel/futex2.c */
> +asmlinkage lo
10 matches
Mail list logo