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

Re: [PATCH] xen/arm: Validate generic timer frequency


  • To: Julien Grall <julien@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Wed, 11 Oct 2023 08:54:13 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=xen.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); 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=pP0Hy1gwjMcPU/hEs2ED01hHsHpiu72y//2bD4YicHI=; b=gLXAoBAGcxMOGlCsDeDs6Rkg1FgBhbiSq/UqRyYAyeRfHGQQAPgkj3JzYxLb/sAkwuG6jsi16Dy/itX4dPFDlhrLgOyKyroZpEJCuHeza5U9dTaaXs1SKRlTL+IW2JvK1Sh6HM2WJqHFmoWyhVRSMDQPd93tahD1LOHGHeTiQIEzX+GNHoZTFhMyNzggaZTPQjjN/SRVkixzmRjs2bnB+PlKITDXWLamN2KEsKqJxT+Wmvb4eYI+q4skPSTIOp/Rps2SgYoRLhRL2VYqKZgBxLOpiQWWtPWVQ83br/w69X+ffYP5hyKmAi/bm/kS7xf936thtKmV3V0vyk6NCyq5Jg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jz2hobgeXMtJhgpIaKO2JVLxwV9aDcCEnjZnb2QyGUkp1QqxuqyKH+7dv925kgs7/37QAhrRJ6ySZH4D4picUMENrKs3GPmg98Z7Bb/z7b3WtCk2YV+MLy63vJsE/07sQsMMXwlpu942U3EimYIq0KqFITQEKvoI+jb4ZXJNbEramHvAWwNnnF+iwywA8kaEGCAuT/3gt+izXhrqzX84/1ocPuypOrD7ig/wT7ldKQ4mZ+IaEWYmsjyeVpTrQo0/tbd48ctjr7u16mh+yk3YxQ4cuYsgZpw+dWdHMXL4nXVS8zmDJSYHWHFuP94Q4c2OztRvf3iaj7BuulLFHygOcg==
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>, Henry Wang <Henry.Wang@xxxxxxx>
  • Delivery-date: Wed, 11 Oct 2023 06:54:46 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Julien, Henry,

On 10/10/2023 16:48, Julien Grall wrote:
> 
> 
> (+ Henry)
> 
> Hi Michal,
> 
> On 29/09/2023 08:38, Julien Grall wrote:
>> Hi Michal,
>>
>> On 28/09/2023 13:34, Michal Orzel wrote:
>>> Generic timer dt node property "clock-frequency" (refer Linux dt binding
>>> Documentation/devicetree/bindings/timer/arm,arch_timer.yaml) is used to
>>> override the incorrect value set by firmware in CNTFRQ_EL0. If the value
>>> of this property is 0 (i.e. by mistake), Xen would continue to work and
>>> use the value from the sysreg instead. The logic is thus incorrect and
>>> results in inconsistency when creating timer node for domUs:
>>>   - libxl domUs: clock_frequency member of struct xen_arch_domainconfig
>>>     is set to 0 and libxl ignores setting the "clock-frequency" property,
>>>   - dom0less domUs: "clock-frequency" property is taken from dt_host and
>>>     thus set to 0.
>>>
>>> Property "clock-frequency" is used to override the value from sysreg,
>>> so if it is also invalid, there is nothing we can do and we shall panic
>>> to let user know about incorrect setting. Going even further, we operate
>>> under assumption that the frequency must be at least 1KHz (i.e. cpu_khz
>>> not 0) in order for Xen to boot. Therefore, introduce a new helper
>>> validate_timer_frequency() to verify this assumption and use it to check
>>> the frequency obtained either from dt property or from sysreg.
>>>
>>> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
>>
>> Acked-by: Julien Grall <jgrall@xxxxxxxxxx>
> 
> Going through the list of pending patches, I noticed Henry wasn't CCed.
> Is this patch intended for Xen 4.18? If so, can you provide some
> reasoning why would want it?
Strictly speaking, lack of "for-4.18" prefix indicates that I did not 
particularly aim for 4.18.
However, I find it useful, so I will leave it up to Henry to decide if we want 
that or not.

Benefits:
- fixes the invalid logic the consequence of which might result in 
inconsistency when booting
  the same OS as libxl domU and dom0less domU.
- prevents spreading out the error condition (i.e. rate < 1KHZ) that can lead 
to e.g. Xen inability to schedule,
  by panicing with proper msg
Risks:
- early init code, no critical path, in case of an error, panic returned with 
proper msg - no risks AFAICT

~Michal



 


Rackspace

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