All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: yangwendong <yangwendong@huawei.com>,
	Will Deacon <will@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Martin Weidmann <Martin.Weidmann@arm.com>,
	linux-arm-kernel@lists.infradead.org, wanghaibin.wang@huawei.com,
	Zenghui Yu <yuzenghui@huawei.com>,
	"wangjingyi (D)" <wangjingyi11@huawei.com>
Subject: Re: ARM WFET application scenario consultation
Date: Mon, 12 Apr 2021 15:02:00 +0100	[thread overview]
Message-ID: <875z0rob3b.wl-maz@kernel.org> (raw)
In-Reply-To: <877dl7obpc.wl-maz@kernel.org>

On Mon, 12 Apr 2021 14:48:47 +0100,
Marc Zyngier <maz@kernel.org> wrote:
> 
> On Mon, 12 Apr 2021 14:15:21 +0100,
> Catalin Marinas <catalin.marinas@arm.com> wrote:
> > 
> > On Mon, Apr 12, 2021 at 02:09:10PM +0100, Marc Zyngier wrote:
> > > On Mon, 12 Apr 2021 13:46:37 +0100,
> > > Catalin Marinas <catalin.marinas@arm.com> wrote:
> > > > 
> > > > On Mon, Apr 12, 2021 at 08:08:23PM +0800, yangwendong wrote:
> > > > > Recently, a new feature of WFE with timeouts has been added to ARMv8.
> > > > > I have some doubts about the application scenarios of this feature.
> > > > > 
> > > > > 1) Arm spec said that WFE or WFET can be used in spinlock. Since the
> > > > > thread using spinlock can't be sleep, if we use the wfet instruction, we
> > > > > can do nothing but wait when timeout,  so what's the difference between
> > > > > the two instructions in this scenario?
> > > > 
> > > > Not much point in using it it in a classic spinlock, unless you have
> > > > some specific implementation that's supposed to time out.
> > > > 
> > > > Note that we already enabled the event stream in Linux so that an event
> > > > is generated at 100KHz waking up any WFE. One reason we had for this was
> > > > some hardware errata where events between clusters were not generated.
> > > > Another was some small delays required in in certain user programs
> > > > without going through a kernel syscall, though not sure anyone's
> > > > actually using it.
> > > > 
> > > > > 2) Are there any other special scenarios where using wfet instructions
> > > > > can be beneficial ?
> > > > 
> > > > In the kernel we could replace our udelay loop with WFIT for example
> > > > (not WFET because of the event stream). As for user, we can expose a
> > > > HWCAP but it's up to user libraries to make use of it.
> > > 
> > > Note that since c219bc4e9205K ("arm64: Trap WFI executed in
> > > userspace"), we actively prevent WFI from being used in userspace, and
> > > I would expect WFIT to be given the same treatment. It otherwise is a
> > > precise tool for userspace to synchronise against kernel events.
> > 
> > I agree. I only thought about using it in the kernel as a simpler
> > udelay(). The user should not attempt WFI/WFIT.
> 
> That's my position as well. I'll post a patch dealing with that
> shortly.

Actually, no need for that. WFIT gets correctly trapped and skipped
because ESR_ELx_WFx_ISS_TI only covers bit 0, meaning that WFIT is
handled just like WFI.

	M.

-- 
Without deviation from the norm, progress is not possible.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

      reply	other threads:[~2021-04-12 14:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <26f50e86-dc68-0aca-f29f-19ef2f884c5d@huawei.com>
2021-04-12 12:46 ` ARM WFET application scenario consultation Catalin Marinas
2021-04-12 13:09   ` Marc Zyngier
2021-04-12 13:15     ` Catalin Marinas
2021-04-12 13:48       ` Marc Zyngier
2021-04-12 14:02         ` Marc Zyngier [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875z0rob3b.wl-maz@kernel.org \
    --to=maz@kernel.org \
    --cc=Martin.Weidmann@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=wanghaibin.wang@huawei.com \
    --cc=wangjingyi11@huawei.com \
    --cc=will@kernel.org \
    --cc=yangwendong@huawei.com \
    --cc=yuzenghui@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.