[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [EXT] Re: xen arm64 low power sleep support


  • To: Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • From: Anthony Chan <anthonychan@xxxxxxxxxx>
  • Date: Wed, 30 Aug 2023 14:56:13 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nureva.com; dmarc=pass action=none header.from=nureva.com; dkim=pass header.d=nureva.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3V2ZbKEVkLTYFV1zY+n+rRFRLqtZLQERegskirl4004=; b=aQ/w5bEvDbSZLjdDcaAe316FZdMKilwqt8scEDt592FbVyJjGfuMjnbipR1vER5hw0jtOd3PyK4T8SgW/rw/cdn9Zdth3iP4sQm2bwedxcqB0ifD7IygVbGLgyTUFpXILVvkggLuib15IUE6Bq0cW1ui/6EVVQHnBpoCapHEVetKxaB2/PtbkRz7BiklEJwogCDIen65I1t0dFFURitkEvezT3d4EcRf1k8c2ggyY7J0wrb12qv0EPTWDPfmwZVEQNf7z8akejpi9QSG2eNFbpknztR71lQtdYAq4BLDLwOLx2ngs4xXQFuPm44CdK6jd9pU8yBz4Sm/W976lBmQUA==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jxSHKyYUkcDY9ZDsN8bcUiC6RE7JonM+WT+W3pKUcSYD5xtkZzclCyIsDTkyfybdBebiPm+9PHqxU1bDF4hmo/Xtp8GllAnWAymj1bqiqujJSS5D5+AgYMSBlqPS8dx2FsNuKw97KVyZxB5jdNcdiCj25hPAwNoez4honKt5lZ9x/xvnlX7HH1KGvblcL7a6mj94vCg849kXvyBv5LggOIl5aiy3pI1wEGZjDa8dQiF1FAs8W5tf6uoiqs/2/+iuSFJ6gIwwQzrub//fayGtOF04hXkYXkhkTKI9FKVkuVP9zcAfbv3txVOD8VDPPrHHtDY78pX7Z4qSAE0RnmvQuA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nureva.com;
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "bertrand.marquis@xxxxxxx" <bertrand.marquis@xxxxxxx>, "julien@xxxxxxx" <julien@xxxxxxx>, "Volodymyr_Babchuk@xxxxxxxx" <Volodymyr_Babchuk@xxxxxxxx>, "michal.orzel@xxxxxxx" <michal.orzel@xxxxxxx>, Dan Waqar <danwaqar@xxxxxxxxxx>
  • Delivery-date: Wed, 30 Aug 2023 14:56:26 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AdnanCj70Orzia5aQfSER7H0AUNnzgAKb5uAACL7QIA=
  • Thread-topic: [EXT] Re: xen arm64 low power sleep support

On Tue, 29 Aug 2023, Stefano Stabellini wrote:
> On Tue, 29 Aug 2023, Anthony Chan wrote:
> > Hi all,
> >
> > My name is Tony and I've been researching/developing using Xen for
> potential upcoming uses in our embedded systems.  I started with Xen
> using Xilinx tools about a year ago and still have lots to learn about what it
> can to do in the embedded space.  So far, I've managed to integrate Xen
> and Linux into an existing product that exclusively runs bare-metal code on
> a ZynqMP SoC and migrate some of the functionality into custom Linux
> driver/userspace.
> >
> > I'm now looking at low power support, for now at least between Xen
> (4.16) and Linux (5.15) dom0.  I've tried a few different Linux kernel
> configs around power management and each time I try to suspend from
> linux dom0 (via sysfs or systemctl), Xen will watchdog on dom0 guest.
> AFAIK, Xen should trap on a 'WFI' from guests, but from what I can tell
> debugging through the linux suspend process is it's spinning in a 'suspend-
> to-idle' loop before it can get to issuing a 'WFI' or using PSCI interface to
> notify Xen.  I'm beginning to suspect that 'low power' support for
> embedded arm64 just isn't quite there yet, or am I missing something in
> the configs?
> >
> > I realize this could very well be a Linux 'issue' but checking here first.  
> > I
> know Xen presents a flattened device tree to Linux without CPU idle-state
> nodes and maybe this is causing the linux guest to only do the suspend-
> to-idle mode?  I should mention that I'm booting up using dom0less
> feature if that matters.
>
>
> Hi Anthony,
>
> Assuming you are using the default Xen command line parameters for
> Xilinx boards: sched=null vwfi=native, then if the guest uses WFI, the CPU
> will execute WFI directly and go into low power mode.
Yes, using these command line params.

> Given the issue you are describing, I am suspecting the guest is not issuing
> WFI: that is simple and known to work. Instead, I suspect that Linux might
> be trying to use PSCI_suspend in a way that is not supported or well-
> implemented by Xen.
>
> Can you check? You can add a printk in Linux
> drivers/firmware/psci/psci.c:__psci_cpu_suspend or in Xen
> xen/arch/arm/vpsci.c:do_psci_0_2_cpu_suspend
Instrumented both places it doesn't appear to reach there.  In 
kernel/power/suspend.c, there's a call to s2idle_loop that it's currently 
'stuck' in and I think it doesn't get to the psci suspend your referring till 
afterwards, when suspend_ops->enter is called.  Unfortunately, without any 
idle-states nodes in the FDT, the only suspend state Linux is defaults to is 
'suspend to idle'.

Sorry about the boilerplate confidentiality footer below, I am not allowed to 
disable it...



CONFIDENTIALITY NOTICE: This e-mail, including any attachments, may contain 
information that is confidential and privileged. Any unauthorized disclosure, 
reproduction or use of this e-mail is prohibited. If you are not the intended 
recipient, please notify the sender by reply e-mail or telephone and 
permanently delete this e-mail and any reproductions immediately.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.