Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1737262

Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited private command

From Peter Zijlstra <peterz@infradead.org>
Newsgroups linux.kernel
Subject Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited private command
Date 2017-09-22 10:30 +0200
Message-ID <usrvs-3Q3-11@gated-at.bofh.it> (permalink)
References <urz21-2JM-1@gated-at.bofh.it> <usmP7-13n-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Fri, Sep 22, 2017 at 11:22:06AM +0800, Boqun Feng wrote:

> The idea is in membarrier_private_expedited(), we go through all ->curr
> on each CPU and 
> 
> 1)	If it's a userspace task and its ->mm is matched, we send an ipi
> 
> 2)	If it's a kernel task, we skip
> 
> 	(Because there will be a smp_mb() implied by mmdrop(), when it
> 	switchs to userspace task).
> 
> 3)	If it's a userspace task and its ->mm is not matched, we take
> 	the corresponding rq->lock and check rq->curr again, if its ->mm
> 	matched, we send an ipi, otherwise we do nothing.
> 
> 	(Because if we observe rq->curr is not matched with rq->lock
> 	held, when a task having matched ->mm schedules in, the rq->lock
> 	pairing along with the smp_mb__after_spinlock() will guarantee
> 	it observes all memory ops before sys_membarrir()).

3) is an insta DoS.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[RFC PATCH v3 1/2] membarrier: Provide register expedited private command Mathieu Desnoyers <mathieu.desnoyers@efficios.com> - 2017-09-20 00:20 +0200
  [RFC PATCH 2/2] membarrier: selftest: Test private expedited cmd Mathieu Desnoyers <mathieu.desnoyers@efficios.com> - 2017-09-20 00:20 +0200
  Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Boqun Feng <boqun.feng@gmail.com> - 2017-09-22 05:30 +0200
    Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Boqun Feng <boqun.feng@gmail.com> - 2017-09-22 05:40 +0200
      Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Mathieu Desnoyers <mathieu.desnoyers@efficios.com> - 2017-09-22 07:30 +0200
    Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Peter Zijlstra <peterz@infradead.org> - 2017-09-22 10:30 +0200
      Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Boqun Feng <boqun.feng@gmail.com> - 2017-09-22 11:00 +0200
  Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Boqun Feng <boqun.feng@gmail.com> - 2017-09-22 11:10 +0200
    Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Mathieu Desnoyers <mathieu.desnoyers@efficios.com> - 2017-09-22 17:10 +0200
      Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Boqun Feng <boqun.feng@gmail.com> - 2017-09-24 15:40 +0200
        Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Mathieu Desnoyers <mathieu.desnoyers@efficios.com> - 2017-09-24 16:30 +0200
          Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Boqun Feng <boqun.feng@gmail.com> - 2017-09-25 14:20 +0200
            Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Peter Zijlstra <peterz@infradead.org> - 2017-09-25 14:30 +0200
              Re: [RFC PATCH v3 1/2] membarrier: Provide register expedited  private command Mathieu Desnoyers <mathieu.desnoyers@efficios.com> - 2017-09-25 14:50 +0200

csiph-web