Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp606769ybg; Wed, 3 Jun 2020 08:58:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz3GmD4O6cT+oktaJYOe9HOCgUcn4XR7OFifS5mSNaT/UI0qcJIXlUmQ+8PeSkJcOhb9m8x X-Received: by 2002:a17:906:90c1:: with SMTP id v1mr8783ejw.322.1591199935304; Wed, 03 Jun 2020 08:58:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591199935; cv=none; d=google.com; s=arc-20160816; b=C8xoT72F/7lZic+SL8Dtzs0gMCA0Q6Z5xpWiL9FPDV6bpwf91gwUkNYXrhInyoSnLV AIawSQGnM5XJ3NxUjHeaC9xQsecrFDh/I2ZB1JLaX5bkAJjhuILTNahWhZU5R/sc73Og b6fRF7ZokYRrBSNtGLGnJdm0HwDKvneo4uUFIC0EZxmOkk6P8N5SXdAiu9dMphGvD4PF JPcvzSBiD1bRKMkkMj6lVREhCUknc24EjLs+1RVGgjzGZ1uQSxzUIlZKHh2Y/TNpkDBf ZaL55ApdoRSqLd68tk2IpDgI15lVQoEfAAe1CCyS1oqrloGcptUovJPnbWG6X6ZRVzcV lOHg== 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:from:references:cc:to:subject:ironport-sdr :ironport-sdr; bh=eDlyToqnef+CVd30MQzeYT4W/zvb1QGOzTev7d+aXeo=; b=P+7fpiIM2RCm0ic2BES+PPNjDw3uLC8DCynp6D1dWiuuAMDn7CL5kHWyyrOhwmuDUt WZkKlhz4aSpw5G6NCeT8+psyDW47dnuC/ekqKd2KWM3QvRxsH+y6CT7P4KcXKWvuxFRb Nhzk0v5WWoFQ7UzL0MyJv6MbCYohxGAyVf0Dl3vcSUeCGIGuh+NYkpLW1BquCzdoXA8H qzYguGFNEk04uGJyk52DqbebJXb7NlO9p7uuBaFHq7GLs0FmIKTNOXrj4BwzACH+97DP oY3ujVUHZbcDNf/LtvkY6nrLDBD9xSkWMF1i5UTyhkKHTMbXzIXHfY7LkmEjrsDdg9an CHxw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y89si1281921edy.357.2020.06.03.08.58.32; Wed, 03 Jun 2020 08:58:55 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726200AbgFCPyC (ORCPT + 99 others); Wed, 3 Jun 2020 11:54:02 -0400 Received: from mga04.intel.com ([192.55.52.120]:58551 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725882AbgFCPyC (ORCPT ); Wed, 3 Jun 2020 11:54:02 -0400 IronPort-SDR: a5O8sEgNOpaAPkb9ZNmdCQzf9SJSTIBHcAjrRTpPBLknIc2dPTP5Z5vycKgrkUy0uJ54t/WbZA hapIu38QF8vQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jun 2020 08:54:02 -0700 IronPort-SDR: nN8q+kBXMvqMGYjnEK172x6cX7tp3rz/J1qdjyE0Cw7At8HvfU+sYXts4F8LyE14U+VADSd98l e+U0Jj1KAgPQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,468,1583222400"; d="scan'208";a="269115388" Received: from ahunter-desktop.fi.intel.com (HELO [10.237.72.157]) ([10.237.72.157]) by orsmga003.jf.intel.com with ESMTP; 03 Jun 2020 08:53:59 -0700 Subject: Re: [PATCH v6 01/13] tools/libperf: introduce notion of static polled file descriptors To: Alexey Budankov Cc: Arnaldo Carvalho de Melo , Jiri Olsa , Namhyung Kim , Alexander Shishkin , Peter Zijlstra , Ingo Molnar , Andi Kleen , linux-kernel References: <40643542-6676-e0bc-2d10-165dfde41e29@linux.intel.com> <33c91520-7040-bd6b-b176-004ddbec2a63@intel.com> <363DA0ED52042842948283D2FC38E464B4151F86@IRSMSX106.ger.corp.intel.com> <40d44cd8-ecdb-53c9-99f8-1737e04c84ff@linux.intel.com> From: Adrian Hunter Organization: Intel Finland Oy, Registered Address: PL 281, 00181 Helsinki, Business Identity Code: 0357606 - 4, Domiciled in Helsinki Message-ID: <2d264b14-7f60-9d43-2d52-3709c7295c4a@intel.com> Date: Wed, 3 Jun 2020 18:53:26 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <40d44cd8-ecdb-53c9-99f8-1737e04c84ff@linux.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/06/20 3:52 pm, Alexey Budankov wrote: > > On 03.06.2020 15:30, Hunter, Adrian wrote: >> >> >>> -----Original Message----- >>> From: Hunter, Adrian >>> Sent: Wednesday, June 3, 2020 3:24 PM >>> To: Alexey Budankov >>> Cc: Arnaldo Carvalho de Melo ; Jiri Olsa >>> ; Namhyung Kim ; Alexander >>> Shishkin ; Peter Zijlstra >>> ; Ingo Molnar ; Andi Kleen >>> ; linux-kernel >>> Subject: Re: [PATCH v6 01/13] tools/libperf: introduce notion of static polled >>> file descriptors >>> >>> On 3/06/20 3:01 pm, Alexey Budankov wrote: >>>> Hi, >>>> >>>> On 03.06.2020 14:38, Adrian Hunter wrote: >>>>> On 1/06/20 11:05 pm, Alexey Budankov wrote: >>>>>> >>>>>> Implement adding of file descriptors by fdarray__add_stat() to >>>>>> fix-sized (currently 1) stat_entries array located at struct fdarray. >>>>>> Append added file descriptors to the array used by poll() syscall >>>>>> during fdarray__poll() call. Copy poll() result of the added >>>>>> descriptors from the array back to the storage for separate analysis. >>>>> >>>>> Why not instead call evlist__add_pollfd() before other fds are added, >>>>> so the fda->entries[] position is always fixed. Then this patch is not >>> needed. >>>> >>>> It then will block event consumption loop, at least in record mode, >>>> due to change sin initial assumptions behind fdarray__filter(). So >>>> extension of the API with 'static' fds looks safer w.r.t. possible >>>> functional regressions at the same time extending the API with ability >>>> to atomically wait for (poll()) not only event fds but also any other fds >>> during monitoring. >>> >>> So make fdarray__filter() return the number of filterable fds remaining. >>> >> >> >> Or perhaps simpler, compare the return value to the number of fds that are known not to be filterable > > Well, various implementations are for sure possible but the proposed design > avoids implicit code assumptions and dependency on API calls order as in API > implementation as in client code and that is why it's been proposed this way. > The dependencies are confined one function, namely __cmd_record(), it is simpler, and avoids the inelegant changes to fdarray__poll().