[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5a01eace-e502-c78c-7ab8-a298b0e18c08@linux.intel.com>
Date: Wed, 3 Jun 2020 20:00:12 +0300
From: Alexey Budankov <alexey.budankov@...ux.intel.com>
To: Adrian Hunter <adrian.hunter@...el.com>
Cc: Arnaldo Carvalho de Melo <acme@...nel.org>,
Jiri Olsa <jolsa@...hat.com>,
Namhyung Kim <namhyung@...nel.org>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Andi Kleen <ak@...ux.intel.com>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v6 01/13] tools/libperf: introduce notion of static polled
file descriptors
On 03.06.2020 18:53, Adrian Hunter wrote:
> On 3/06/20 3:52 pm, Alexey Budankov wrote:
>>
>> On 03.06.2020 15:30, Hunter, Adrian wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Hunter, Adrian <adrian.hunter@...el.com>
>>>> Sent: Wednesday, June 3, 2020 3:24 PM
>>>> To: Alexey Budankov <alexey.budankov@...ux.intel.com>
>>>> Cc: Arnaldo Carvalho de Melo <acme@...nel.org>; Jiri Olsa
>>>> <jolsa@...hat.com>; Namhyung Kim <namhyung@...nel.org>; Alexander
>>>> Shishkin <alexander.shishkin@...ux.intel.com>; Peter Zijlstra
>>>> <peterz@...radead.org>; Ingo Molnar <mingo@...hat.com>; Andi Kleen
>>>> <ak@...ux.intel.com>; linux-kernel <linux-kernel@...r.kernel.org>
>>>> 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().
As far the changes don't cause regressions and serve their purpose well
they are acceptable.
Powered by blists - more mailing lists