On Thu, Dec 05, 2019 at 05:30:03PM +0530, Sandeep Tripathy wrote:
Thanks Dan and Sudeep,
On Thu, Dec 5, 2019 at 5:08 PM Sudeep Holla sudeep.holla@arm.com wrote:
On Tue, Dec 3, 2019 at 4:58 PM Sandeep Tripathy via TF-A tf-a@lists.trustedfirmware.org wrote:
Hi, system shutdown or system reset PSCI calls are invoked by the last core in the system. PSCI lib does not do cache flush for the last core /cluster and does not follow the core / cluster power down sequence. This may cause issue in a system if the system is not standalone one ie if the system is a slave or node in a bigger system with other coherent masters/PEs.
I am not sure if system off/reset is the right API to call in such a setup.
Please suggest if the PSCI spec expected 'shutdown/reset/reset2' to deliberately skip the core/cluster shutdown sequence.
Yes and IIRC this has been discussed in the past[1]. I expect to get some closure on open question on that thread. Quite a few questions were raised by few people and I am not sure if all were answered. I need to dig but but AFAIK it wasn't all answered.
I understood the concern of increase in reboot time for 'many-core' system and also agree what Dan mentioned as inherently racy situation to handle it perfectly for multi core. I did check the thread[1] and agree with plat-specific embedded hacks which does the job.
Not sure what you agree and what you don't. Please be specific as that thread had too many discussion and none were concluded with proper requirement details. Most of them sounded like we have this hack and hence we need this.
My query is more on the spec. The OS (eg: linux) and atf and psci spec seem to have assumed that it is managing an independent system or managing 'all' the masters in a coherent domain. What other reason could possibly encourage to not to follow a shutdown sequence.
At-least the use-case presented was too custom and you can't solve this using generic solution. The OS needs to save what it needs before it does as graceful shutdown. If it's forceful, then OS is ought to loose data. If it's a slave in the system, you can always send a signal to it early giving it a change to save the required data. Why doesn't it work ? Am I missing something ?
-- Regards, Sudeep