lkml.org 
[lkml]   [2020]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v6 01/13] tools/libperf: introduce notion of static polled file descriptors
From
Date
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@intel.com>
>>> Sent: Wednesday, June 3, 2020 3:24 PM
>>> To: Alexey Budankov <alexey.budankov@linux.intel.com>
>>> Cc: Arnaldo Carvalho de Melo <acme@kernel.org>; Jiri Olsa
>>> <jolsa@redhat.com>; Namhyung Kim <namhyung@kernel.org>; Alexander
>>> Shishkin <alexander.shishkin@linux.intel.com>; Peter Zijlstra
>>> <peterz@infradead.org>; Ingo Molnar <mingo@redhat.com>; Andi Kleen
>>> <ak@linux.intel.com>; linux-kernel <linux-kernel@vger.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().

\
 
 \ /
  Last update: 2020-06-03 17:54    [W:0.073 / U:0.116 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site