lkml.org 
[lkml]   [2018]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC PATCH for 4.17 02/21] rseq: Introduce restartable sequences system call (v12)
    On Tue, Mar 27, 2018 at 12:05:23PM -0400, Mathieu Desnoyers wrote:
    > +#ifdef CONFIG_RSEQ
    > + struct rseq __user *rseq;
    > + u32 rseq_len;
    > + u32 rseq_sig;
    > + /*
    > + * RmW on rseq_event_mask must be performed atomically
    > + * with respect to preemption.
    > + */
    > + unsigned long rseq_event_mask;
    > +#endif

    > +static inline void rseq_signal_deliver(struct pt_regs *regs)
    > +{
    > + set_bit(RSEQ_EVENT_SIGNAL_BIT, &current->rseq_event_mask);
    > + rseq_handle_notify_resume(regs);
    > +}
    > +
    > +static inline void rseq_preempt(struct task_struct *t)
    > +{
    > + set_bit(RSEQ_EVENT_PREEMPT_BIT, &t->rseq_event_mask);
    > + rseq_set_notify_resume(t);
    > +}
    > +
    > +static inline void rseq_migrate(struct task_struct *t)
    > +{
    > + set_bit(RSEQ_EVENT_MIGRATE_BIT, &t->rseq_event_mask);
    > + rseq_set_notify_resume(t);
    > +}

    Given that comment above, do you really need the full atomic set bit?
    Isn't __set_bit() sufficient?

    \
     
     \ /
      Last update: 2018-03-28 13:20    [W:4.205 / U:0.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site