[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
- To: Jens Wiklander <jens.wiklander@xxxxxxxxxx>
- From: Bertrand Marquis <Bertrand.Marquis@xxxxxxx>
- Date: Wed, 11 Feb 2026 11:42:47 +0000
- Accept-language: en-GB, en-US
- Arc-authentication-results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com])
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=8rcBLi1aoRtywbZ/T93D9mrJrpvjzyhBIbhS4enMz4M=; b=S8wG+CAdE5Gjt6yFrZYZ/Mci3aDjb30eGzRrVgpINqore+9bYwvIb2i1ZCXI9LI2U3wGYv5cUIQFQUw9C136P+rpzNVMtzbfmrmky2De6w0zPLjJ66H9jiuKb+lJZ7PuZ3c4tjfdOOgZzPrjPe07te9fPbgnWyUrNoCF37xo6RSrfe7dQ6CKcNH3TbtOYCrEVuSjXdjcPxw+wHq+yHtLSx8zXXSoJ9cBz0ahOB/CfXpX5ugyOSnqcylkkOqzs9/OBabHn1tfdHX/hCs+BkZU7dfuAgXXGfiRCO3EP2U2XDPn4cMSz7KgSNC1k2UEL31jZtoA5W218MAq/Zp0iyYqVA==
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=8rcBLi1aoRtywbZ/T93D9mrJrpvjzyhBIbhS4enMz4M=; b=IWeIEieYriL5JI4fpc9zgpKPlkZ1FcOjaCEWq2Cz2JL1umLUwtdl3eEChfJnm0x0rVvyb72bnXUjwGXXXSht5taO7XPJ0y8xQfqKPrEVE+K0rrwVeXQSQ/T/D2Ny3tSle5KJ/Ha4F9Ff5G2+dnjlWyONjWFsTTy8i1E34vrHAY0nRiyeMeF/UCHOuz1rBbPYtAlmVpCXQgIZkwkCIRmh6QMrDi6aUCJPeCHmmhQ5unwmHDIy/PwwyyDAMlHOAABCMl3eAqNthssAtAmCgSraxtG0nSSV9nDI+v5sNTDYp3WcWWbOc4UcDZyp7SfdgCn758TXNQqGH2xaHzWZQey6mA==
- Arc-seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=CczI03d6YX8vQLsCokRL3ANEvjx0jcWXpc1glbiiXN9pb7VPw+P1/hzPrIghdLMKiw4rStBpQSgG+bkfDxK9KRnl3pmfsWOdYOMv21K7hecsV2ZgHyK8KbFtjCnWtoaO5vqfqgORnSqCJKkZoLqjlvp9g00AOObjrbp2X+gYsBkw0m38F5aPzdofRYpCAfkcNR2nyZvCwofEG9ip9FFmuQN4/pFMlayGZXLl+rUd9avSc7RmjZwTv2+lvMU8NzP0GTddLzqg8gWow20EURATWvZXBYMl+rVVvanP0JlYfFSzchVE8lwpNDY6+F1K+NdhyqWzv5ZoYmxHwjRZRbV+Xw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WFrkiQSgkR8h1XwxmxKgJC/u/tTXdHbGVm2OeLMWUbRAWzYCVzEo985qTH5in6A9CykciU7XeiTtqxX03x4mk1sLF3+U9dA24swt/DK4D3t/2r2Q4D0Fp/JsKvIhoRo8gn+LP08xgxEFxK9cUlDf69nQAN1enNJ4669U3PfQg2NpENgv+rGH0vyddZIEfKjZIfZQmMdrWK0wZtPnWIdZ/MdWWnfhYTtIfpjrb3Zz5J1kw8wCrRW1yopxiNT8LGySUeat3HBdNsDzjIo4kCxtKPzq4uc5ceOlBllmIMx5vvkZ8LOb8CnvNfvPOwf+UsBrHrRAfQjaFtJN4BL+cLryHA==
- Authentication-results-original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com;
- Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Volodymyr Babchuk <volodymyr_babchuk@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>
- Delivery-date: Wed, 11 Feb 2026 11:44:01 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Nodisclaimer: true
- Thread-index: AQHclTUyA7I1agGV+UuUfDON72XmkbV9Uj2AgAAaYQA=
- Thread-topic: [PATCH 11/12] xen/arm: ffa: Add MEM_SHARE page diagnostics
Hi Jens,
> On 11 Feb 2026, at 11:08, Jens Wiklander <jens.wiklander@xxxxxxxxxx> wrote:
>
> Hi Bertrand,
>
> On Tue, Feb 3, 2026 at 6:38 PM Bertrand Marquis
> <bertrand.marquis@xxxxxxx> wrote:
>>
>> MEM_SHARE failures in get_shm_pages() are silent, which makes malformed
>> ranges and page mapping failures hard to diagnose.
>>
>> Add debug logging for page validation failures:
>> - descriptor validation failures (unaligned, range short/overflow)
>> - per-page mapping failures (unmapped GFN, wrong p2m type)
>> - address overflow detection in range walks
>>
>> Ratelimit temporary reclaim failures and log permanent reclaim failures
>> as errors.
>>
>> No functional changes.
>>
>> Signed-off-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
>> ---
>> xen/arch/arm/tee/ffa_shm.c | 73 ++++++++++++++++++++++++++++++++------
>> 1 file changed, 63 insertions(+), 10 deletions(-)
>>
>> diff --git a/xen/arch/arm/tee/ffa_shm.c b/xen/arch/arm/tee/ffa_shm.c
>> index 905a64e3db01..89161753e922 100644
>> --- a/xen/arch/arm/tee/ffa_shm.c
>> +++ b/xen/arch/arm/tee/ffa_shm.c
>> @@ -169,6 +169,12 @@ static int32_t get_shm_pages(struct domain *d, struct
>> ffa_shm_mem *shm,
>> uint64_t addr;
>> uint64_t page_count;
>> uint64_t gaddr;
>> + int32_t ret = FFA_RET_OK;
>> + const char *reason = NULL;
>> + unsigned int bad_rg = 0;
>> + unsigned int bad_pg = 0;
>> + unsigned long bad_addr = 0;
>> + p2m_type_t bad_t = p2m_invalid;
>>
>> for ( n = 0; n < range_count; n++ )
>> {
>> @@ -176,34 +182,78 @@ static int32_t get_shm_pages(struct domain *d, struct
>> ffa_shm_mem *shm,
>> addr = ACCESS_ONCE(range[n].address);
>>
>> if ( !IS_ALIGNED(addr, FFA_PAGE_SIZE) )
>> - return FFA_RET_INVALID_PARAMETERS;
>> + {
>> + ret = FFA_RET_INVALID_PARAMETERS;
>> + reason = "unaligned";
>> + bad_rg = n;
>> + bad_addr = (unsigned long)addr;
>> + goto out;
>
> The extra help variables clutter the code, and the debug message
> requires one to read the code to understand it. I'd prefer separate
> prints for each error location. For example:
> gdprintk(XENLOG_DEBUG, "ffa: mem share pages invalid: unalinged range
> %u address %#lx\n", ...)
> return FFA_RET_INVALID_PARAMETERS;
>
> It should result in fewer lines of code and clearer debug messages.
Yes you are right, single prints on each case will be easier to find and
result in less code. This was a bit useless.
I will rework it like that in v2 which will also remove to goto :-)
Cheers
Bertrand
|