Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp789057ybh; Wed, 11 Mar 2020 10:50:24 -0700 (PDT) X-Google-Smtp-Source: ADFU+vt9y5UASNZFc8FXqmLGC5eEHFFmK2v5Mfr/qheB24bo4M9tJSH+8jPCcko8gA2TXLtz+ru1 X-Received: by 2002:a9d:638a:: with SMTP id w10mr3394146otk.103.1583949024152; Wed, 11 Mar 2020 10:50:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583949024; cv=none; d=google.com; s=arc-20160816; b=QER+H7Bdlyfaz0/yAVeBzwhZJPVmTUs9RD9dvL6t8lrsht6Fwh9DYHm3qmcRFZ8KJs 7t2tjlmgeLecvZ0Yn25cUhNZ+b/bXAUlMOk7fFfCQMwHhkwU5/oPTwb1n4EC1WKTkFjI Bjn+AXh/3OHSyrE3PozQ6x1ho2awVT/V+rBLfSLeDyTSN/mPTJapapgGhoS01CKgtiZV PfVZ9CYZ6ZOGb75Hmi83yfTpOLPnXft8WjMgGG82GuZsncSvF17lK9U8muGIC1G5CKHL pS5QxXj9vVOWB+ZzLCAD4w3t+kxvDuJqF98FDLR9Q+kLeo5IVldZvFZqnMaBKS+cuQux 9ijg== 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:mime-version :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id; bh=hXUe9mpVxe7nh2Bzj3hxM4uSlsUs4RUsxvuqgdJ+SkA=; b=Ezxhuvxqx8g4nr1LSCKoYADvbwnPM+dBGZi/nolCkwWmUZRU77LKh62q88ZDv2i9G7 bw8x9F7MTdeK3OO4kts9hN4cAh3cQVIAb46zz/1ABZEnAer1yVH8YcapWqE0pUnq0Iu8 UUdBOnNR6kg31wjQnpD2q9RVa+1oOFbEvaEFBL6rkP9VCMF5rhakvL4/c7PkSup467Sq cARWRvhoGWeRvnwaljfFBM5r6qzmTGvEdA9B72SuhR6zMhN/yyHRWkMwXajNi2XTLQyB RJbR1dhlIwD73LEZQvgCUYx0DAr9PKlAeDmwMIi3AZtXvyDnt1+WtrvU0MUV497BXfS7 juFw== 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=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r3si1517843otn.55.2020.03.11.10.50.12; Wed, 11 Mar 2020 10:50:24 -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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730502AbgCKRty (ORCPT + 99 others); Wed, 11 Mar 2020 13:49:54 -0400 Received: from mga01.intel.com ([192.55.52.88]:20305 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730363AbgCKRty (ORCPT ); Wed, 11 Mar 2020 13:49:54 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Mar 2020 10:49:53 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,541,1574150400"; d="scan'208";a="353932452" Received: from sai-dev-mach.sc.intel.com ([143.183.140.153]) by fmsmga001.fm.intel.com with ESMTP; 11 Mar 2020 10:49:53 -0700 Message-ID: <588d18133c0ad76b375a920b6e6cc1598564163a.camel@intel.com> Subject: Re: [PATCH V1 09/13] selftests/resctrl: Modularize fill_buf for new CAT test case From: Sai Praneeth Prakhya To: Reinette Chatre , shuah@kernel.org, linux-kselftest@vger.kernel.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, tony.luck@intel.com, babu.moger@amd.com, james.morse@arm.com, ravi.v.shankar@intel.com, fenghua.yu@intel.com, x86@kernel.org, linux-kernel@vger.kernel.org Date: Wed, 11 Mar 2020 10:45:07 -0700 In-Reply-To: <50cb755f-e112-5d71-11fa-a7cbc951d91e@intel.com> References: <43b368952bb006ee973311d9c9ae0eb53d8e7f60.1583657204.git.sai.praneeth.prakhya@intel.com> <4c84be1d-8839-2c85-b294-7e3c454240bb@intel.com> <7a1f93d4516a7de99c5dbc4afd6279d6fe7aa126.camel@intel.com> <50cb755f-e112-5d71-11fa-a7cbc951d91e@intel.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.30.5-0ubuntu0.18.10.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Reinette, On Wed, 2020-03-11 at 08:44 -0700, Reinette Chatre wrote: > Hi Sai, > > On 3/10/2020 6:04 PM, Sai Praneeth Prakhya wrote: > > On Tue, 2020-03-10 at 14:59 -0700, Reinette Chatre wrote: > > > On 3/6/2020 7:40 PM, Sai Praneeth Prakhya wrote: > > > > Currently fill_buf (in-built benchmark) runs as a separate process a > > > > > > > [SNIP] > > > Should buffer be freed on this error path? > > > > Yes, that's right.. my bad. Will fix it. But the right fix is, > > use_buffer_forever() should not return at all. It's meant to loop around > > the > > buffer _forever_. > > > > > I think the asymmetrical nature of the memory allocation and release > > > creates traps like this. > > > > > > It may be less error prone to have the pointer returned by init_buffer > > > and the acted on and released within fill_cache(), passed to > > > "use_buffer_forever()" as a parameter. The buffer size is known here, > > > there is no need to keep an "end pointer" around. > > > > The main reason for having "startptr" as a global variable is to free > > memory > > when fill_buf is killed. fill_buf runs as a separate process (for test > > cases > > like MBM, MBA and CQM) and when user issues Ctrl_c or when the test kills > > benchmark_pid (i.e. fill_buf), the buffer is freed (please see > > ctrl_handler()). > > I see. Got it, thanks. > > > So, I thought, as "startptr" is anyways global, why pass it around as an > > argument? While making this change I thought it's natural to make "endptr" > > global as well because the function didn't really look good to just take > > endptr as an argument without startptr. > > Maintaining the end pointer is unusual. The start of the buffer and the > size are known properties that the end of the buffer can be computed > from. Not a problem, it just seems inconsistent that some of the buffer > functions operate on the start pointer and size while others operate on > the start pointer and end pointer. Ok.. makes sense. I will try to make it consistent by using endptr all the time. One advantage of using endptr is that we could just compute endptr once and use it when needed by passing it as variable (will try to not make it global variable). Regards, Sai