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

Re: [PATCH 6/7] xen/arm: Implement the logic for static shared memory from Xen heap


  • To: Luca Fancellu <luca.fancellu@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Fri, 10 May 2024 11:17:23 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=arm.com 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 (0)
  • 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=Lj+U8YqWUH/kMLeIlkE57KNm9IA8QVsOtwHc4YUjnbc=; b=Q9EvgGhsJ+koIWWVzLR7f2WA3SywTeZwOyzb5vYC2UeKGN7PouJaxwGv4Ai6EiR07u513OkDsRVaz4SN0duV5S6dlCRyzhwVDamI9u9tdVK/0q5K89SC5YWDOhdUHqNGP5AGv+5mJ0WABNLKhiiZCOg/k5AiCkmcuqZJ1T8WLkCaNohrRZn95yCfHeaZpDLMy+U4tNMnOTTedt8wsbCUIUP02NCQyI7EMFBSmDcT9KRW+o/dDXKhO7R9AbUMsgx9wHbHUohbdl8mfSHY/OQcllvy1uIUB92W0E8RCzVpyrz/AFs7YT8TRPqKb6bQIV0nO0hKVrjBXqT/vVfWSBJvLQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AHTSkPXUlMFH8qve5zWU2dBDrvX11MwR2iGINpbw4HPzOwiIQnt6E+BH6cXIKEzDF57WSvyE0HBJdnEwLWmueH/Om+25w08SBSuVvBlHNIJIeNH8v4wlwgacrFNq352zuje4GvtUkTW7vTvXyEBjL0Pp8fIRuOXfsqg/v0PqC6USc1npWE7SLr+/pJf2SWGIBekTzi+VjcotKGqfaV7e7K9X+yxJQdpLPCj3bu3Y9bHUtuw7Mcx6HK30SxoJFynjU9+08IyGJ4zZJvlcmlIY/tt08hhvPHBPwMsYJyHtUFAgYjjVIs8nmh8rD7VzjbK6ioH7D9mVfvz4Lz3D3LYlSg==
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Volodymyr Babchuk <Volodymyr_Babchuk@xxxxxxxx>
  • Delivery-date: Fri, 10 May 2024 09:17:39 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Luca,

On 23/04/2024 10:25, Luca Fancellu wrote:
> 
> 
> This commit implements the logic to have the static shared memory banks
> from the Xen heap instead of having the host physical address passed from
> the user.
> 
> When the host physical address is not supplied, the physical memory is
> taken from the Xen heap using allocate_domheap_memory, the allocation
> needs to occur at the first handled DT node and the allocated banks
> need to be saved somewhere, so introduce the 'shm_heap_banks' static
> global variable of type 'struct meminfo' that will hold the banks
> allocated from the heap, its field .shmem_extra will be used to point
> to the bootinfo shared memory banks .shmem_extra space, so that there
> is not further allocation of memory and every bank in shm_heap_banks
> can be safely identified by the shm_id to reconstruct its traceability
> and if it was allocated or not.
> 
> A search into 'shm_heap_banks' will reveal if the banks were allocated
> or not, in case the host address is not passed, and the callback given
> to allocate_domheap_memory will store the banks in the structure and
> map them to the current domain, to do that, some changes to
> acquire_shared_memory_bank are made to let it differentiate if the bank
> is from the heap and if it is, then assign_pages is called for every
> bank.
> 
> When the bank is already allocated, for every bank allocated with the
> corresponding shm_id, handle_shared_mem_bank is called and the mapping
> are done.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx>

I tested this patch and it resulted in assertion:
Assertion 's <= e' failed at common/rangeset.c:189

I checked and in find_unallocated_memory(), given that start is ~0UL (host 
address not provided),
start + size would overflow. Did you test this patch?

~Michal



 


Rackspace

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