Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp1736695pxb; Thu, 14 Apr 2022 12:52:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz9O2Fq1Ej3PP6Q/0TfLQSclJVcO1toMbFtYgCz2CcEkvgrtMyc/MLmnI7q6eazhst358Ts X-Received: by 2002:a05:6402:1e90:b0:419:4cdc:8b05 with SMTP id f16-20020a0564021e9000b004194cdc8b05mr4789812edf.211.1649965930875; Thu, 14 Apr 2022 12:52:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649965930; cv=none; d=google.com; s=arc-20160816; b=UxbJ2tWrzWq1Wzu8qgM/XxEbSmK++iUE9QK/VpnAAJ3JwNu6duLG4BA6lDdBnETLcX u0Z40sCYawXhdiQXq+wzfww0KG9KQT4ASk+aFqJ6e0e0Pk08sbJP48tUYwH8ey3e3Mhv 0EKJ8lKmjNMW+HQyyTaQkfWxW0WrA7bM9TmDCZP6v0wWb0unxS9YD4ugRIVlS/j8Mbb4 h+bfAxQaF8c6nOUWTlz6kyry95BjMFxmYZkjaHbC44SX+NuAbemRc90hue/TBfOkZ3fC pgy5Lq0/oYnNrLPlVnw+epe1cWwo3e7GCR654rbCwD5NggNZimHYKXaA1ZE5ZXx9LfzP N/rg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=ipdLR9D3/YHkROrPusy96LZmG+ZMYEbsweiplBcf04I=; b=j8cMdlRgZoSW3k9N5q3rP7CLfxqCvHDlMrW3KKZ87MCHkdoPZ5ewRGf9zWXa/qLBbO KaIb9/aMO/K0zRLTxTsoH0eTGbMzvKBOJgc4qStMsZAKidcvObfStwle1MiKgaOuwcwP AK30ygGNg1KsEzVLAnjwXDNfOexI81Xu1l16wEVfki6BhBInoP9mbv7QNcdof42FfELo hZlC1aC+86xFQ/W9drtrc20XqI8Gck8axaIpL1v+5E8l5V1761E8cwVPz4Bx2AF591QG WlhzcgAoD6TRZmGqkaylaq1lp4U+vX8VcNasRqrFIVY+40z6UXCHUkZyWRqBI5ZfadzG v7jA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=bdBkEA0G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l14-20020a056402254e00b00418f0a48a03si4665055edb.257.2022.04.14.12.51.45; Thu, 14 Apr 2022 12:52:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=bdBkEA0G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S239343AbiDNBJd (ORCPT + 99 others); Wed, 13 Apr 2022 21:09:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41054 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229759AbiDNBJc (ORCPT ); Wed, 13 Apr 2022 21:09:32 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D39CA51E41 for ; Wed, 13 Apr 2022 18:07:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649898428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=ipdLR9D3/YHkROrPusy96LZmG+ZMYEbsweiplBcf04I=; b=bdBkEA0GBfq4DcsNvClDvAuXFKNtb5b7JdaaOpPRye4lkD3m7Uda+yWBKo/sbuF1bQPdoJ IkVI6NWZwsNxRLVloLFMrLTsNPCbrkczQ1sVqcQnkRxoX1qYyvRxK36mc7kStT2VgR++iO bbkCOKsxBZzGbs2slYuNlHksIyRPThg= Received: from mail-il1-f200.google.com (mail-il1-f200.google.com [209.85.166.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-529-V4vvXB0iOViff2H9bojB4g-1; Wed, 13 Apr 2022 21:07:07 -0400 X-MC-Unique: V4vvXB0iOViff2H9bojB4g-1 Received: by mail-il1-f200.google.com with SMTP id m3-20020a056e02158300b002b6e3d1f97cso2180258ilu.19 for ; Wed, 13 Apr 2022 18:07:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ipdLR9D3/YHkROrPusy96LZmG+ZMYEbsweiplBcf04I=; b=IssVVlPflCx081z1cyBqVGlE0VCjdsgQa0juGsVtgUX3hNvZfFkbvtTBI9Itw1PPtX PzKdB4gRoivXhX9XS5H3m7iB7sW04cpOlYko3g1ahD6gdAlZY6UBIB9/0NcFR4VnurvW KTJiwUqm+rNqLD/hIhlEpBVW+a7Ivsa8+trZwzz1a5gLN6rMteYf3SfKviLtoMp6jGUi 3I9rmjDUl0WY5DoPb90JU/cJA93fjXEqmZfrCk2+OX6+FDGEJn+1cVynx0rypik5BClB Rx5gdK3pg06kcq85ogEz4DOmInO3PvPq4uvjZJlnMOgpEmFJie8ZlOfx6fbJa/FPd0J2 PojQ== X-Gm-Message-State: AOAM533/qfF+N3eRY0SL5bB0JDOSwDKJXnKUML6HFuN9hsLPespN9PzF d5a5CawnamLAd+tR/BoJ14dhF3Hl2tYhE1GnhGOneNGNlOtto9qpMUG+rhCMTIzwSgSSgo5yBr/ xprKtP5ov7nc6GUisjQ0LzqcU X-Received: by 2002:a05:6602:2aca:b0:646:a866:9fd4 with SMTP id m10-20020a0566022aca00b00646a8669fd4mr180446iov.92.1649898426195; Wed, 13 Apr 2022 18:07:06 -0700 (PDT) X-Received: by 2002:a05:6602:2aca:b0:646:a866:9fd4 with SMTP id m10-20020a0566022aca00b00646a8669fd4mr180426iov.92.1649898425812; Wed, 13 Apr 2022 18:07:05 -0700 (PDT) Received: from localhost.localdomain (cpec09435e3e0ee-cmc09435e3e0ec.cpe.net.cable.rogers.com. [99.241.198.116]) by smtp.gmail.com with ESMTPSA id a15-20020a92ce4f000000b002cbdcef5a76sm259749ilr.84.2022.04.13.18.07.04 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 13 Apr 2022 18:07:05 -0700 (PDT) From: Peter Xu To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Ben Gardon , Paolo Bonzini , David Matlack , peterx@redhat.com, Sean Christopherson , Andrew Jones Subject: [PATCH] kvm: selftests: Fix cut-off of addr_gva2gpa lookup Date: Wed, 13 Apr 2022 21:07:03 -0400 Message-Id: <20220414010703.72683-1-peterx@redhat.com> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Our QE team reported test failure on access_tracking_perf_test: Testing guest mode: PA-bits:ANY, VA-bits:48, 4K pages guest physical test memory offset: 0x3fffbffff000 Populating memory : 0.684014577s Writing to populated memory : 0.006230175s Reading from populated memory : 0.004557805s ==== Test Assertion Failure ==== lib/kvm_util.c:1411: false pid=125806 tid=125809 errno=4 - Interrupted system call 1 0x0000000000402f7c: addr_gpa2hva at kvm_util.c:1411 2 (inlined by) addr_gpa2hva at kvm_util.c:1405 3 0x0000000000401f52: lookup_pfn at access_tracking_perf_test.c:98 4 (inlined by) mark_vcpu_memory_idle at access_tracking_perf_test.c:152 5 (inlined by) vcpu_thread_main at access_tracking_perf_test.c:232 6 0x00007fefe9ff81ce: ?? ??:0 7 0x00007fefe9c64d82: ?? ??:0 No vm physical memory at 0xffbffff000 And I can easily reproduce it with a Intel(R) Xeon(R) CPU E5-2630 with 46 bits PA. It turns out that the address translation for clearing idle page tracking returned wrong result, in which addr_gva2gpa()'s last step should have treated "pte[index[0]].pfn" to be a 32bit value. In above case the GPA address 0x3fffbffff000 got cut-off into 0xffbffff000, then it caused further lookup failure in the gpa2hva mapping. I didn't yet check any other test that may fail too on some hosts, but logically any test using addr_gva2gpa() could suffer. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2075036 Signed-off-by: Peter Xu --- tools/testing/selftests/kvm/lib/x86_64/processor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/kvm/lib/x86_64/processor.c b/tools/testing/selftests/kvm/lib/x86_64/processor.c index 9f000dfb5594..6c356fb4a9bf 100644 --- a/tools/testing/selftests/kvm/lib/x86_64/processor.c +++ b/tools/testing/selftests/kvm/lib/x86_64/processor.c @@ -587,7 +587,7 @@ vm_paddr_t addr_gva2gpa(struct kvm_vm *vm, vm_vaddr_t gva) if (!pte[index[0]].present) goto unmapped_gva; - return (pte[index[0]].pfn * vm->page_size) + (gva & 0xfffu); + return ((vm_paddr_t)pte[index[0]].pfn * vm->page_size) + (gva & 0xfffu); unmapped_gva: TEST_FAIL("No mapping for vm virtual address, gva: 0x%lx", gva); -- 2.32.0