From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7E789A0546; Tue, 6 Apr 2021 16:20:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1968C140FBA; Tue, 6 Apr 2021 16:20:48 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id D588E140FB8 for ; Tue, 6 Apr 2021 16:20:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1617718846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nzuSmTD8IkN3SCj/h7s8ZyvyHuZbtbWbK/zZicBqagk=; b=Imf3UPBoZtU50765Es8tu/tpLUfu/p/MR+6RXh9ZARRKek2eoxbApIMx2w/UDRULSIWlNb q9iFOvmuWmta4DwJZ+iSqsaw8n+np/fNpzCt4gj4JQ4LQUUjo+EGmDD+4JTbclnEJH0Hlu xBHowf14pELPCzDyGRrnNotdBcrHRlE= 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-40-HLNtJqGoP-aVGlwWysq-bA-1; Tue, 06 Apr 2021 10:20:44 -0400 X-MC-Unique: HLNtJqGoP-aVGlwWysq-bA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0D8D98026AD; Tue, 6 Apr 2021 14:20:43 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (ovpn-113-108.rdu2.redhat.com [10.10.113.108]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9536E610AF; Tue, 6 Apr 2021 14:20:38 +0000 (UTC) From: Aaron Conole To: Bruce Richardson Cc: Thomas Monjalon , dev@dpdk.org, David Marchand , anatoly.burakov@intel.com References: <20210317144409.288346-1-aconole@redhat.com> <2080877.JXBMkDg2Jp@thomas> <20210406125835.GB551@bricha3-MOBL.ger.corp.intel.com> Date: Tue, 06 Apr 2021 10:20:37 -0400 In-Reply-To: <20210406125835.GB551@bricha3-MOBL.ger.corp.intel.com> (Bruce Richardson's message of "Tue, 6 Apr 2021 13:58:35 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=aconole@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Subject: Re: [dpdk-dev] [PATCH] test: make hugepage check more robust under Linux X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Bruce Richardson writes: > On Tue, Apr 06, 2021 at 08:33:07AM -0400, Aaron Conole wrote: >> Thomas Monjalon writes: >> >> > 17/03/2021 15:44, Aaron Conole: >> >> The hugepage test really needs to check multiple things on Linux: >> >> >> >> 1. Are hugepages reserved in the system? >> >> >> >> 2. Is the hugepage mountpoint available so that we can allocate them? >> >> >> >> 3. Do we have permissions to write into the hugepage mountpoint? >> >> >> >> The existing hugepage check only verifies the first. On some setups, >> >> a non-root user won't have access to the mountpoint for hugepages to >> >> be allocated and that needs to be reflected in the test as well. Add >> >> such checks for Linux OS to give a more check when running test suites. >> > >> > Requirements 2 & 3 are optional. >> > You don't need a mount point if using the option --in-memory. >> >> That's true, but it seems to break a few of the unit tests without. >> I'll clarify the commit message. >> >> Additionally, I thought it would be simple to just incorporate your >> suggestions - but it seems that meson / ninja doesn't have cascading >> dependencies the way 'make' does (or, I haven't figured out from the >> syntax how to do that) - a 'run_command' gets resolved at configure >> time and it doesn't seem that we can make a run_target depend on another >> run_target since dependencies are on file outputs. Maybe we do some >> kind of trickery here where we write a file that the build script reads? >> >> I am trying to figure out how best to accomplish this - suggestions >> welcome. >> > Sorry that I'm late to this thread. Can you perhaps explain what you mean > by cascading dependencies in this instance, or what you are trying to do > exactly that is not supported? I want to conditionally invoke the test suite with the hugepage tests, and support the case that the machine has hugepages enabled, but not accessible. Right now, if a user runs: meson build && ninja -C build test with hugepages allocated as a non-root user, they will see 'FAIL' messages. This isn't very friendly, since the user would be confused. Right now, hugepage detection is done only at configure time (the 'meson' step), and then the target is always run. For now, I will continue modifying the below script, but that will be a detection at configure time, still. So the case where the user runs 'meson' when they have hugepages, but those hugepages go away and then they run 'ninja -C build test' will still be FAIL instead of SKIP (maybe we need a more descriptive error when FAIL due to hugepages happen?) > In terms of output files that build script reads, yes that is possible - > the file just needs to be in the standard .d format that gcc produces and > then ninja can use that to track file dependencies. The script > "call-sphinx-build.py" does this, for example, and doc/guides/meson.build > tells meson/ninja to look for dependencies in file ".html.d" generated by > that script. > > /Bruce