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

Re: [PATCH] page-alloc: fix initialization of cross-node regions


  • To: Jan Beulich <jbeulich@xxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • Date: Mon, 25 Jul 2022 18:54:37 +0000
  • Accept-language: en-GB, en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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=KT3b4QFAbJb7FmbVNKQ73N98HuLURsXs+2Cu0eGeDJQ=; b=mp8dscp/VkO6LM2Qpei9WM1cbUK3Ftqxf3bL9jgt0+K9Xd50UIZULzdcCYfgjd7lOgBrHayF8NGu48Vljae2T9PpQ/a0xz26M5YD+hxFfL8xRIvzEAQlvO6ANlskILOTNmnBule51Y5teybqNZTvbRB2ILkafGFE4yxDPqDFVEY1CZG019Y65FmGDfizfuiPNHpuBdqDqW67m5oIyAn5yf23m4vcRZEqbp/yP+q72VUZ9aVjYZlObyOntjvCuFQSKgdmQQOcPW0/vqgRKVakH0fO/EBJdQ/FqiinSDKa6tFbW/DOI48M7n7FRI2fVVKfiF9IiyEf7EhZrBDjedCsqg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CvSNpDXjK2iSH8bc/y4LHiHMzu5/XIYpU2UMpgGrt0hP1RJt3jp/E3QuHhN988jGCWyjiDrkboyv4YcxB9K1dRp4CHwjRp6qT9vfMqL/LirmJMDoTy3aiF7p6vst//zkjxWiwYvYATmN4bxmIqkNKxXAsXqpUzzQ+syR8uXdTvmhFN8kG+skQoBkpfIIKzGNGJgViR9tkJ1lQiXYOZoU3nAdjPC0/Ty+nIA7AsOqFv1tzxmBeD3tKGc/uDLE6V3566uSWRMpHbtDdOmrTQ4cfQyDGHDRDwe27fATZE+sMLyXxcCnTA1hauvsgub6QVCQBCwIvqQY7gzkeLYjgIYayA==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: George Dunlap <George.Dunlap@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, "Xia, Hongyan" <hongyxia@xxxxxxxxxx>
  • Delivery-date: Mon, 25 Jul 2022 18:54:58 +0000
  • Ironport-data: A9a23:UhCDeKJLwCxiQ+NyFE+RDZQlxSXFcZb7ZxGr2PjKsXjdYENS1mAFz mtMC2nVP/2Majf3KYtzbN+/8hkPsMTQm4RmGlZlqX01Q3x08seUXt7xwmUcns+xwm8vaGo9s q3yv/GZdJhcokf0/0vraP65xZVF/fngbqLmD+LZMTxGSwZhSSMw4TpugOd8iYNz6TSDK1rlV eja/ouOYzdJ5xYuajhOs/3Z9Us11BjPkGhwUmIWNKgjUGD2zxH5PLpHTYmtIn3xRJVjH+LSb 44vG5ngows1Vz90Yj+Uuu6Tnn8iG9Y+DiDX4pZiYICwgwAqm8AH+v1T2Mzwy6tgo27hc9hZk L2hvHErIOsjFvWkdO81C3G0H8ziVEHvFXCuzXWX6KSuI0P6n3TE+tg1F1EIYrEiyP9aXj8U7 uZHGBlVcUXW7w626OrTpuhEoO0GdJOuB6VG/3ZqwHfeEOosRo3FT+PS/9hE0Twsh8dIW/HDe 84ebjkpZxPFC/FNEg5PVNRiw6H12T+jKVW0q3rMzUYzy0HVwBZ8z/7GN93Nd8bRbc5UglyZt iTN+GGR7hQya4PHkGvaqi7EaunnpTreQKAYN5yCrL1pnVDO5mA3GQ9GfA7uyRW+ogvkMz5FE GQW8Cczqak59GSwU8LwGRa/pRasrhMaHtZdDeA+wAWM0bbPpRaUAHAeSTxMY8Bgs9U5LRQoy 1uIktXBFTFp9rqPRhq17ayIpDm/PSwUK24qZiIeSwYBpd75r+kbkRbnXttlVqmvgbXdGTb2z CGarSEWjrAan8kNka68+Dj6bymEo5HISksu4FzeWGugtll9fNT9O9bu7kXH5/FdKorfVkOGo HUPh8mZ6qYJEI2JkyuOBu4KGdlF+sq4DdEVunY3d7FJythn0yXLkVx4iN2mGHpUDw==
  • Ironport-hdrordr: A9a23:2rev/65J4NJAf+19sAPXwUKBI+orL9Y04lQ7vn2ZFiY5A6qlfp GV9oV96farsl1hPE3IwerwTZVohEmsvKKc4eEqTMqftXrdyR+VxeBZnOnfKljbdxEWmdQtpJ uIH5IOc+EYSGIK//oSgzPIUurIouP3gJxA7N22pxgCPGIaDtAYnn9E5x6gcnGeBjM2dqbRfK Dso/avzADQBUj/G/7LeEXtKNKz2OEj+qiWGyIuNloM7gSDsC2vrJr3CQKR0Bs/flp0sPQf2F mAuQr16pi8tcihzBXRzXXe4v1t6ZncI+94dYixY4UuW2/RYsnBXvUuZ5Sy+BQO5M2/4lcjl9 fB5z8mIsRI8nvUOlq4pBP8sjOQnQrHvxXZqGOwsD/Gm4jUVTg6A81OicZyaR3C8Xctu9l6ze Ziw3+Zn4A/N2KSoA3No/zzEz16nEu9pnQv1cQJiWZEbIcYYLhN6aQC4UJuFosaFi6S0vF2LA BXNrCP2B9qSyLFU5mZhBgx/DWUZAVuIv5SeDlShiSXuwIm1kyRgXFohL1Lop/HnKhNDKWsrN 60RZiAr4s+BvP/t8pGdb48qPuMeyrwqFr3QRSvyHTcZfk60iH22sXKCENc3pDkRHT+pKFC1K gpFmko6FLaU3ieQvGz4A==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHYoCf56rW3CCsK5U6FSVvXkA9srq2Pb6mA
  • Thread-topic: [PATCH] page-alloc: fix initialization of cross-node regions

