Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp781473ybi; Fri, 24 May 2019 11:19:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqz5+L3BlWRzaN/iJsKWxIXr0r27fD2N+BZJ7OU7TFQSgrPCk25a8SsDvCXtKXW6qZuV7vDq X-Received: by 2002:a63:e94e:: with SMTP id q14mr106826099pgj.110.1558721958001; Fri, 24 May 2019 11:19:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558721957; cv=none; d=google.com; s=arc-20160816; b=yOaEJWnup4kXWZis8Vdt9Cveo356tAhQVD1hxePrxPAFXOU06T6jPb+mT7IglrTeBz PbrCWrXAy7SdUOGwxMiiwYyE2+DnYQc5z+CHxXkiYDaazck+TaJ96N6+i5nUTjXcFF49 YYLAD0FB7NZCC1bd4Aul1TXUf7w6VwFYlVVkxr9c2eHRvhiuYXzyB9nzCTzqdTgKt3Co igSknu6sbq1ZR+Ia62faobekDj5DbYjA45vxN5TcVSX7xq3gasFs6DSSJ60CgkIavkLN AY9WuplkEYawrGtyrjxvEf0Gtcsua734OKz245aahxHiOMPCwCPa8UyNB41O2XuBrThK tytg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:autocrypt:openpgp:from:references:cc:to :subject; bh=pHOBW9AisKlHSuK9gYmic5eGb43/cVlQeNln/iPtXSE=; b=B642rkQG+VucwTJghwVBOZw5CGacqNbphvZAQzDQmPzcmZuY8VyzNx8qwQMj/VQOhH utG87Ba7EQ2I9WIZxlPPBfMZGTv2ChuaeyZZRQ4Pb/SATag4eANGyyLtbe8sxr9e13/c 3S1kcUnDMlIiKOkSHVyQG9Ws/7/6IATXZD4axRQa4i/CTU/6Y+zz6VTHn9f8Los3ppz7 wqCurBJpIFRe12w49oF1wUTce9yscZ0nWmREkYnA7ra4p7+WfzZJBEf9n7ozjvVKY7zl EChI94ehX5xwCi3z4IVBE+NShE6T6KZrgpYsGxFiKrkqHid3MENmTDz1E0KrkMxR2thc q4Ag== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id cp14si5319809plb.183.2019.05.24.11.19.03; Fri, 24 May 2019 11:19:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732142AbfEXSRw (ORCPT + 99 others); Fri, 24 May 2019 14:17:52 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40232 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732122AbfEXSRu (ORCPT ); Fri, 24 May 2019 14:17:50 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B54CB308219F; Fri, 24 May 2019 18:17:50 +0000 (UTC) Received: from thuth.remote.csb (ovpn-116-18.ams2.redhat.com [10.36.116.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id B0B645C207; Fri, 24 May 2019 18:17:44 +0000 (UTC) Subject: Re: [PATCH 5/9] KVM: selftests: Align memory region addresses to 1M on s390x To: Christian Borntraeger , Andrew Jones Cc: Janosch Frank , kvm@vger.kernel.org, Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Shuah Khan , David Hildenbrand , Cornelia Huck , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-s390@vger.kernel.org References: <20190523164309.13345-1-thuth@redhat.com> <20190523164309.13345-6-thuth@redhat.com> <20190523174028.3giefzff3l5eclki@kamzik.brq.redhat.com> <7919d65e-d814-9e68-4df0-d12f43f0b984@de.ibm.com> From: Thomas Huth Openpgp: preference=signencrypt Autocrypt: addr=thuth@redhat.com; keydata= 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 Organization: Red Hat Message-ID: <54f10713-002b-515c-e40f-5e64996b8f6f@redhat.com> Date: Fri, 24 May 2019 20:17:43 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <7919d65e-d814-9e68-4df0-d12f43f0b984@de.ibm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.47]); Fri, 24 May 2019 18:17:50 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 24/05/2019 10.29, Christian Borntraeger wrote: > > > On 23.05.19 19:40, Andrew Jones wrote: >> On Thu, May 23, 2019 at 06:43:05PM +0200, Thomas Huth wrote: >>> On s390x, there is a constraint that memory regions have to be aligned >>> to 1M (or running the VM will fail). Introduce a new "alignment" variable >>> in the vm_userspace_mem_region_add() function which now can be used for >>> both, huge page and s390x alignment requirements. >>> >>> Signed-off-by: Thomas Huth >>> --- >>> tools/testing/selftests/kvm/lib/kvm_util.c | 21 ++++++++++++++++----- >>> 1 file changed, 16 insertions(+), 5 deletions(-) >>> >>> diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c >>> index 08edb8436c47..656df9d5cd4d 100644 >>> --- a/tools/testing/selftests/kvm/lib/kvm_util.c >>> +++ b/tools/testing/selftests/kvm/lib/kvm_util.c >>> @@ -559,6 +559,7 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, >>> unsigned long pmem_size = 0; >>> struct userspace_mem_region *region; >>> size_t huge_page_size = KVM_UTIL_PGS_PER_HUGEPG * vm->page_size; >>> + size_t alignment; >>> >>> TEST_ASSERT((guest_paddr % vm->page_size) == 0, "Guest physical " >>> "address not on a page boundary.\n" >>> @@ -608,9 +609,20 @@ void vm_userspace_mem_region_add(struct kvm_vm *vm, >>> TEST_ASSERT(region != NULL, "Insufficient Memory"); >>> region->mmap_size = npages * vm->page_size; >>> >>> - /* Enough memory to align up to a huge page. */ >>> +#ifdef __s390x__ >>> + /* On s390x, the host address must be aligned to 1M (due to PGSTEs) */ >>> + alignment = 0x100000; >>> +#else >>> + alignment = 1; >>> +#endif >>> + >>> if (src_type == VM_MEM_SRC_ANONYMOUS_THP) >>> - region->mmap_size += huge_page_size; >>> + alignment = huge_page_size; >> >> I guess s390x won't ever support VM_MEM_SRC_ANONYMOUS_THP? If it does, >> then we need 'alignment = max(huge_page_size, alignment)'. Actually >> that might be a nice way to write this anyway for future-proofing. > > I can do > - alignment = huge_page_size; > + alignment = max(huge_page_size, alignment); > > when applying. Yes, please, that's certainly cleaner this way. Thanks, Thomas