Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp5665022pxv; Wed, 28 Jul 2021 16:55:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxj1EzJbjlXr8LP0vVXPDk077PqwxCDesyrcKralApgxknRtFzx5qbS4TrYsXwLRGcKNINp X-Received: by 2002:a17:906:76c1:: with SMTP id q1mr1946228ejn.156.1627516554593; Wed, 28 Jul 2021 16:55:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627516554; cv=none; d=google.com; s=arc-20160816; b=echdlE3Cp13ttLlzD9NYWrv+j0PSbTobyV86NUEbEKy1admVpXI+MjK/78zyWHP+N4 qj/V45w+LjD8v9HjFCqmLJh/vWBwFGBohkxSmHTCIetjTMMmcRcbxI2sSp9rT3NDsrqm TKRI5ifc5edsAQyTmIOYTcyBVTfcVVG7+EHLusk6vkQjJBmUQXVVvaK7tmuujVsvsANg eyjh/vNb3QtxfU0lgVN4sLFkhqG2y+EAM/xPqJu+DUnQDw5t1ZzIbT4+pEx82bwfi/F8 dEDg0K3Nt7DDVbKrjWwUrwdAP1dN3Xfu4T+fpX/PlYk8FJ4lOU6+d5s1KzLXNFZeufoO s4YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:reply-to:dkim-signature; bh=1h6+SGK2Sn0dPBpEs5XgMlwlQ2+yF6kyESThFa4UTD8=; b=f7UrZGN3WsNO8DMGn6ea7Ws1BO9KAdftXOxihcRWBhUyWPhIL2AuxwcXS6RTBwyNUS 2RDq0DrZ8sp6KhOfk9GUOzIW0Q2nICnDAyQbL+fyy2e/qjFtRIWGvUUaihCEGtKgiaqY WUBIVTlm+c+BnSbjWPkd+0pTbmw6GDn5BfVQ5siEeSgYiNixUzs8bl77Bcnymf4TP5N/ GkgfoRsHu4qOh+hSp6nghgHp3kaxKOzeHYOe5OpBq3yOYWSqAux+N/CkTrFmsER5nPr9 4HWOjnL34VDRkX3eYiOGdgKeZeRZkVrd+N9gJl/oV6tbWKKeIqrv5V4y9UffnWbJ2ZWk Lc+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=R1HsExfc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f12si1132088edl.0.2021.07.28.16.55.31; Wed, 28 Jul 2021 16:55:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=R1HsExfc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232769AbhG1XyH (ORCPT + 99 others); Wed, 28 Jul 2021 19:54:07 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:40248 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232609AbhG1XyG (ORCPT ); Wed, 28 Jul 2021 19:54:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1627516443; h=from:from:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1h6+SGK2Sn0dPBpEs5XgMlwlQ2+yF6kyESThFa4UTD8=; b=R1HsExfcL9sgmzLY368m0/gVBm6lJRKcoEX7tqQ/F0XG4FZNJu0V2eaBnx5Mb9rAc/VV3j zpYWa/tOTQfDOjqekGHuwLPPtnJpuIJXsjE8bcp8kksJEpVPKG0WPDq7aOM6GNsAul+Vir z0In9pXe3fIhPVgk6cttqOZxOftXvYE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-540-aN550gYzOSiH0LMnfBhrdA-1; Wed, 28 Jul 2021 19:53:59 -0400 X-MC-Unique: aN550gYzOSiH0LMnfBhrdA-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id F403C101C8B9; Wed, 28 Jul 2021 23:53:57 +0000 (UTC) Received: from [10.64.54.184] (vpn2-54-184.bne.redhat.com [10.64.54.184]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1471569CBA; Wed, 28 Jul 2021 23:53:52 +0000 (UTC) Reply-To: Gavin Shan Subject: Re: [PATCH v4 06/12] mm/debug_vm_pgtable: Use struct pgtable_debug_args in migration and thp tests To: Anshuman Khandual , linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, gerald.schaefer@linux.ibm.com, aneesh.kumar@linux.ibm.com, christophe.leroy@csgroup.eu, cai@lca.pw, catalin.marinas@arm.com, will@kernel.org, akpm@linux-foundation.org, chuhu@redhat.com, shan.gavin@gmail.com References: <20210727061401.592616-1-gshan@redhat.com> <20210727061401.592616-7-gshan@redhat.com> <39de75d2-744a-9194-cbc2-14926b60e68e@arm.com> From: Gavin Shan Message-ID: <7205bb91-4940-e625-1641-210a6ee767c8@redhat.com> Date: Thu, 29 Jul 2021 09:54:06 +1000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0 MIME-Version: 1.0 In-Reply-To: <39de75d2-744a-9194-cbc2-14926b60e68e@arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Anshuman, On 7/28/21 9:08 PM, Anshuman Khandual wrote: > On 7/27/21 11:43 AM, Gavin Shan wrote: >> This uses struct pgtable_debug_args in the migration and thp test >> functions. It's notable that the pre-allocated page is used in >> swap_migration_tests() as set_pte_at() is used there. >> >> Signed-off-by: Gavin Shan >> --- >> mm/debug_vm_pgtable.c | 28 ++++++++++++++-------------- >> 1 file changed, 14 insertions(+), 14 deletions(-) >> >> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c >> index bc153cad9045..9136195efde3 100644 >> --- a/mm/debug_vm_pgtable.c >> +++ b/mm/debug_vm_pgtable.c >> @@ -845,7 +845,7 @@ static void __init pmd_swap_tests(struct pgtable_debug_args *args) >> static void __init pmd_swap_tests(struct pgtable_debug_args *args) { } >> #endif /* CONFIG_ARCH_ENABLE_THP_MIGRATION */ >> >> -static void __init swap_migration_tests(void) >> +static void __init swap_migration_tests(struct pgtable_debug_args *args) >> { >> struct page *page; >> swp_entry_t swp; >> @@ -861,9 +861,10 @@ static void __init swap_migration_tests(void) >> * problematic. Lets allocate a dedicated page explicitly for this >> * purpose that will be freed subsequently. >> */ >> - page = alloc_page(GFP_KERNEL); >> + page = (args->pte_pfn != ULONG_MAX) ? >> + pfn_to_page(args->pte_pfn) : NULL; >> if (!page) { >> - pr_err("page allocation failed\n"); >> + pr_err("no page available\n"); >> return; >> } > > Please check for a valid page earlier in the function and return. Otherwise > this calls out the page unavailability (after starting the test), which is > inconsistent with all other functions like pxx_advanced_tests(). > > [ 1.051633] debug_vm_pgtable: [pte_swap_tests ]: Validating PTE swap > [ 1.052697] debug_vm_pgtable: [pmd_swap_tests ]: Validating PMD swap > [ 1.053765] debug_vm_pgtable: [swap_migration_tests ]: Validating swap migration <===== > [ 1.054900] debug_vm_pgtable: [swap_migration_tests ]: no page available <===== > > Should do this just before pr_info("Validating swap migration\n"). > > ...... > page = (args->pte_pfn != ULONG_MAX) ? pfn_to_page(args->pte_pfn) : NULL; > if (!page) > return; > ..... > Yes. The order of error messages are sticky to original implementation, but it'd better to be consistent with the new order we have in this series. I will adjust in v5. Thanks, Gavin