On 25/07/2022 14:10, Jan Beulich wrote:
> Quite obviously to determine the split condition successive pages'
> attributes need to be evaluated, not always those of the initial page.
>
> Fixes: 72b02bc75b47 ("xen/heap: pass order to free_heap_pages() in heap init")
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> ---
> Part of the problem was already introduced in 24a53060bd37 ("xen/heap:
> Split init_heap_pages() in two"), but there it was still benign.

This also fixes the crash that XenRT found on loads of hardware, which
looks something like:

(XEN) NUMA: Allocated memnodemap from 105bc81000 - 105bc92000
(XEN) NUMA: Using 8 for the hash shift.
(XEN) Early fatal page fault at e008:ffff82d04022ae1e
(cr2=00000000000000b8, ec=0002)
(XEN) ----[ Xen-4.17.0  x86_64  debug=y  Not tainted ]----
(XEN) CPU:    0
(XEN) RIP:    e008:[<ffff82d04022ae1e>]
common/page_alloc.c#free_heap_pages+0x2dd/0x850
...
(XEN) Xen call trace:
(XEN)    [<ffff82d04022ae1e>] R
common/page_alloc.c#free_heap_pages+0x2dd/0x850
(XEN)    [<ffff82d04022dd64>] F
common/page_alloc.c#init_heap_pages+0x55f/0x720
(XEN)    [<ffff82d040415234>] F end_boot_allocator+0x187/0x1e7
(XEN)    [<ffff82d040452337>] F __start_xen+0x1a06/0x2779
(XEN)    [<ffff82d040204344>] F __high_start+0x94/0xa0

Debugging shows that it's always a block which crosses node 0 and 1,
where avail[1] has yet to be initialised.

What I'm confused by is how this manages to manifest broken swiotlb
issues without Xen crashing.

~Andrew

 


Rackspace

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